symbion
A notebook and ticket registry for one project, shared by you and your coding agent. Bugs, tasks, decisions and verified results go in as dated notes, so what a session learned is still there when the next one starts.
What it does for you
- Each session starts where the last one stopped. A session-start hook gives the agent the open bugs, tasks and questions, the rows due soon, and the ones you wrote or answered. You do not brief it again.
- A result knows its age. A
checkrecords what ran, what it said, and the commit it ran at. Once the code moves on, it readsbehind 12, not "tests pass". - Questions go both ways. The agent files a
questionfor you. Your answer, from a terminal or the browser, reaches its next session. - Notes attach to things. A note sits on a commit, a file, a named item
or the whole project, so
symbion context --target file:src/x.pyfinds every note on that file. - Checklists across a codebase. An arc is a named line of work with one
box per item: a file, a test, a host.
symbion arc reconcilereports the boxes whose file was renamed or deleted. - Plain files you own. The notes are JSONL in a git repo beside the project. There is no server, account or database. Checking out an old branch does not change your tickets.
- A local web page, if you want one.
symbion servegives boards, search, and a page per note.
symbion works with Claude Code, Codex and Hermes Agent, and the CLI works without any of them.
Install
Python 3.11+ and git. On Windows, use Git for Windows.
pipx install 'symbion[gui]' # or: uv tool install 'symbion[gui]'
[gui] adds the web page (symbion serve); leave it out for the CLI alone.
Run command -v symbion from another directory to check that it is on PATH:
the session-start hook finds symbion through PATH.
Quick start
From your project's root:
symbion init # lists each change and makes none (exit 1 if there are any)
symbion init --yes # creates the store, ../<repo>-notes, and links the agent skill
init --yes registers the session-start hook too when ~/.claude/settings.json
does not exist. When it does, init prints the entry to add, or says the hook is
already there.
A new store takes notes on a commit, an item, the project or an arc. For notes
on files, open ../<repo>-notes/symbion.toml and uncomment file = under
[catalogs] and file = "git" under [renames]. A file target refused before
then names both lines.
Then add one line to CLAUDE.md, and start a session:
- We use symbion for durable notes and tickets.
init --agent codex, --agent hermes or --agent both sets up the other
agents, which take a step more: see the
guide.
Docs
- Guide: install on each platform, TAB completion, adopting a repo with each agent, the first session, and the web page.
- Reference: kinds and arcs, catalogs, conventions, where things live, and development.
- SKILL.md:
what the agent reads, with a table of the common commands.
symbion VERB -hlists every flag of a verb. - Design: why symbion is built as it is.
Development
python3 -m venv .venv && .venv/bin/pip install -e '.[test,gui]'
.venv/bin/python -m pytest -q
Windows, and making a clone your installed symbion: Development.
Metadata
Release files for symbion 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| symbion-0.6.0.tar.gz | 535.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| symbion-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 878.2 kB
Release files / symbion-0.6.0.tar.gz
| Download URL | symbion-0.6.0.tar.gz |
|---|---|
| Size | 535.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
adfd00c29ee44d2da410db203a1b694fb3d30a3cc0e2fcee815876f65ce00e47
|
|
BLAKE2b-256 checksum How to use checksums |
9b860b5a60eeb47b4c69e9161fe1cfdcfabbe0b2c28db6c0037181002b9bd494
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.
Transparency logRelease files / symbion-0.6.0-py3-none-any.whl
| Download URL | symbion-0.6.0-py3-none-any.whl |
|---|---|
| Size | 342.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2db3a1665ac5f59744cc1942b9c6bc9d7e3ffb6dd3dd6d6079e8ede0ec6d26dd
|
|
BLAKE2b-256 checksum How to use checksums |
76ad793debf9a0002672e03b645cd3226308baa117b05a277dcdfebd132be9fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.
Transparency log