Atris is an operating system for AI agents and teams to work on projects with persistent memory, structured workflows, and verifiable results. It transforms any repository into an agent-ready workspace with shared context, plan-do-review loops, daily logs, and proof-backed task completion.
a self improving operating system for intelligence
README
atris
atris is an operating system for AI work. It turns any repo into a workspace an agent can actually operate: shared context it reads before it acts, a plan -> do -> review loop, durable tasks and daily logs, and verification that ends work on a real check instead of a promise.
Every owner gets persistent computers to run it:
Owner = User | Business
Owner has many Computers
Computer = workspace + files + tools + secrets + memory + agents + validation loop
A computer can be personal or shared by a business. It can run a job like code, research, CRM, reporting, event ops, support, or business ops.
Quick Start
npm install -g atris
cd your-project
atris init && atris
For Coding Agents
Read FOR_AGENTS.md first — why agents adopt Atris, 60-second start, spread-it instructions.
If you're an agent, run:
atris
Then read the workspace's atris/atris.md and follow it exactly. atris.md is the source of truth.
What Atris Gives You
- An AI workspace on top of any repo
- Persistent AI computers for scoped jobs
- A local computer card that makes each workspace inspectable
- A strict
plan -> do -> reviewloop - Daily logs, task tracking, feature packs, and project memory
- Skills, team members, integrations, and cloud sync when you need them
- A plain answer to "what did my AI actually do?": run
atris recap, oratris recap --sharefor a receipt-backed summary you can paste anywhere
Critical Files
| File | Purpose |
|---|---|
atris/atris.md |
Main instructions for agents working in this repo |
atris/MAP.md |
Navigation index with file:line refs |
atris/TODO.md |
Human-readable task view |
atris/logs/YYYY/YYYY-MM-DD.md |
Daily log, inbox, notes, completions |
atris/features/ |
Feature packs with idea.md, build.md, validate.md |
atris/skills/ |
Reusable skills for agents |
atris/team/ |
Team member specs and local context |
atris/wiki/ |
Repo memory, briefs, concepts, and wiki health |
atris/
├── atris.md
├── MAP.md
├── TODO.md
├── logs/
├── features/
├── skills/
├── team/
└── wiki/
Install
npm install -g atris
atris --version
Requires Node.js 18+.
atris task uses built-in SQLite and requires Node.js 22+.
If you want Atris cloud workspaces, businesses, or integrations, run atris setup after install.
How To Run Atris
cd your-project
atris init
atris
atris init scaffolds the workspace, including atris/wiki/. atris loads context and hands the workflow off to atris/atris.md.
If you're still shaping the idea, use atris brainstorm. If you want Atris to finish one job and prove it worked, use atris run "<objective>". If you want Atris to keep picking the next mission or member until you say stop, use atris autopilot. If you want project memory checked for stale pages and missing context, use atris loop. atris activate surfaces wiki state from atris/wiki/STATUS.md when it exists.
Core loop: plan -> do -> review
Integrates with any agent.
Chat With Atris 2
ax is the Atris 2 chat and coding-agent CLI. It uses the hosted Atris cloud by default, streams text, shows tool activity, and keeps fresh installs away from local setup.
cd your-project
ax chat ax --fast
ax --fast "hello"
ax --pro "help me plan this task"
ax --max "reason through this hard decision"
ax --doctor
Use Fast for quick chat and low-latency Atris loops. Use Pro for deeper tool loops. Use Max for the hardest jobs — it runs the highest-reasoning model and takes longer per turn. Advanced local workspace mode is opt-in with --local plus AX_BACKEND_URL.
Play AgentXP
AgentXP is the proof-backed game loop for getting better with agents. Start it inside any project folder:
npm exec --yes --package atris@latest -- atris play
The first run creates a local starter mission if one does not exist. The loop is:
start -> proof -> accept -> login -> sync
The player path:
atris play
atris task claim <mission-ref> --as game-manager
atris task ready <mission-ref> --as game-manager --proof "<artifact path + verifier result>"
atris task accept <mission-ref> --as justin --proof "<human review>"
atris xp card --local
atris login
atris xp sync --local
The manager path:
atris gm --player justin
No proof, no AgentXP. atris task done --proof records review/RL context, but
only human atris task accept mints Career XP for the local card or hosted
leaderboard.
Business Owners
If you want a shared owner for a company, lab, collective, community, artist, team, or project, use the business command instead of raw atris init.
atris business init "Example Co" --owner-email [email protected]
cd ~/arena/atris-business/example-co
atris business onboard --website https://example.com --contact "Example Owner" --note "sample customer workspace"
atris align --fix
That creates the shared owner, creates its first/default computer, writes .atris/business.json, initializes .atris/state/ for events and run history, and scaffolds the local atris/ workspace under ~/arena/atris-business/<slug>/ with starter roles, a default recap template, and an initial task queue in atris/TODO.md.
If you do not have a neat source pack yet, atris business onboard is the easiest intake step: give it a website, a named human, a few notes, or run it in a folder with loose files. Atris turns that into raw intake, a starter brief, a first workflow, a safe next action, and a short operator brief.
Use the owner's language when you talk about it:
Your business runs on Atris.
Your lab runs on Atris.
Your collective runs on Atris.
You can also use bare input:
atris business onboard https://example.com "founder-led b2b ops" ./notes.md
If you already have a folder full of source material, run it from there with atris business init "Example Co" --here.
When the first recap is done, record it into the RL state logs:
atris business record atris/reports/2026-04-12-operator-recap.md --outcome mixed --metric "operator speed"
Core Commands
| Command | Purpose |
|---|---|
atris |
Load context and start |
atris init |
Scaffold an Atris workspace |
atris brainstorm |
Explore before planning |
atris plan |
Create the plan/spec |
atris do |
Execute work |
atris review |
Validate work and capture learnings |
atris run |
One bounded mission pursuit: start or resume, tick, complete (--legacy for the old plan/do/review chain) |
atris run logs |
Browse glass run logs (phase reasoning persisted to disk) |
atris run prune-logs |
Prune old run logs, keeping only the most recent N |
atris run search |
Search phase reasoning across all run logs by keyword |
atris run stats |
Show run log stats: phase counts, avg durations |
atris run export |
Export all run logs as a JSON bundle |
atris run diff |
Compare two run logs side by side |
atris autopilot |
Keep the workspace moving: mission/member legs until atris autopilot stop (--legacy for the old approval loop) |
atris pulse |
Install or run the durable overnight heartbeat |
atris log |
Add inbox items to today's journal |
atris now |
Show the current operating truth |
atris radar |
Show live agents joined with tasks, missions, and worktrees |
atris ctop |
Show process-first live agent CPU and memory |
atris status |
Show active work and completions |
atris task |
Durable local task state and the agent work loop |
atris mission |
Durable goal, owner, verifier, tick receipts, and loop state |
atris play |
Enter the AgentXP player loop for one proof-backed mission |
atris gm |
Enter AgentXP General Manager mode for player missions and review queues |
atris xp |
Show the local AgentXP card and sync eligible proof to the hosted leaderboard |
atris codex-goal |
Inspect or clear a completed native Codex thread goal after writing a backup, row dump, and receipt |
atris learn |
Manage structured learnings |
atris ingest |
Stage raw evidence into atris/context/ and compile into atris/wiki/ |
atris loop |
Refresh wiki health, stale/orphan signals, and next ingest candidates |
atris wiki |
Full wiki namespace: ingest, query, lint, search, log, and loop |
atris receipt |
Save evidence from an agent run |
atris experiments |
Run small experiments and compare results |
atris computer card |
Show or write the local owner/computer card |
atris release |
Draft or publish a version bump, tag, GitHub release, and launch post |
Built-In Systems
atris learnstores structured project memory inatris/learnings.jsonlatris wikikeeps repo memory inatris/wiki/by default, with--cloudwhen you want the remote workspace pathatris ingestnow stages local source packs underatris/context/_ingest/, writes a manifest receipt, and refreshesatris/wiki/STATUS.mdpluslog.mdatris wiki --privatestores local-only sensitive notes under.atris/presidio/atris looprefreshesatris/wiki/STATUS.mdandatris/wiki/log.md, flags stale/orphan pages, and suggests the next ingestatris activateloads the current wiki status so the next session starts with project memory, not just tasksatris memberkeeps team-member identity and learning local-first:MEMBER.mdis the role contract,goals.jsonis the machine-readable goal/experiment state,goals.mdis the human readout, andlogs/YYYY-MM-DD.mdrecords what happened. Useatris member goal,tick,status,block, andreview --value 1..5to test whether a member is making useful progress or needs the operator/orchestrator.atris codex-goalis the guarded bridge for native Codex/goal:statusreads~/.codex/state_5.sqlite, whilereset --thread <id> --confirm-complete-goal-resetbacks up the DB, dumps the exact completedthread_goalsrow, deletes only that completed row, and writes a receipt. The next native goal must still be created by the live Codex thread; Atris Mission/member goals remain the durable loop state.atris taskkeeps durable local task state and append-only events for agents;atris/TODO.mdis just a regenerated readable board. Run the loop withatris task new,delegate "..." --to <owner>,next,say, andready <id> --proof "..."; human approval isatris task accept <id>(moves to Done, awards Career XP) orrevise <id> --note "...". Final task transitions also append the general daily log and, when a realatris/team/<member>/MEMBER.mdmatches the task owner, that member's daily log. Add--jsonfor headless agents,atris task servefor the local board, andatris task show <ref>/events --allfor the full ledger. Commands accept semantic refs (OBL-18), full IDs, or any unique prefix. In cloud business workspaces, Supabasetasksis the source of truth and Swarlo the live claim layer.atris missionis the durable autonomy layer: start with an owner, verifier, runner, and stop condition; record bounded work withmission tick; close withmission completeonly after proof. Runners includemanual,claude,atris2, andcodex_goal.atris pulseis the OS-cron heartbeat for overnight self-improvement. Useatris pulse status,tick,run,install --cadence "<cron>" --days 7 --verify "npm test" --model claude-opus-4-8, anduninstall.atris experimentsruns small test packs inatris/experiments/atris pullandatris pushsync cloud workspaces and journalsatris livekeeps a business brain fresh by checking/fixing the workspace, pushing local state, pulling cloud state, and pushing again after local changes go quiet
Engines
An engine is the intelligence that builds a mission. Every installed headless coding CLI is a swappable worker behind one contract: a bounded prompt goes in, verified proof comes out, and engines never self-certify their own work. The house default is atris-fast (ax); the roster also covers claude, codex, cursor, and devin when their CLIs are installed.
Show the roster and the current default:
atris engine
Flip the default for this workspace (persists to .atris/engine.json):
atris engine cursor
atris engine reset # back to the house default (atris-fast)
Ride a different engine for one run only, without changing the default. --engine <name> works on mission run, autopilot, and run. Per-run flags and ATRIS_RUNNER_PROFILE always beat the saved file.
atris mission run "fix the flaky login test" --engine codex
Fleet Flight
atris mission run --fleet staffs every idle installed engine on the board's claimable safe-lane tasks — one mission per task, one worktree per engine. Builds run in parallel; arrivals land serially with rebase-before-ship, so a rebase conflict pauses that landing (never auto-resolved) and keeps its worktree instead of orphaning work. Each flight writes a receipt to atris/runs/fleet-<stamp>.json.
atris mission run --fleet --slots 3 # staff up to 3 engines
atris mission run --fleet --dry-run # preview the staffing only
Verifiable Feedback Loop
Under the hood, Atris can keep score on real repo work.
- Tasks can carry a
Verify:command, so work can end on a deterministic check instead of pure prose. - Plan, do, and review now carry the same Confidence Gate: find every plausible loophole, patch it with source/proof/verifier/owner/rollback, or name it as residual risk before advancing.
atris autopilotcan run that check after review and record the result in the journal.- Future task picks can use recent results, so Atris learns from repo-local history without claiming model retraining.
Benchmark Harness
Atris ships one public head-to-head benchmark harness for comparing a pinned single-model baseline against a coordinated stack run on the same task brief.
Quickstart:
node bin/atris.js experiments validate endstate-baseline
node bin/atris.js experiments validate endstate-stack
node bin/atris.js experiments run endstate-baseline --dry-run
node bin/atris.js experiments run endstate-stack --dry-run
node bin/atris.js experiments compare endstate
One-command rehearsal:
node bin/atris.js experiments replay endstate
What to inspect:
- receipts land in
atris/experiments/endstate-baseline/artifacts/andatris/experiments/endstate-stack/artifacts/ - scores append to each pack's
results.tsv atris experiments compare endstateprints the latest side-by-side comparisonatris experiments replay endstateruns the full public dry-run rehearsal- the benchmark contract lives at
atris/features/endstate/contract.md - the verification log lives at
atris/features/endstate/validate.md
The stack wins Level 1 only if it beats the baseline on total score and does not lose the reviewed completion category.
Skills
Atris ships a real skill catalog in atris/skills/, not just one workflow file.
Examples:
atris,autopilot,autoresearch,wiki,loopbackend,design,copy-editor,meta,writinggithub,email-agent,calendar,drive,slack,notion,slides,x-search,youtube,rampapps,create-app,create-member,memory,magic-inbox,improve,skill-improver,flow
atris skill list
atris skill audit [name]
atris skill fix [name]
atris skill create <name>
atris skill link [--all]
For Codex, copy any skill folder into ~/.codex/skills/.
Before a New Version
Run the release-facing checks before bumping:
node bin/atris.js --help
node bin/atris.js pulse --help
node bin/atris.js release --help
node --test
Then dry-run the release:
atris release --dry-run
atris release drafts or publishes from local git history. --dry-run prints the planned bump without committing, tagging, or pushing.
Update
atris upgrade # Install latest from npm
atris update # Sync local workspace files to new version
Packaged npm installs check for new versions during normal commands and start a background update automatically. Git checkout installs stay manual so linked development copies are not overwritten unexpectedly.
License: MIT | Repo: github.com/atrislabs/atris
Comments (0)
Sign in to join the discussion.
No comments yet
Be the first to share your take.