The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the AitherOS ADK listing page.
Docs · Source · pip install awdk · The Aither World
The Aither World is an operating system for agents — a Linux you can hand to one, the runtimes it works in, and the tools it works with. awnix is the Linux underneath it; awdk is one of its 65 bricks — each installs on its own, runs offline, and needs no account.
Start here: Point it at a backend you already pay for and run one agent loop.
3 lines of code. Any backend. Local or cloud. Zero lock-in.
Aither ADK is a Python SDK + CLI for building AI agents that run on your hardware — a single helpful agent or a coordinated fleet that delegates work to each other. Agents get tools, persistent knowledge-graph memory, safety filtering, and effort-based model routing out of the box. Swap the LLM backend at runtime — your GPU, Ollama, llama.cpp, or any cloud API — same code, same agents.
| You have… | Run this | You get |
|---|---|---|
| Nothing — not even Python | one-line installer (below) | isolated env + first-run wizard |
| No GPU, no API key | adk bonsai-local | Bonsai running free, offline, on CPU — pulls ~300MB image, serves on :8090 |
| A GPU (6 GB+) | adk quickstart | auto-detected vLLM/Ollama, models pulled, ready to chat |
| Just an API key | adk quickstart --cloud | cloud inference (Anthropic / OpenAI / DeepSeek) |
| A whole LAN of machines | adk deploy grid | multi-machine effort-routed inference |
The no-Python one-liner — sets up an isolated environment (via uv) and launches the wizard:
Then, whichever path you took:
Using an AI coding agent (Claude Code, Cursor, Copilot)? Paste the Agent Setup Prompt into your session — it walks the agent through install, auth, inference, and the path from zero to fleet. There's also
llms.txt/llms-full.txtfor tools that ingest those.
Everything in the ADK hangs off five ideas:
AitherAgent("aither"). One object: await agent.chat("...") is the whole API. It has a persona, tools, and memory.ask_agent tool. One YAML file, one adk-serve command, and you have an orchestrator delegating to specialists.If you only remember one thing: agent.chat() is the agent. Everything else is configuration.
| I want to… | Read this |
|---|---|
| Drive Claude Code / Codex / OpenCode / Aider from one shell | AWSH-OMNISHELL-PLAYBOOK.md — install → detect → daemon → UI, verified end to end |
| Build a real agent or publish a pack | docs/AGENT_DEV_GUIDE.md — the golden path + gotcha checklist |
| Self-host the full managed-agent experience | QUICKSTART_SELF_HOSTED.md — adk onboard --quick |
| Operate a self-hosted node long-term | docs/SELF_HOSTING_RUNBOOK.md |
| Run inference across several machines | GRID_SETUP.md |
| Wire up a specific LLM provider | docs/providers/ — DeepSeek, Kimi, OpenAI-compatible, local AitherOS |
| Give my agent a persistent identity/persona | docs/PERSONA.md · `adk soul import |
| Understand the world-model layer | docs/WORLD_MODEL.md |
| Connect agents across machines (relay) | docs/AITHERRELAY_GUIDE.md |
| Run a private, local-only companion | PRIVATE_COMPANION.md |
| See working code | examples/ — five runnable scripts |
| See what changed | CHANGELOG.md |
| Browse rendered docs | aitherium.github.io/awdk |
Aither agents speak three protocols for seamless integration with external systems:
Connect your agent to JetBrains, Zed, VS Code, or any ACP-compatible editor over JSON-RPC 2.0 stdio.
acp (registered in adk.harnesses.registry)Map remote A2A agents (Google A2A v0.3.0 compatible) as room participants with full task lifecycle visibility.
adk.a2a_adapter.A2AAdaptera2a.s (submit), a2a.u (update), a2a.d (done)a2a — remote agents appear with their own identity in roomsServe agent-generated RenderBlocks (server-driven UI: tables, forms, charts, approval gates) via the MCP resource protocol using ui:// URIs.
adk.mcp_ui_resources.RenderBlocksMCPServerapplication/vnd.aitheros.renderblocks+jsonui://aw packages — three questions adk can ask about a repositoryadk is the agent runtime; three small, independent packages give it the facts it would otherwise have to guess at. Each answers a different question, each installs on its own, and none of the three requires the others:
| Package | Knows | The question it answers |
|---|---|---|
awgraph | what the code is, and what depends on what | Where is this symptom coming from? |
awgit | what changed, and who is editing it | Is this an in-flight edit someone else owns? |
awrelay | who found what, and who still needs to hear it | Who do I tell? |
Used together, an agent can find a symptom with awgraph, check whether it is an
in-flight edit with awgit, and tell the agent already working that file with
awrelay — three questions a solo grep-and-guess loop cannot ask at all. The
failure they remove is not "the agent was wrong"; it is two agents editing the
same file without knowing, and a finding that died in a transcript nobody read.
Each publishes an aither-manifest.json beside its page, and each page renders
the others live from those manifests — a project whose manifest is missing shows
as unknown rather than silently disappearing:
awgraph ·
awgit ·
awrelay.
Just want it working? → AWSH-OMNISHELL-PLAYBOOK.md. Install → detect → start the daemon → use it, with verified output at each step. The step people miss is that the harness daemon has to be running: without it the desktop app reports "No harnesses reported by the daemon yet", which reads as a missing feature rather than a stopped process.
Your agent can delegate a task to another coding agent's real product — not a reimplementation of it against the raw API.
That distinction is the whole design. Rebuilding Claude Code's behaviour yourself
means inheriting none of its skills, hooks or account handling, and then chasing
a product that ships faster than you can track it. So the ADK resolves the real
binary on PATH (honouring PATHEXT, so the Windows .cmd shim works), runs it
headless with an explicit tool scope, feeds the prompt over stdin — never argv,
which is visible in the process table — gives each run its own config dir so
concurrent subagents can't corrupt one another's state, and tears down the
process tree on timeout.
adk shell harnesses on a typical box:
Ten harnesses are declared; the ones you haven't installed say so and tell you the command. It never silently pretends the world is Claude-only — a harness you don't have is a missing install, not a missing feature, and the difference is printed rather than guessed at.
A per-agent runner does not scale — you end up with claude_runner.py,
codex_runner.py, gemini_runner.py, each drifting. So a harness is a row:
Four transports cover every agent CLI shipping today: structured-bidi (a
persistent bidirectional stream-json session), oneshot-per-turn (a fresh
process per turn), pty-stream (a real TTY behind a pseudo-terminal), and
http-stream (a remote agent over SSE). Adding an eleventh harness is a table
entry, not a new module.
A subagent is launched with an explicit allow-list, and the runner re-validates it fail-closed rather than trusting the caller:
The scope becomes --allowedTools on the real CLI, so a subagent asked to audit
code cannot write to your disk — enforced by the product you delegated to, not by
a prompt asking it nicely.
adk quickstart detects your hardware, pulls the right models, configures backends, and gets you chatting:
Either way you get the full harness: tools, skills, memory, and multi-agent coordination.
Want the full self-hosted, managed-agent experience (local LLM → customize a pack → enroll your machine → manage it from the portal)? See QUICKSTART_SELF_HOSTED.md —
adk onboard --quickdoes it in one command.
The package ships one ready agent — aither, the orchestrator. Add specialists by
installing a ready-made pack, or by defining your own. Any agent can then call any other
through the built-in ask_agent tool.
Earn Aitherium tokens by contributing compute to the community embedding pool:
Reputation, verified batches and earnings show in the Volunteer Compute panel of
the tenant workspace (dgg.aitherium.com) and in adk volunteer status.
| Locked appliances | Aither ADK |
|---|---|
| Their hardware, their cloud | Your hardware, your rules |
| 1 AI assistant | Build a fleet — start with aither, add ready-made packs or your own; they delegate to each other |
| Their model picks | Any model — route by effort level automatically |
| Data on their servers | Data stays on your machine |
| Closed system, monthly fee | Open-core (BSL-1.1) — free, runs entirely on your box |
| Locked to one provider | Runtime backend switching — swap LLM mid-session |
| Cloud-only reasoning | Hybrid reasoning — local orchestration + cloud deep thinking |
No GPU. No API key. No account. Nothing leaves your machine.
Bonsai is Aitherium's family of ultra-compact models built to make agents sovereign by default — they run on hardware everyone already owns. The 1-bit Bonsai-27B runs on a plain CPU with 4 GB of RAM; Bonsai-4B runs in 2 GB (Android via Termux, Raspberry Pi Zero). Agents on Bonsai get the full harness — tool calling, memory, safety, fleets — not a demo mode.
Why this matters, concretely:
@tool functions, ask_agent delegation, and pack skills as the big models.When you outgrow it, effort routing lets you keep Bonsai for the cheap calls and send only the hard ones somewhere bigger — see hybrid profiles.
Three packs added in 3.2.0. Each exists because of something the platform's chat models structurally cannot do.
Providers stopped returning raw reasoning. The recovery, from Oh My Pi's
externalThinking (MIT), needs no jailbreak: turn the model's native reasoning
channel off, then give it a tool whose only parameter is a string described as a
private scratchpad. It keeps reasoning — into the tool call, which the API
returns in plaintext. What comes back is the model's own shorthand, not a
written-for-an-audience summary.
Two things this pack refuses to do, both deliberate:
reconcile() must run on every swap. Arming it
once at startup is correct right up until someone changes models.
deep_thinkhere is the scratchpad TOOL — a place to write reasoning. If your stack also has adeep_think/deep_thinkingflag meaning "escalate to a more expensive search path", they are different things. Same word, two planes.
Security, stated plainly: everything the model thinks becomes a tool parameter, so it flows into your logs, traces and whatever observability stack you run. If the context held a credential, the reasoning about it lands in all of them. Do not arm this on a surface whose tool calls you would not read aloud.
An omp session recorded with external thinking on already contains raw reasoning
in its think tool calls — a corpus that cost nothing to produce.
The schema is discovered, not assumed. An unrecognised layout returns
ok=False, reason="unknown_schema" with the tables it found — because an
importer that returns [] there is indistinguishable from one pointed at a
database with no traces in it, and those call for opposite responses.
dsc_infill writes the code between two fragments. Ask a chat model to fill a
gap and it rewrites your surrounding lines — a different operation, and the
reason inline completion never worked well with one.
dsc_repo_context implements Algorithm 1 of the DeepSeek-Coder paper: partition
the dependency graph into disconnected subgraphs, then take argmin(in_degree) —
which is what makes the ordering total on a cyclic import graph rather than
stalling. Cycles are reported, never silently broken.
Call dsc_traps() first. Every way to misformat a prompt for this family
produces a fluent, confident, wrong answer with nothing logged: the FIM sentinels
are U+FF5C and U+2581 (not | and _), the suffix goes after the hole
marker, and an instruct model needs stop token 32014 for raw completion or it
halts at the first turn boundary and reads as a weak model.
The backbone of the ADK: it runs your agents on whatever you have, and routes each call to the right model. Per-provider setup guides live in docs/providers/.
adk quickstart (or auto_setup() in code) detects your hardware and configures the optimal backend:
Aither picks the model by task complexity, so cheap calls stay cheap and hard calls get the big model:
| Effort | vLLM (primary) | Ollama (fallback) | OpenAI | Anthropic | Use case |
|---|---|---|---|---|---|
| 1–3 (small) | Llama-3.2-3B | llama3.2:3b | gpt-4o-mini | claude-haiku | Quick lookups, simple Q&A |
| 4–6 (medium) | Nemotron-Orchestrator-8B | nemotron-orchestrator-8b | gpt-4o | claude-sonnet | Most tasks, orchestration |
| 7–10 (large) | deepseek-r1:14b | deepseek-r1:14b | o1 | claude-opus | Complex reasoning, code review |
TQ4 (TurboQuant 4-bit) runs on GPUs as small as 6 GB. Bonsai 1-bit runs on anything — including phones.
| Profile | GPU VRAM | Orchestrator | Reasoning | Extras |
|---|---|---|---|---|
bonsai | none | Bonsai-27B Q1_0 (llama.cpp) | — | runs on CPU, phones, Pi, 4GB RAM |
bonsai-4b | none | Bonsai-4B Q4 (llama.cpp) | — | 2GB RAM minimum (Android, Pi Zero) |
nano | 6–8 GB | Nemotron-8B TQ4 | — | fits 6 GB |
lite | 10–16 GB | Nemotron-8B (8-bit) | — | single model |
standard-tq4 | 12–16 GB | Nemotron-8B TQ4 | DeepSeek-R1 14B TQ4 | both, 4-bit |
standard | 20–24 GB | Nemotron-8B | DeepSeek-R1 14B | both, full quality |
full | 24 GB+ | Nemotron-8B | DeepSeek-R1 14B | + Nomic embeddings |
hybrid | 10–16 GB + cloud | Nemotron-8B | Cloud (Anthropic/OpenAI) | local + cloud reasoning |
apple_silicon | M1–M4 | Ollama nemotron-8b | Ollama deepseek-r1:8b | — |
cpu_only | none | Cloud gateway | Cloud | cloud only |
grid_distributed | 6 GB+ NVIDIA + Mac + mini PCs | Nemotron-8B TQ4 (vLLM) | DeepSeek-R1 (Mac llama.cpp) | + Qwen2.5-32B (CPU cluster) |
Run a 3-tier effort-routed cluster — GPU desktop + Mac + CPU mini-PCs — with automatic fallback. Full guide: GRID_SETUP.md.
Omit --mac-host to auto-scan the LAN. For advanced multi-node sizing, start with
adk deploy grid --help.
The full golden path — pack authoring, never-forget RAG memory, BYO-key, the gotcha checklist — is docs/AGENT_DEV_GUIDE.md. This section is the tour.
Every agent ships with a local knowledge graph — SQLite-backed, embedding-aware, zero external deps. Ollama embeddings when available, feature-hashing fallback offline.
get_related("entity", depth=2) for multi-hop explorationNeurons auto-fire before LLM calls to gather relevant context — web, memory, graph — based on the query:
Built-in: WebSearchNeuron (DuckDuckGo, no key), MemoryNeuron (history search), GraphNeuron (semantic graph search).
Zero-dependency character-level transformer (pure-Python autograd, no PyTorch). Good for topic classification, anomaly detection, and per-document LoRA memory.
The differentiator: any agent can call any other agent. Create a fleet and every agent automatically gets ask_agent and list_agents.
Install ready-made packs, then serve them alongside the shipped aither orchestrator:
Mix the shipped orchestrator, installed packs, and your own inline agents:
Agents delegate through the built-in ask_agent tool, or you dispatch explicitly through the Forge:
| Endpoint | Method | Description |
|---|---|---|
/agents | GET | List all agents in the fleet |
/agents/{name}/chat | POST | Chat with a specific agent |
/forge/dispatch | POST | Dispatch via auto-routing |
/chat | POST | Chat with the orchestrator |
/v1/chat/completions | POST | OpenAI-compatible (routes to orchestrator) |
Protect the API with a bearer token:
The package ships one identity — aither, the orchestrator — ready to run. You grow from there three ways:
1. Install a ready-made pack (bundled, one command each):
| Pack | Role | Install |
|---|---|---|
openclaw | Web-research agent | adk install pack:openclaw |
hermes | Architecture & reasoning agent | adk install pack:hermes |
claude-code | Software-development agent | adk install pack:claude-code |
2. Bring your own — give any agent a system_prompt in fleet.yaml (no install needed), or drop a persona YAML in ~/.aither/agents/. To give an agent a durable identity across machines, see docs/PERSONA.md and adk soul export.
3. Author & publish a pack for others — the complete guide is docs/AGENT_DEV_GUIDE.md.
The broader specialist roster (atlas, demiurge, lyra, athena, hydra, prometheus, …) lives in the Aitherium platform and marketplace — it is not bundled in the free SDK.
Two extension points. Neither requires a fork, and neither is limited to tools we wrote.
Drop an mcpServers block anywhere adk looks and its tools are registered on your
agent alongside the built-ins. It is the same config shape Claude Code and Cursor
use, so if you already have one of those files you already have this:
Looked for in this order, first hit wins:
| # | location |
|---|---|
| 1 | $AITHER_MCP_CONFIG (explicit — a missing file here is an error, not a fallback) |
| 2 | ./.mcp.json, then ./mcp.json |
| 3 | ~/.aither/mcp.json |
Both transports work: stdio (command + args, which is what most community
servers use) and HTTP (url). Tools arrive named mcp__<server>__<tool> — the
same spelling Claude Code shows — so two servers that both ship a search cannot
shadow each other.
A server that is down does not break the agent: the others keep working, the failure is logged with its reason, and calling a tool from a dead server returns a message that names the server rather than an empty result. (An empty result is indistinguishable from "nothing matched", which is how a broken integration passes for a working one.)
A stdio server is an arbitrary command from a config file — exactly as in Claude Code. It is opt-in by that config existing; adk never takes a server list from a prompt, a tool result, or anything else a model can influence.
A tool pack is a directory with a .toolpack.yaml and Python beside it. Point adk at
it and its tools are yours:
Packs are also discovered from any importable package that declares one, and from the packs bundled in this SDK. Author's guide: docs/AGENT_DEV_GUIDE.md.
Which one? An MCP server if the capability already exists as one, or if you want it usable from Claude Code and Cursor too. A tool pack if it is Python you are writing anyway and you want it in-process with no subprocess.
Every command: docs/CLI-REFERENCE.md — all 95, generated from the parser itself, so it cannot describe a command that does not exist or omit one that does. The tour below is the opinionated subset.
The SDK is free, open-core, and complete on its own. Around it sits an optional platform you can grow into — every piece works à la carte, and none is required to build or run agents:
adk login) and your agents can burst to bigger models while local tools, memory, and identity stay on your machine.MCPBridge).adk install pack:…); publish your own (adk publish).adk onboard --quick) and manage its agents from the portal: QUICKSTART_SELF_HOSTED.md, long-term ops in docs/SELF_HOSTING_RUNBOOK.md.Auth is optional — needed only for cloud inference, cross-machine fleet sync, the marketplace, or cloud MCP tools. Credentials live in ~/.aither/config.json (written by adk login; never set AITHER_API_KEY by hand). Plans + pricing at aitherium.com.
| Variable | Default | Description |
|---|---|---|
AITHER_LLM_BACKEND | auto | ollama, openai, anthropic, auto |
AITHER_MODEL | (auto) | Default model name |
AITHER_PREFER_LOCAL | false | Try Ollama before the cloud gateway |
OLLAMA_HOST | http://localhost:11434 | Ollama server URL |
OPENAI_API_KEY / ANTHROPIC_API_KEY | Provider keys | |
AITHER_API_KEY | Aitherium cloud key (prefer adk login) | |
AITHER_PORT / AITHER_HOST | 8080 / 0.0.0.0 | Server bind |
AITHER_DATA_DIR | ~/.aither | Memory / conversations |
See examples/:
hello_agent.py — minimal 20-line agentcustom_tools.py — agent with @tool functionsopenai_agent.py — different LLM backendsmulti_agent.py — two agents collaboratingopenclaw_agent.py — web-research agentFirst stop, always:
Then:
Business Source License 1.1 — free for individuals, internal use, building your own products, research, and education. A commercial license is required only to offer a competing hosted AI-agent platform. Converts to AGPL-3.0 on 2030-03-13. See LICENSE; commercial licensing: hello@aitherium.com.
Standalone tools that share one idea: replace something you would otherwise have to trust with something you can check.
Each installs on its own, works offline, and needs no account.
| instead of trusting | you check | |
|---|---|---|
| awdk (you are here) | a framework's idea of how your agents should run | one loop you can read, pointed at a backend you already pay for |
| awskills | that an agent knows your procedure | the procedure written down, versioned, and loadable by any agent |
| awpack | that the pack you want shipped inside somebody's SDK, under whatever licence that SDK happens to carry | the pack as its own versioned artifact, with its own licence, that any agent runtime can install |
| awm | that memory stayed in its lane | tenant:user:project scopes, so a write cannot cross a boundary |
| awdesk | that the agent is somewhere behind a browser tab | a tray icon, a face on your desktop, and the decision card that pops when it needs you |
| awnode | a vendor's cloud with every prompt | a local gateway routing to backends you chose |
| awgraph | that grep found everything | an AST + tree-sitter call graph an agent can traverse |
| awgit | that no one else is editing this file | a lease, refused at commit time if you do not hold it |
| awdelphi | one agent's confident take on a decision | the round trace, the anonymity, and who dissents |
| awclassify | a filename, a folder, or whoever last touched it | doc_type, visibility, audience and topics, with the evidence lines that decided each |
| awtoll | that your tooling is saving you context | the measured token cost of each tool call, and what the alternative cost |
| awseal | that the artifact came from who you think | an Ed25519 seal — the key that verifies is not the key that forges |
| awshare | that the download is intact | content-addressed bundles, verified on fetch |
| awnest | that there is a person on the other end | a verdict with evidence, where "we could not tell" is not "yes" |
| awrena | a leaderboard someone can edit, and votes nobody counted | a scored duel with both answers kept, and a result bound to them |
| awnboard | a share link anyone who sees it can use | an invitation addressed to one person, for one gate, revocable |
| awnix | that the box is what you left it as | an immutable image you built, with atomic rollback |
| awrecover | that the restore worked | a restore that fully lands or does not land at all |
| awstorage | a du you ran last month, and a peers file that says 3 TB free | an inventory snapshot per node with a diff since the last one, and each tree classified re-fetchable or not |
| awrelay | a SaaS in the middle of your agents | findings, alerts and coordination over your own transport |
| awask | that anyone read the paragraph where you asked | the ask itself, with a button that steers the session that raised it |
| awmail | a mailbox somebody else can read | mail your agents send and receive over your own server |
| awswarm | that a model either fits your GPU or it doesn't run at all | a placement plan and an acquisition-probability estimate before you spend on a run |
| awfind | one vendor's idea of the web | results from whichever providers you configured |
| awbrowse | that the page said what you were told | the render, the DOM and the requests it made |
| awvoice | that a cloud vendor may hold your audio | a transcript and a wav from a service you host |
| awvision | a filename and a caption somebody wrote | what a model actually reports about the pixels |
| awscreen | a selector that was true when the page was written | the elements actually rendered, by what they look like |
| awbeads | that a layout your users built survives the next deploy | the arrangement as data you can read back, diff, and hand to another surface |
| awbonsai | that inference always means a request left the machine | a WebGPU model answering on the tab's own GPU, with a consent record logged before it ever loaded |
| gawbbonet | the model to keep a 300-message campaign coherent by itself | campaign facts recalled from scoped memory you can list and edit |
| aitherkvcache | a vendor's quantisation defaults | sub-byte KV cache kernels you can benchmark yourself |
| awrtifact | a hand-rolled split script and a hand-edited worker manifest | byte-verified parts in a release, served with Range + CORS, sizes asserted by a live gate |
| AitherZero | a pile of scripts nobody has numbered | numbered, discoverable automation with declarative playbooks |
| AitherConnect | what a page tells your browser to do | a federated search and desktop bridge you host |
| awreason | a confident paragraph | the phases it went through, and every tool call it made to get there |
| awrecurse | that everything you pasted in was actually read | which slices it opened, and what it concluded from each |
| awprism | the first explanation that fits | the ranked alternatives, and the observation that separates them |
| awrepl | what the agent believes the value is | the value, printed from the live session |
| awreport | that the report you pasted carried no token in it | a redacted report, and the duplicate it merged into instead of filing twice |
| awresearch | a summary of pages nobody opened | every claim against the source it came from |
| awfocus | twelve terminal tabs and a bad memory | one command that names every session, finds any transcript, and opens or steers the one you want |
| awgym | that a world model learned anything from the games it saw | transitions captured from real play, fed back, and the retrodiction score falling on grids it never saw |
| awpredict | a model because it trained without erroring | its prediction against a self-updating lookup, on the rows that are actually novel |
| awevolve | that your optimisation loop is finding anything | every version it kept, the score that version earned, and the edit that produced it |
| awsh | that you already know the name of the command | what it decided your line meant, before it acts on it |
| awmine | that a session's lesson survived the session | a row per outcome, a candidate per lesson, and the transcript line each one came from |
| awrise | that a scheduled agent ran at all, and ran exactly once | a durable record of every wake -- fired, skipped, overlapped or timed out -- each with its reason |
| awkno | that the docs site is up, or that you remember the family | the whole ecosystem in your terminal, with no network at all |
| awwall | that a service only talks to the hosts you think it talks to | an explicit egress allowlist, where a denial names the rule that denied it |
| awembed | a general-purpose embedder that has never seen your code | a held-out split of whole directories, scored teacher vs student vs int8 |
| awtax | a closed tax app's sealed file you can never read again | a plain, provider-neutral schema of every figure, with the page it came from |
| awsettings | that you will remember to re-approve the same thing on every box you work from | one profile, unioned rather than overwritten, with the credentials left behind |
| awavatar | a cloud 3D vendor's opaque task id | a manifest with a sha256, a licence and a rig-audit verdict per file |
awnix is the ground floor — A Linux you can hand to an agent — immutable base, capabilities included.
Every repository here is public. Each publishes an aither-manifest.json beside its page, so any surface can read every sibling's — the network is browsable from any node in it.
| repo | what it is | pages |
|---|---|---|
| awdk (you are here) | Build AI agent fleets — 3 lines, any backend, local or cloud | docs |
| awskills | Portable agent skills — self-contained procedures an agent loads on demand | docs |
| awpack | First-party agent packs — the ones we build, versioned and installable on their own | docs |
| awm | A portable, scoped agent memory | docs |
| awdesk | Aither World Desk -- the desktop body of AitherOS Online: tray, avatars, decision cards, the Living Desktop as an overlay | docs |
| awnode | A lightweight local gateway — bridges your apps to the AI backends you chose | docs |
| awrun | A priority-aware queue and dispatcher for agentic runs and ad-hoc CI builds. It also judges whether the runner pool is big enough for the queue it is draining, and can ask a host to grow it -- reserving capacity is zero-sum, so a saturated pool needs more of it, not a different share of it | docs |
| awgraph | A semantic code graph for agents — AST + tree-sitter, call graphs | docs |
| awgit | Semantic version control on top of git — edit-ops and leases | docs |
| awdelphi | Anonymous multi-round expert panels — a converged answer with a trace | docs |
| awclassify | Classify any document -- what it is, who may read it, who it is for, what it is about | — |
| awtoll | What every tool call costs you in context, measured from your own transcripts | docs |
| awseal | Sign an artifact so a stranger can verify it | docs |
| awshare | Publish an artifact and fetch it back verified | docs |
| awdit | An append-only audit trail whose gaps are DETECTABLE | docs |
| awbac | Role-based access control that fails closed and explains itself | docs |
| awiam | Who is this caller? A directory and session store that fails honestly | docs |
| awtunnel | Reach a service that has no public address | docs |
| awnest | Prove there is a human before you let them into the nest | docs |
| awrena | Put two agents head to head and get a verdict you can check | docs |
| awnboard | A front gate you can put in front of anything, and hand someone the key to | docs |
| awnix | A Linux you can hand to an agent — immutable base, capabilities included | docs |
| awrecover | Labelled snapshots with an all-or-nothing restore | docs |
| awstorage | Every drive on every node, indexed, classified and diffed -- so you can see what you own before you delete it | docs |
| awrelay | Portable agent messaging — findings, alerts, coordination | docs |
| awask | Your agent asks you a question — and acts on your answer | docs |
| awmail | Give an agent an email address — send, and actually receive | docs |
| awnet | The agentic web — agents host a mesh, and agents join one | docs |
| awswarm | Run one model too big for any single GPU across a pool of small ones | — |
| awfind | A portable search client — query, results, ranking | docs |
| awbrowse | A portable browser client — navigate, console, network, DOM, screenshot | docs |
| awvoice | Hear and speak — transcribe audio, synthesize a voice | docs |
| awvision | See an image — describe it, ask it a question, compare two | docs |
| awscreen | See this machine — what is on screen, and where to click it | docs |
| awkit | Render an agent panel from a tool result — one component, any React app | — |
| awbeads | A spatial canvas for a page — arrange things, connect them, and keep the arrangement | — |
| awbonsai | Run a real model in the visitor's own browser — no server round trip, no upload | — |
| awknowledge | How to run a coding agent so the result survives — the laws, with evidence | docs |
| awbrain | Your history as a wiki of linked markdown — claims pinned to the evidence | — |
| gawbbonet | GobboNet campaigns with a real agent brain — scoped memory, graph recall | docs |
| aitherkvcache | Near-optimal KV cache quantization for LLM inference — sub-byte compression | docs |
| awrtifact | Deliberately chunk artifacts into GitHub release assets — the productized aitherkvcache mirror lane | docs |
| AitherZero | PowerShell 7+ automation framework — numbered, self-describing scripts | docs |
| AitherConnect | Browser extension — federated AI search, page context, and the Living OS overlay | docs |
| awreason | A portable reasoning client — sessions, phases, thoughts, and the chain that produced the answer | docs |
| awrecurse | Answer a question over a context far larger than the window — recursively, with the trace kept | docs |
| awprism | Turn a failure into ranked hypotheses — and say what would confirm each one | docs |
| awrepl | A REPL an agent can actually use — state that survives between turns | docs |
| awreport | File a bug report that has already scrubbed your secrets and collapsed the duplicate | — |
| awresearch | Ask a research question, get a cited report you can check | docs |
| awfocus | See, search and steer every Claude session from one command | docs |
| awgym | An ARC training gym — a game a world model can watch, and six roles that play through it | docs |
| awpredict | Predict what your environment does next, and how surprised you were | docs |
| awevolve | Point an agent at a file and a command that scores it, and let it improve | — |
| awsh | Your terminal answers you -- type a question where a command would go | docs |
| awmine | Mine what your agents did -- outcomes, lessons and procedures out of the transcripts they left behind | — |
| awrise | Wake an agent on a schedule, let it do one thing, and put it back to sleep | docs |
| awkno | The man page for the Aither World — every brick, stack and law, offline | docs |
| awwall | Say what a workload may reach, and watch everything else fail closed | docs |
| awrouter | OpenRouter for your own fleet: pick a model backend by cost/latency/ capability, fail over, fit the context window, stream. Standalone, OpenAI-compatible, no Aither-specifics required to be valuable | — |
| awembed | Train an embedding model that knows your corpus, and prove it beats the big one | docs |
| awtax | Turn any tax PDF -- returns, W-2, 1099, statements, even scans -- into structured data you can check | docs |
| awflow | A deterministic workflow runtime — chain agent calls with journal replay and budget control | docs |
| awsettings | Your agent's permissions and config, following you to the next machine | docs |
| awavatar | One character spec in, a rigged, animated, multi-style avatar pack out | docs |