Assistants
An Assistant is a persistent AI companion that lives in your Agor workspace. While a normal worktree is where code gets written, an Assistant is a who — a persistent entity with memory, skills, and the ability to orchestrate work across your entire workspace.
The assistant framework is heavily inspired by OpenClaw, a proven pattern for building persistent AI agents with file-based memory and identity. Agor’s implementation adapts the core ideas — markdown-based memory, identity files, and scheduled loops — while making the assistant deeply aware of its environment through Agor’s MCP tools. An Agor assistant can create worktrees, spawn sessions, manage boards, and coordinate multi-agent workflows — capabilities that go well beyond the original pattern.
Framework repository: github.com/preset-io/agor-assistant
How it works
An Assistant is a special worktree backed by the framework repository — a template repo containing memory files, identity configuration, skills, and task templates. When you create an assistant, Agor:
- Forks the framework repo into a new worktree
- Tags the worktree with assistant metadata (name, framework version)
- Creates a dedicated board for the assistant’s work
- Launches your first session — triggering
BOOTSTRAP.md
From there, every session in that worktree picks up the assistant’s accumulated memory and context.
Key concepts
BOOTSTRAP.md — First boot
When an assistant is created for the first time, it runs through BOOTSTRAP.md — the initialization script that sets up identity, preferences, and initial state. This is where the assistant introduces itself, learns about you, and configures its working environment. Think of it as the assistant’s “first day” checklist.
Memory across sessions
Assistants maintain file-based memory in their worktree. Memory is organized into two layers:
Identity files (root of the worktree):
- SOUL.md — Personality, communication style, core principles
- IDENTITY.md — Who the assistant is, its name, and purpose
- USER.md — Knowledge about you, your preferences, and patterns
Daily memory (memory/ directory):
memory/{YYYY-MM-DD}.md— Daily journal entries. Each day the assistant works, it appends observations, decisions, and learnings to that day’s file. This creates a chronological, searchable record of everything the assistant has done and learned.
Each new session reads the identity files and recent memory, giving the assistant continuity across conversations. As the assistant works, it updates these files — building a richer understanding over time. All memory is plain markdown — fully inspectable, editable, and version-controlled.
BOARD.md — Resident board semantics
Every assistant has a BOARD.md file that describes the semantics of its main (resident) board. This file tells the assistant what each zone on the board means, how worktrees should be organized spatially, and what the overall layout represents. When the assistant creates or moves worktrees on its board, it refers to BOARD.md to understand the intended structure — ensuring consistent spatial organization across sessions.
HEARTBEAT.md — Scheduled tick workflows
HEARTBEAT.md contains the instructions and workflows the assistant processes every time a scheduled tick occurs. Think of it as a flowchart in pseudo-code: a set of steps the assistant follows on each heartbeat, such as:
- Check the status of in-progress worktrees
- Review
BOARD.mdto assess spatial organization - Look for new issues or PRs to triage
- Summarize progress to daily memory (
memory/{YYYY-MM-DD}.md) - Start new work based on priorities
Configure heartbeat frequency through Agor’s scheduler — from every few minutes to once a day.
Skills
Assistants aren’t limited to code generation — they can be equipped with skills that extend their capabilities through tools, APIs, and integrations. Skills are defined in the framework repo and give your assistant the ability to interact with external systems.
Examples of what skills enable:
- SaaS integrations — Query Jira for open tickets, post updates to Linear, fetch metrics from Datadog or PagerDuty
- Communication — Send Slack messages, create GitHub issues, post comments on PRs
- CLI tools — Run linters, test suites, deployment scripts, or any command-line tooling in your stack
- REST APIs — Call internal or external APIs to fetch data, trigger webhooks, or sync state
- MCP servers — Connect to any MCP-compatible service for specialized capabilities (databases, cloud providers, monitoring systems)
Skills make assistants practical for real workflows — not just coding, but the coordination and communication around it.
Workspace orchestration
Through Agor’s MCP tools, assistants can:
- Create worktrees — Spin up new isolated work environments for specific tasks
- Spawn sessions — Delegate work to child sessions with focused prompts
- Manage boards — Organize worktrees across spatial canvases (guided by
BOARD.md) - Check on work — Review session status, read files, assess progress
This makes assistants natural orchestrators — they can break down complex tasks, distribute work across multiple worktrees, and synthesize results.
Learning and adaptation
As your assistant works with you, it naturally improves:
- Learns your coding patterns and preferences (stored in
USER.md) - Understands your repository structure and conventions
- Builds knowledge about your team’s workflows (daily memory)
- Adapts its communication style to match yours (refined in
SOUL.md)
Creating an assistant
From the onboarding wizard
When you first log into Agor, choose “Set up your assistant”. The wizard will:
- Clone the assistant framework repository
- Create a personal board
- Set up a worktree with your own branch
- Configure API keys
- Launch your first session (which runs
BOOTSTRAP.md)
From Settings
Go to Settings > Assistants > Create Assistant:
- Enter a display name (e.g., “PR Reviewer”, “Command Center”)
- Choose or create a board
- Optionally customize the framework repo and branch
- Click Create
From the CLI
During agor init, you’ll be prompted to set up an assistant. This queues the setup for the UI wizard on your next login.
Assistant vs. Agent
These terms mean different things in Agor:
| Term | Meaning | Example |
|---|---|---|
| Assistant | A persistent entity with memory, skills, and orchestration | ”My PR Reviewer assistant” |
| Agent | The execution engine that powers a session | Claude Code, Codex, Gemini |
An assistant uses an agent to do its work. When you create a session for your assistant, you choose which agent runs it (Claude Code is the default).
Think of it this way:
- “Start my assistant” = open a session on your persistent AI companion’s worktree
- “Choose an agent” = pick which AI model/tool runs that session
Managing assistants
Settings > Assistants
The Assistants table in Settings shows all your assistants with:
- Display name and worktree name
- Environment status (start/stop controls)
- Framework repository
- Branch and session count
WorktreeModal > Assistant tab
Click any assistant’s worktree card to open its modal. The Assistant tab shows:
- Editable display name
- Framework repo and version
- Creation method (onboarding vs manual)
Boards
Assistants appear as worktree cards on boards, distinguished by a robot icon and blue border. We recommend giving each assistant its own board for clarity.
Real-world examples
For real-world use cases and the story behind Agor Assistants, see our blog post: Introducing Agor Assistants.