P R O J E C T SC O N T A C T

[05]

OPENCLAW

TIER A · YEAR 2026 · STATUS: LIVE · LANGUAGES: SHELL / POWERSHELL / JAVASCRIPT

An agent with continuity: layered memory, bridges to the world, self-hosted

MONTY · BREATHES / BLINKS / HEARTBEAT ~20S

[FIG. 1] MISSION

I build agents with continuity: ones that don't forget between sessions, have access to real tools, and can be talked to from a phone like a person. 'Monty' is my self-hosted personal-agent runtime, running on my own hardware under my own privacy rules, with no cloud SaaS. The identity and memory architecture is layered: identity lives in SOUL.md/IDENTITY.md files, daily notes distill into a long-term MEMORY.md, and SQLite sits underneath — so the agent wakes up with continuity rather than a blank page. I design bridges to the world with permission control: a messenger (Telegram with device pairing and a sender allowlist), a browser (a custom Chrome extension driving my real session) and a scheduler (cron/heartbeat so the agent checks on things by itself). I treat the model as a replaceable part — model profiles are plain configuration files, and the value sits in what surrounds them: memory, permissions and tools. I keep the runtime self-hosted with no SaaS dependency, state in files and a heartbeat, and I write shell automation for two platforms at once (Shell and PowerShell) so it behaves the same on Windows and Unix. It's the tool I lean on while building the other projects on this site.

[FIG. 2] ARCHITECTURE

hover a block to see its description

[FIG. 3] CHALLENGES

[+][CH-01]

An agent without memory is a stranger every time — the context won't fit the model's window, and pasting the whole history into the prompt is a cost dead end. I solved it in layers: raw observations land in a daily note (memory/YYYY-MM-DD.md), that distills into a long-term MEMORY.md loaded every session, and underneath SQLite holds messages, contacts and schedule. On top there's a start-up ritual — the agent always reads SOUL.md and its identity files first, so it wakes up as the same 'person', just with its knowledge topped up.

[+][CH-02]

An agent with real access to a browser, messages and a schedule is a potential hole in your private life — anyone who messaged the bot could start issuing commands. I drew the boundaries in three places: device pairing (devices/paired.json), a Telegram sender allowlist, and separate auth profiles per context. Strangers don't get to talk to Monty, and even a paired device operates within its own permission profile.

[+][CH-03]

I built browser control as a custom Chrome extension instead of going headless — deliberately: the agent operates in my real, logged-in session and sees exactly what I see, with no separate profile or cookie management. The price: the runtime had to be genuinely cross-platform, so I wrote the core in parallel in Shell and PowerShell, with completions for four shells — the same commands work on Windows and Unix.

[FIG. 4] AI LAYER

The model is swappable here — model profiles are config files, and the value sits in what surrounds it: the identity-and-memory architecture (SOUL/IDENTITY/MEMORY) that gives the agent continuity, and the secure bridges to the world (Telegram, browser, cron). Take the memory layer away and you're left with an impersonal chatbot that starts every conversation from zero.

[FIG. 2A] MEMORY LAYERS

IDENTITY FILES:

SOUL.mdIDENTITY.mdUSER.mdFREE_WILL.md

[FIG. 6] STACK & LINKS

SHELLPOWERSHELLTELEGRAM BOT APICHROME EXTENSIONSQLITECRON/HEARTBEATJSON STATE
CAPABILITIES IN THIS PROJECT: MULTI-AGENT · MCP · TELEGRAM · POWERSHELL · SQLITE