Neural Substrate

A brain for
AI agents

Memories become activation patterns. Associations strengthen with use and decay with neglect. Your agents don't search. They remember.

Search finds documents. Brains understand them.

Recall

  • Memories become activation patterns in neural space
  • Query activates a partial pattern, the network completes it
  • Conflicting memories compete. The stronger pattern wins.
  • Stale patterns fade naturally

The brain corrects the agent

Not a search result. A synthesized answer grounded in specific memories.

> Agent asserts: "Engram runs on Windows."
Brain: No. Engram moved to the production server on March 20th.
The previous instance was decommissioned.
[sources: 3 memories documenting the migration]

Same brain. Two interfaces.

Guardian Daemon

eidolon-daemon
  • Headless service running at :7700
  • Agents connect via HTTP API
  • Hook integration (SessionStart, PreToolUse, PostToolUse, Stop)
  • Living prompt generation from brain state
  • Action gate on every outbound command
  • Activity fan-out to all Syntheos services
  • Runs on a server, always on

Terminal UI

eidolon-tui
  • Interactive terminal interface
  • Configure your own local LLM (llama-server on GPU)
  • Spawn and control agents directly
  • Chat with the brain
  • Same neural substrate underneath
  • Runs on your machine

What the brain does

Recall, not retrieval

Queries activate patterns and complete them. Answers come from the network's state, not ranked documents.

Contradiction resolution

Conflicting memories compete. The network converges on the stronger, more current pattern.

Natural decay

Unused associations fade. Patterns that never get reinforced become unreachable over time.

Dreaming

Offline consolidation replays patterns, strengthens important connections, and resolves interference during idle periods.

The Gate

Every outbound agent action is intercepted. Checked against brain state. Blocked, allowed, or enriched with context.

Activity fan-out

One endpoint, seven services. Agents report to /activity. Eidolon distributes to task tracking, event bus, logging, memory, registry, quality eval, and the brain.

How it fits together

Terminal UIeidolon-tui
Any AgentHTTP API
Guardian Daemoneidolon-daemon · :7700
Neural Substrateeidolon-lib
Engram + Syntheosmemory, tasks, events, logging
SQLite brain.db

Connect any agent

Claude Code hooks are one integration path. Any agent that hits the daemon's HTTP API gets the same intelligence layer.

.claude/settings.json
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "bash ~/.claude/hooks/session-start-engram.sh",
        "timeout": 30,
        "statusMessage": "Loading context from Eidolon brain..."
      }]
    }],
    "Stop": [{
      "hooks": [{
        "type": "command",
        "command": "bash ~/.claude/hooks/session-end.sh",
        "timeout": 15
      }]
    }],
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "bash /path/to/eidolon/scripts/eidolon-gate.sh",
        "timeout": 10
      }]
    }],
    "PostToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "bash ~/.claude/hooks/eidolon-activity.sh",
        "timeout": 10,
        "async": true
      }]
    }]
  }
}
HookLifecyclePurpose
SessionStartAgent session beginsInjects brain-aware context via /prompt/generate
StopAgent session endsEnforces Engram store, reports agent.offline
PreToolUse (Bash)Before every shell commandGate check: allow, block, or enrich
PostToolUse (Bash)After every shell commandReports significant actions to /activity

All hooks fail open. If the daemon is unreachable, commands proceed normally.

Up and running in three steps

Requires Rust 1.75+ and Engram running and accessible.

1

Build

cargo build --release --workspace
2

Configure

cp config/config.example.toml ~/.config/eidolon/config.toml
# Edit with your Engram URL and brain path
3

Run

# Start the daemon
./target/release/eidolon-daemon

# Or launch the TUI
./target/release/eidolon-tui

Or use Docker

docker run -d --name eidolon \
  -p 7700:7700 \
  -v eidolon-data:/app/data \
  ghostframe/eidolon:latest