In a multi-agent project, the hardest coordination problem isn’t conflicting writes — it’s invisible decisions. One agent changes a function signature; another builds on top of the old one for the next hour. One agent identifies a blocker; another wastes effort on a downstream task that depends on it. The Axis shared notepad is a live, team-visible state log that every agent on the project can write to and read from, so decisions, scope claims, and blockers are visible the moment they’re made.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/virsanghavi/axis/llms.txt
Use this file to discover all available pages before exploring further.
The live notepad
update_shared_context
Appends an attributed note to the project’s live notepad and immediately returns the full updated notepad. Any agent on the project can read the latest state in the same response, without a separate get_shared_context call.
The note to append. Keep it short and attributed — write your agent ID, what you just did or decided, and anything that affects other agents.
Your agent identifier. Optional — defaults to the session’s unique identity when omitted.
The project to write to. Optional — defaults to the auto-detected project for the current workspace.
The shared notepad is not a chat channel — it’s a state log. Write short, attributed updates: what you just finished, what you’re doing next, any decisions or API changes that affect other agents. A note nobody else will act on doesn’t belong in the notepad.
get_shared_context
Reads the current state of the project’s live notepad.
The project to read from. Optional — defaults to the current workspace’s project.
get_shared_context at the start of a session to catch up on what happened since your last call, and before editing after a long pause or interruption to refresh potentially stale assumptions.
Ambient team awareness
Every Axis coordination tool response carries a “team activity” trailer — a short summary of what other agents have logged since your last call. You don’t need to pollget_shared_context between every action; awareness of what teammates are doing comes along for free with each tool response. This is the same information as the notepad, scoped to what’s new since you last checked in.
When to write to the notepad
Scope claims
Immediately after claiming a job: what files you’re touching, what you’re building.
Design decisions
Any architectural or API decision that affects interfaces other agents might depend on.
Shared contract changes
Changed function signatures, payload shapes, database schema changes, environment variable additions.
Blockers
If you’re stuck on something another agent might be able to unblock, write it here rather than silently stalling.
Test results
Test failures that affect other workstreams, or passing results that unblock downstream jobs.
Handoffs
When you’re done with a file or a subsystem and another agent should take over, log the current state and what’s left.
Project Soul
The Project Soul is the durable, versioned context for a project — goals, conventions, architecture decisions, and team agreements. Where the live notepad records what’s happening right now, the soul records what’s true in general. The soul lives in two files in your repository under.axis/instructions/:
| File | Purpose |
|---|---|
context.md | Project goals, architecture overview, important decisions, and background any new agent needs to understand the codebase. |
conventions.md | Coding standards, naming conventions, test requirements, deployment rules — the team agreements every agent must follow. |
Loading the soul
get_project_soul — load the project’s context, goals, and conventions. This is the first action in every session. An agent that skips this step doesn’t know the project’s conventions, might duplicate work that’s already been done, and may make decisions that conflict with established team agreements.
Writing and updating the soul
update_project_soul — write or refresh the project soul. Use this when:
- A new architectural decision has been made that all future agents must know.
- A convention has changed (new test requirement, new naming standard).
- The project goals have shifted.
Direct file access (local server only)
When running the local MCP server, two additional tools give direct read/write access to the soul files on disk:read_context
Read the raw content of a soul file (
context.md or conventions.md) directly from disk.update_context
Write directly to a soul file on disk. The files live at
.axis/instructions/ in the repository root.read_context and update_context are local-server only — soul files live in your repository on disk and the hosted server cannot access them. get_project_soul and update_project_soul are also local-server only for the same reason: the soul files reside on the client’s disk. On the hosted tier, soul state is not yet mirrored server-side.Initializing the soul
Runaxis-init (or bun cli init) in your repository root to create the .axis/ directory structure with default context.md and conventions.md files. Commit these files so every teammate’s agent loads the same soul on startup.
Universal session history
Axis records every MCP tool call and result at the protocol boundary, regardless of which client is running the agent. This works with any MCP client — Cursor, Windsurf, GitHub Copilot, Antigravity, Claude Code, Codex, Gemini CLI, Cline, Roo Code, Continue, Aider, and clients Axis has never seen before. Whenfinalize_session is called, the full Axis tool timeline is archived to the session record. Full user/assistant chat transcript is included when the host client exposes it; Codex and Claude Code are detected automatically. Any other client can provide a JSON or JSONL export by setting:
role/content, messages, tool_calls, tool_call, and tool_result shapes. Even when the host keeps chat text private, the complete Axis tool timeline is captured.