{'~/.claude/CLAUDE.md'}
{'~/.codex/AGENTS.md'}
How Claude talks to you. Markers, header tiers, mono signals, paragraph length, where decisions live.
{'~/.claude/scripts/statusline.py'}
{'~/.claude/settings.json'}
How you read what's happening. Persistent, glanceable, colour-coded by zone.
#
THE headline of the reply (max 1)
##
Main sections (status, decision, design, question)
###
Sub-sections inside one of those
####
Inline labels and micro-groupings
{`your files/ # canonical: notes, transcripts, decisions, outputs
index.db # derived: SQLite + a vector extension
hooks/
session-start # run retrieval, inject top-k context into turn 1
on-change # re-index a file the moment it is edited
jobs/
nightly # consolidate raw -> digests -> facts (the "sleep")
adapters/
injected-context # default: drop context into the prompt preamble
mcp-server # for tools that speak Model Context Protocol`}
The seven moves:
1. **Keep your files canonical.** Your notes and transcripts stay the source of truth. The brain reads them, it never replaces them.
2. **Build a derived index.** SQLite plus a vector extension is enough. Chunk each file, embed it, and tag it with a region and a memory layer.
3. **Wire the deterministic edges.** Prompt to answer. Image to caption. Everything inside one project to everything else inside it.
4. **Let co-activation do the rest.** When two chunks keep getting retrieved together, strengthen the edge between them. Let unused edges fade.
5. **Auto-inject at session start.** A start-up hook runs retrieval and drops the top results into the model's first turn, organised by region. No one has to ask.
6. **Re-index on change, consolidate at night.** A file-change hook keeps the index fresh. A nightly job distils raw capture into durable facts.
7. **Stay model-agnostic.** Expose the brain through injected context, a thin adapter, or an MCP server. Any model can read it. The next model can too.
## What it unlocks for any LLM
The difference is not subtle. It is the gap between a tool that starts cold and one that starts knowing.
- Every session boots with the right context already loaded, shaped the way a brain organises it.
- The brain volunteers what is relevant instead of waiting to be queried. Recall, not search.
- It learns your patterns. Over weeks it notices which things fire together and surfaces them before you think to look.
- A year of raw thinking lives in a small, dense, rebuildable store, with nothing lost.
- It works across every model you use today, and the one you switch to next month.
Familiarize yourself with the Pushing Squares website, then evaluate
what needs to be done for CBA, Fuzz, Subtract to be done and sellable
by the end of the night.
Twenty five words. No spec. No file paths. No list of steps. No mention of checkout, signing, pricing, marketing footage, or which pages to build.
About two hours later there were product pages live on the site. Real checkout. Real signed builds. Real marketing footage rendered from scratch. My total input for the whole run was a handful of "status?" check-ins and one round of notes.
"status?"
"go ahead"
"can you spin up a local host for me to QC"
That was most of it. While five workers built, signed, and rendered in parallel, and two more waited on their inputs, I mostly asked how it was going. I was an orchestrator, not a typist.
{/* DIAGRAM 1 — parallel vs chained. Top row: 5 workers running at once. Bottom: the 2 dependent workers firing only after their inputs land. TODO: art. */}
Don't include the images for the effects we don't have images for,
just use the gallery for the ones I provided, but mention all of the
effects below in text. Other than that, everything looks perfect.
One note. Then:
perfect merge and deploy live to the site via vercel plz
That is the shape of being in the loop properly. Not writing the work. Not babysitting every step. Just sitting at the two or three gates that actually need a human: is this right, and should it go live.
{/* DIAGRAM 2 — the review gates. Staged preview, the one round of notes, the human go-live click. TODO: art. */}
{`python3 -m ari_os.tools.cortex kg extract
python3 -m ari_os.tools.cortex kg list
python3 -m ari_os.tools.cortex kg stats`}
`extract` builds the graph from your memory. `list` shows the entities and relations it found. `stats` measures it, so you can see how dense the graph has become over time.
## Prediction and prefetch
Prediction looks at where you are and surfaces what you are likely to need next. Prefetch goes one step further and warms the context for a working directory before you open it.
{`python3 -m ari_os.tools.cortex predict
python3 -m ari_os.tools.cortex prefetch --cwd `}
`predict` surfaces what you are likely to need. `prefetch` warms context for a given working directory, so the brain is ready the moment you arrive.
## Mind-wander
Now and then, the brain surfaces a memory you had set aside. It is the quiet background process that connects an old note to the thing in front of you.
{`python3 -m ari_os.tools.cortex wander --focus ""`}
Use `--focus` to point the wander at a topic. Toggle the whole feature on or off through the control panel.
{`python3 -m ari_os.tools.arios cortex wander on|off`}
## EARS (listening)
EARS ingests sound. Point it at an audio file or a transcript, and the contents land in memory like any other note.
{`python3 -m ari_os.tools.cortex ears `}
Enable it through the control panel.
{`python3 -m ari_os.tools.arios cortex ears on`}
The vision parts of EARS need a local vision model. The plain audio and transcript path does not.
## LENS (seeing)
LENS applies a visual or aesthetic lens to your work. Pass it a slug and it reads through that lens.
{`python3 -m ari_os.tools.cortex lens `}
Enable it through the control panel.
{`python3 -m ari_os.tools.arios cortex lens on`}
The MCP tools `brain.see` and `brain.lens` stay off until both LENS and a local vision model are enabled. Without the model, there is nothing to see with.
## Embeddings backends
The brain needs an embeddings backend to turn text into vectors. Choose it through the control panel.
{`python3 -m ari_os.tools.arios cortex embeddings auto|google|ollama|off`}
`auto` picks a sensible backend for you. `google` and `ollama` pin it to one provider. `off` runs without embeddings at all.
{`python3 -m ari_os.tools.cortex ingest --path `}
Memory files live under your memories directory, at `$ARI_OS_HOME/memories/
{`python3 -m ari_os.tools.cortex retrieve -q "" --cwd "$PWD" --mode `}
Recall gets better as more context layers switch on. The fidget below shows the same answer sharpening as each layer is added.
{`python3 -m ari_os.tools.arios cortex mode `}
On the cortex tool you can also list, get, and set the mode with `cortex mode list|get|set
{`python3 -m ari_os.tools.cortex dream`}
You can also run a single tier on its own.
{`python3 -m ari_os.tools.cortex distill --tier session|daily|weekly`}
The point of consolidation is to keep the store small and dense while losing nothing. Memories compress, but lineage still walks back to the original source.
## Embeddings
The brain turns text into vectors so it can rank by meaning. The default backend is Ollama, which runs on your machine.
Pull two models. The embedding model `nomic-embed-text` produces 768-dimensional vectors, and `gemma3:4b` handles the local language work.
{`ollama pull nomic-embed-text
ollama pull gemma3:4b`}
`OLLAMA_URL` defaults to `http://127.0.0.1:11434`, so a standard local Ollama needs no extra configuration.
With no Ollama running, recall falls back to a ranked keyword search. It is less precise than vector ranking, but the brain still works, fully offline, with nothing to set up.
## Where to go next
{`git clone https://github.com/PUSHINGSQUARES/ARI-OS
cd ARI-OS
uv pip install -e .`}
If you do not use `uv`, plain `pip install -e .` works the same way. For the optional media features, install the extra group with `pip install -e '.[media]'`.
## Run the installer
The installer is a Python module. Run it as a module, not as a script.
{`python3 -m ari_os.install`}
The wizard accepts the following flags:
- `--llm ollama|api|off` sets how recall is powered. The default is `ollama`.
- `--ears` enables the optional listening surface.
- `--lens` enables the optional vision surface.
- `--no-mcp` skips automatic MCP registration.
- `--dry-run` shows what would change without writing anything.
- `--update` re-applies the latest managed files.
- `--revert` rolls the managed changes back.
- `--uninstall` removes everything ARI-OS placed.
- `--purge-keys` clears stored keys, used together with uninstall.
## What it installs
The installer writes a small, predictable footprint. It places:
- 10 skills into `~/.claude/skills/{`claude mcp add ari-os-cortex -- python -m ari_os.tools.cortex.mcp_server stdio`}
There is more on how the brain works in the [brain](/documents/ari-os/brain) page.
## Keys
Keys are read from environment variables first, and then from the macOS Keychain under the service `com.ari-os.keys`. They are never printed. This is the same principle as the rest of the install: nothing destructive, nothing leaked, and every action reversible.
{`python3 -m pytest -q
python3 -m ari_os.tools.monitor`}
The monitor opens at `http://localhost:7777`. If the tests pass and the monitor loads, the install is healthy.
## Reversible
Every change is backed up first, so you can move forwards or backwards at any time.
- `python3 -m ari_os.install --update` re-applies the latest managed files.
- `python3 -m ari_os.install --revert` rolls the managed changes back.
- `python3 -m ari_os.install --uninstall` removes everything ARI-OS placed. Add `--purge-keys` to also clear stored keys.
{`claude mcp add ari-os-cortex -- python -m ari_os.tools.cortex.mcp_server stdio`}
Once it is registered, your model can call these tools directly. The names are stable and the parameters are listed in full.
{`python3 -m ari_os.tools.dispatch start --executor sonnet --task-file BRIEF.md --cwd ./worktree --label mytask`}
A few rules keep dispatch safe and predictable.
The executors are `haiku`, `sonnet`, and `opus`. Pick the smallest one that can do the job, and escalate only when the work demands it.
Two extra flags shape what a worker can touch: `--add-dir` grants access to an additional directory, and `--read-only` runs the worker without write access.
Dispatch refuses a git repository root as `--cwd`. Point it at a worktree or a subdirectory instead, so a worker can never act on the whole repository at once.
Once workers are running, manage them from your session:
{`python3 -m ari_os.tools.dispatch list
python3 -m ari_os.tools.dispatch questions
python3 -m ari_os.tools.dispatch answer --answer "..."`}
`dispatch list` shows what is in flight, `dispatch questions` surfaces anything a worker is blocked on, and `dispatch answer` sends your reply back to a specific worker so it can carry on.
## Watch it run
The monitor gives you one window onto every running worker, live.
{`python3 -m ari_os.tools.monitor`}
It opens at `http://localhost:7777`. Leave it running while you work, and you can see progress, questions, and completions without switching context.
## Control panel
The control panel is the single command for configuring ARI-OS.
{`python3 -m ari_os.tools.arios`}
It takes these subcommands:
- `keys` manages the API keys for any models you use.
- `theme {`python3 -m ari_os.tools.arios cortex status`}
And to switch the retrieval mode to focus:
{`python3 -m ari_os.tools.arios cortex mode focus`}
Each cortex setting changes what the brain pulls and how. The [brain page](/documents/ari-os/brain) covers the modes and embeddings in depth.
one variable: camera locked · rear dissolve only