Aionai
БесплатноНе проверенA shared working-state layer for AI coding tools that keeps a persistent notebook for context, decisions, and task handoffs, enabling coordination across multip
Описание
A shared working-state layer for AI coding tools that keeps a persistent notebook for context, decisions, and task handoffs, enabling coordination across multiple assistants.
README
A shared working-state layer for your AI coding tools. Claude, Cursor, and other MCP clients read and write one small notebook, so they stay on the same page — and you stop being the copy-paste bus between them.
One-click install for Cursor (it configures
uvx aionai). After it's added, setAIONAI_SOURCE=cursorin the server's env. If Cursor can't finduvx, see Troubleshooting; or set it up manually via Connect your tools.
The problem
You use more than one AI assistant on a project. They don't know what each other did: you tell Claude a decision, switch to Cursor, and Cursor has no idea. You end up re-explaining and copy-pasting context by hand.
What aionai does
aionai is a tiny local MCP server that keeps a shared, persistent notebook every tool can read and write. It does three jobs:
- Remember — decisions, changes, questions, and notes, organized by project.
- Track — a lightweight roadmap/to-do list with progress rollup.
- Hand off — post a task to another tool's inbox (with an optional "doorbell").
It does not replace your repo, docs, or git — those stay the source of truth. aionai just holds the live working state and hands each tool the slice it needs.
Install
Most portable — works on Windows, macOS, and Linux, and puts the aionai command
where GUI apps (Cursor, Claude Desktop) can find it:
pipx install aionai
Already use uv? Skip the install entirely:
uvx aionai --help
Requires Python 3.10+. If a client later reports the launcher (aionai / uvx)
"not recognized", see Troubleshooting.
Connect your tools
Point each client at the aionai command. Give each client a distinct AIONAI_SOURCE
(so handoffs route correctly) and set AIONAI_SEGMENT to your project name.
Claude Code
claude mcp add aionai --env AIONAI_SOURCE=claude-code --env AIONAI_SEGMENT=myproject -- aionai
# or with uv: claude mcp add aionai --env AIONAI_SOURCE=claude-code -- uvx aionai
Cursor — .cursor/mcp.json:
{
"mcpServers": {
"aionai": { "command": "aionai", "env": { "AIONAI_SOURCE": "cursor", "AIONAI_SEGMENT": "myproject" } }
}
}
Claude Desktop — Settings → Developer → Edit Config:
{
"mcpServers": {
"aionai": { "command": "aionai", "env": { "AIONAI_SOURCE": "claude-desktop", "AIONAI_SEGMENT": "myproject" } }
}
}
Restart the client after editing its config — MCP servers are launched (and their env read) when the client connects.
Use it
Add this to each tool's rules (CLAUDE.md, Cursor rules) so they do it reflexively:
Before working, call
context_pull(segment="myproject")and treat the result as the current truth. As you work,context_log(...)your decisions/changes/questions/tasks. When something is settled,context_resolve(id).
That's the whole loop: pull first, write back. Now open Cursor and it already knows what you and Claude decided — no paste.
Segments
State is organized by a dotted segment path whose first element is the project:
myproject # the whole project
myproject/backend # a layer
myproject/backend/auth # a workstream
Pulling a parent includes all descendants. That one mechanism keeps an always-on space from turning into an undifferentiated blob.
The tools
| tool | purpose |
|---|---|
context_pull(segment) |
current working state + your inbox |
context_log(segment, type, content, refs) |
append a decision/change/question/task/note |
context_resolve(id) |
close a question or task |
context_search(query, segment) |
full-text recall over history |
context_verify(segment) |
check change entries against git (merged vs. bare claim) |
context_handoff(segment, content, to) |
post a handoff to another tool's inbox |
roadmap_add_node / roadmap_update / roadmap_block |
build & manage the roadmap |
roadmap_view / roadmap_progress |
see the tree / how far along |
constraints_for_task(segment) |
decisions + open questions that constrain a task |
project_lookup(query, project) |
reuse an approach from another project |
They also surface as slash commands (/mcp__aionai__pull, …log, …resolve, …search,
…handoff) in clients that support MCP prompts.
Optional extras
- Auto-ingest commits — copy
hooks/post-commitinto a repo's.git/hooks/(setAIONAI_SEGMENT) and every commit logs itself as achange. - Doorbell — set
AIONAI_DELIVERY=1in a sender's env and acontext_handoffto Cursor also summons Cursor via its deeplink (you confirm before it runs). Without it, handoffs are inbox-only. Onlycursorhas a verified deeplink today.
How it works
One SQLite database, one append-only table. Every decision, task, handoff, and
roadmap node is a row tagged with a segment and a type. History is free because
nothing is overwritten. Full-text search uses FTS5 with a LIKE fallback. The MCP
tools are thin wrappers over a plain-Python storage layer (src/aionai/store.py).
Troubleshooting
A client reports 'uvx' / 'aionai' is not recognized (or the server errors on start).
The client can't find the launcher on its PATH — common for GUI apps (Cursor, Claude
Desktop) on Windows and macOS, which don't always inherit your shell's PATH. Fixes,
best first:
- Use pipx:
pipx install aionai, then set"command": "aionai". pipx puts the command where GUI apps usually find it. - Point at the full path of the launcher. Find it with
where uvx(Windows) orwhich uvx(macOS/Linux), then use it verbatim, e.g.:"aionai": { "command": "C:/Users/you/AppData/Roaming/Python/Python3xx/Scripts/uvx.exe", "args": ["aionai"], "env": { "AIONAI_SOURCE": "cursor" } } - Skip the launcher — run via your Python directly (after
pip install aionai):"aionai": { "command": "python", "args": ["-m", "aionai.cli"] }
Then restart the client so it re-reads the config.
Configuration
| var | default | purpose |
|---|---|---|
AIONAI_DB |
~/.aionai/aionai.db |
database path (share explicitly if clients don't hit the default) |
AIONAI_SOURCE |
agent |
who is writing (cursor / claude-code / claude-desktop); routes the inbox |
AIONAI_SEGMENT |
project |
default project segment |
AIONAI_DELIVERY |
(unset) | 1 enables the doorbell in the sender |
Development
git clone https://github.com/imsm/aionai && cd aionai
pip install -e ".[dev]"
pytest
ruff check .
License
Apache-2.0 © Ismail Saleh.
Установка Aionai
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/imsm/aionaiFAQ
Aionai MCP бесплатный?
Да, Aionai MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Aionai?
Нет, Aionai работает без API-ключей и переменных окружения.
Aionai — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Aionai в Claude Desktop, Claude Code или Cursor?
Открой Aionai на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Notion
Read and write pages in your workspace
автор: NotionLinear
Issues, cycles, triage — from Claude
автор: LinearGoogle Drive
Search and read your Drive files
автор: Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
автор: mindsdbCompare Aionai with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории productivity
