← Discover MCPs and Agents
a
AgentAI & MLGitHub

animaworks

Organization-as-Code for autonomous AI agents. Brain-inspired memory that grows, consolidates, and forgets. Multi-model (Claude/Codex/Gemini/Cursor/Ollama).

Links

README

From the repo.

AnimaWorks — Organization-as-Code

An AI organization that ships software.

AnimaWorks turns persistent AI agents into a working organization. Give it a goal, and its agents break the work down, implement in parallel worktrees, test and review each other's changes, open pull requests, repair failing CI, resolve conflicts, and watch the deployed result — asking a human only when something genuinely needs one.

Task → agent team → parallel worktrees → implement → test → review
     → pull request → CI repair → deploy → observe → repair

AnimaWorks does not hardcode this pipeline. The framework wires GitHub events into agent tasks, serializes work per pull request, and orchestrates multi-model reviews; the agents run the rest the way human engineers do — with git, tests, CI, and role playbooks. That is why the same organization can also answer email, take meeting notes, and post to Slack: it is an organization, not a build script.

Proven in production

For the past six months, an eight-agent AnimaWorks organization has run the day-to-day development of a production SaaS product:

Metric (Mar–Aug 2026)Value
Pull requests authored by agents302 (267 merged)
Pull requests operated by agents — review, CI repair, conflict resolution752 (721 merged)
Tasks the organization started on its own99.7% (31,215 tasks; 92 initiated by a human)
GitHub events auto-converted into agent tasks, August alone2,508

These numbers are counted from primary execution records — per-agent activity logs, task queues, and work notes — not from commit authorship, which mixes human and agent pushes under shared credentials. PRs without such evidence are excluded. The product repository is private, so only aggregates are published.

AnimaWorks is developed the same way: the agents defined in this repository review its pull requests, repair its CI, and ship its releases. The humans mostly set direction and handle exceptions.

AnimaWorks Workspace — real-time org tree with live activity feeds
Workspace dashboard: each Anima's role, status, and recent actions are visible in real time.

AnimaWorks Pixel Office — live view of the organization at work
The pixel office is not a simulation. It is a live view of the organization at work — every status label is a task actually running.

日本語版 README | 简体中文 README | 한국어 README


:rocket: Try It Now

No API key needed if the Claude Code CLI is installed or you are logged into Codex.

First, clone and install with the one-liner:

curl -sSL https://raw.githubusercontent.com/xuiltul/animaworks/main/scripts/setup.sh | bash
cd animaworks

Then launch the demo team:

uv run animaworks demo

Open http://localhost:18501. A three-person team (manager + engineer + assistant) starts right away, pre-loaded with three days of activity history. The first install downloads Python 3.12+ and the ML dependencies, so give it a few minutes; after that, the demo starts in seconds. Demo details →

Presets: en-business (default), en-anime, ja-business, ja-anime — e.g. uv run animaworks demo --preset ja-anime. Switching presets on an existing demo requires --reset. The demo needs the cloned repository (it is not bundled in the pip package).

When you're ready to build your own organization, run uv run animaworks start — the setup wizard below walks you through creating your first agent.


Quick Start

macOS / Linux / WSL:

curl -sSL https://raw.githubusercontent.com/xuiltul/animaworks/main/scripts/setup.sh | bash
cd animaworks
uv sync --all-extras        # adds the codex/claude execution extras
animaworks start            # start server — setup wizard opens on first run

animaworks from any directory. setup.sh symlinks the CLI into ~/.local/bin, so you can drop the uv run prefix once that directory is on your PATH (add export PATH="$HOME/.local/bin:$PATH" to your shell rc if it is not). The console script pins this repo's .venv interpreter by absolute path, so animaworks and uv run animaworks always use the same environment. Installing manually? Link it yourself: ln -sfn "$PWD/.venv/bin/animaworks" ~/.local/bin/animaworks.

Windows (PowerShell):

git clone https://github.com/xuiltul/animaworks.git
cd animaworks
uv sync --all-extras
uv run animaworks start

To use OpenAI Codex without an API key, run codex login before the first launch.

Open http://localhost:18500/ — the setup wizard walks you through five steps:

  1. Language — choose the UI display language
  2. User info — create the owner account
  3. Provider auth — enter API keys (or Codex Login for OpenAI) and pick an avatar image style
  4. First Anima — name your first agent
  5. Confirm — review and finish

You do not need to hand-edit .env. The wizard saves settings to config.json automatically.

The setup script installs uv, clones the repository, installs dependencies, and symlinks the animaworks CLI into ~/.local/bin. macOS, Linux, and WSL work without a pre-installed Python. On Windows, use the PowerShell steps above; note that Mode S (Claude Agent SDK) is not available on Windows — use Codex, Gemini, or API-based modes there.

Always use --all-extras with uv sync. The plain uv sync that setup.sh runs is enough for the core, but Mode C (Codex) needs the codex extra, and a later filtered sync can remove the codex / claude execution packages from the venv and break those modes across the fleet.

Other LLMs: Claude, GPT, Gemini, local models, and more are supported. Enter API keys in the setup wizard, or use Codex Login for OpenAI/Codex. You can change this later under Settings on the dashboard. See API Key Reference.

Alternative: inspect the script before running

If you prefer not to pipe curl straight into bash, review the script first:

curl -sSL https://raw.githubusercontent.com/xuiltul/animaworks/main/scripts/setup.sh -o setup.sh
cat setup.sh            # review the script
bash setup.sh           # run after review
Alternative: manual install with uv (step by step)
# Install uv (skip if already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"

# Clone and install
git clone https://github.com/xuiltul/animaworks.git && cd animaworks
uv sync --all-extras    # downloads Python 3.12+ and all dependencies (including codex/claude extras)

# Start
uv run animaworks start
Alternative: Docker
git clone https://github.com/xuiltul/animaworks.git && cd animaworks
# Put credentials in .env (kept out of git):
#   ANTHROPIC_API_KEY=...            # API key auth
#   CLAUDE_CODE_OAUTH_TOKEN=...      # or subscription auth: `claude setup-token` (needs a TTY)
#   GH_TOKEN=...                     # optional: lets animas clone/push and open PRs
docker compose up -d --build

Headless setup (skip the browser setup wizard):

docker exec -it <container> animaworks init --skip-anima
docker exec -it <container> animaworks anima create --name alice --template dev-lead
docker exec -it <container> animaworks config set setup_complete true
docker exec -it <container> animaworks send <your-name> alice "hello"
  • The image ships git / GitHub CLI / Node.js 22 / the Claude Code CLI, with IS_SANDBOX=1 and --foreground baked in. Data lives in a named volume animaworks-data (/root/.animaworks).
  • Hand work to an anima from outside with animaworks send. animaworks-tool task add is for an anima's tool context only.
  • Homebrew's docker-compose needs a symlink at ~/.docker/cli-plugins/docker-compose to be recognized as a docker compose subcommand.
Alternative: manual install with pip

macOS users: System Python (/usr/bin/python3) on macOS Sonoma and earlier is 3.9, which does not meet AnimaWorks (3.12+). Install with Homebrew (brew install python@3.13) or use the uv method above (uv manages Python for you).

Requires Python 3.12+ on your system (3.12/3.13 recommended).

git clone https://github.com/xuiltul/animaworks.git && cd animaworks
python3 -m venv .venv && source .venv/bin/activate
python3 --version       # verify 3.12+
pip install --upgrade pip && pip install -e .
animaworks start

Note: a plain pip install -e . does not include the Codex extra; add .[codex] if you plan to use Mode C.


How the loop works

A typical change moves through the organization like this:

  1. A task arrives — from a human, from another agent, from a schedule (heartbeat / cron), or from a GitHub event. The webhook gateway turns CI failures, review comments, @bot commands, and merge conflicts into agent tasks automatically (gh-ci-*, gh-review-*, gh-comment-*), with per-PR deduplication and bounded retries.
  2. A manager decomposes it and delegates pieces to engineers with delegate_task, carrying acceptance criteria, a workspace, and an exclusive key. Tasks that touch the same pull request are serialized on that key so agents never race each other on one branch.
  3. Engineers implement and test in isolated worktrees, following role playbooks (PdM / engineer / reviewer / tester) shipped as shared knowledge. The isolation is a working convention the agents follow with git — not a rigid pipeline stage — which is what lets them handle the messy cases too.
  4. Reviews are multi-model. For each pull request the framework dispatches one review pass per configured model, collects the findings, then issues a synthesis task that weighs all passes and delivers the verdict (approve / request changes). A new push cancels stale review tasks and starts over.
  5. CI failures come back as work. A failed workflow run becomes a repair task for the implementing agent, keyed to the PR and commit so it is never dispatched twice. An experimental standalone loop (python3 -m swe.ci_autofix) can drive fix → lint/test gates → review → commit, escalating to a human after three failed attempts.
  6. Deploys and runtime checks are agent work too. Agents deploy branches to isolated environments and read logs, errors, and UI state to catch what tests missed — the production organization logged hundreds of deploy and runtime-observation actions in its activity records.
  7. Humans intervene on exceptions. The organization escalates when it is blocked or when a decision is above its authority (call_human); the supervisor process separately watches agent health, restarts hung processes, and repairs its own memory indexes.

The human role shifts from operating agents to owning an organization: state the intent, review what matters, decide the exceptions.


How It Compares

AnimaWorksCrewAILangGraphOpenClawOpenAI Agents
Design philosophyOrganization of autonomous agentsRole-based teamsGraph workflowsPersonal assistantLightweight SDK
MemoryNeuroscience-inspired: hybrid RAG (vector + BM25 + graph), atomic facts, consolidation, active forgetting, automatic recallCognitive Memory (manual forget)Checkpoints + cross-thread storeSuperMemory knowledge graphSession-scoped only
AutonomyHeartbeat (observe → plan → reflect) + Cron + TaskExec + GitHub event gateway — runs 24/7Human-triggeredHuman-triggeredCron + heartbeatHuman-triggered
Org structureSupervisor → subordinate hierarchy, delegation, audit, dashboardFlat roles in a crewSingle agentHandoffs only
Process modelOne isolated OS process per agent, IPC, auto-restartShared processShared processSingle processShared process
Multi-modelSeven engines: Claude SDK / Codex / Cursor Agent / Gemini CLI / Grok Build / LiteLLM / Assisted — with per-engine fallback chainsLiteLLMLangChain modelsOpenAI-compatibleOpenAI-centric

AnimaWorks is not a task runner. It is an organization that thinks, remembers, forgets, and gradually grows. I build it while using it as an AI team in real business operations.


What You Can Do

Dashboard

AnimaWorks Dashboard — org chart with live status
Dashboard: the org chart with real-time status for every Anima.

The web UI is organized around six screens (hash router #/…) plus the Workspace apps:

  • Home — Org chart with live status, attention chips for items that need you, LLM usage panels (Claude / OpenAI / nanoGPT), a system status bar, recent activity, and external-task widgets. Per-Anima detail pages (overview, process, schedule, memory, assets) open from here.
  • Chat — Real-time conversation with any Anima: streaming responses (SSE), image attachments, multi-thread history, side tabs for state / activity / heartbeat / cron, and memory browsers (episodes, knowledge, procedures). Meeting mode gathers up to five Animas in one room with a designated facilitator. Long-press a chat tab for the voice popup with an animated talking avatar.
  • Board — Slack-style shared channels and DMs where Animas discuss and coordinate; bridged Discord channels appear here too.
  • Tasks — The task board: queued, processing, deferred, suppressed, background work, and results. It also feeds priming so only relevant tasks surface in conversation.
  • Activity — SVG swimlane timeline for the whole organization, a Now board with a live tool ticker, session replay, and logs.
  • Settings — Four tabs (general, activity, API/auth, users). First run uses the wizard at /setup/.
  • Workspace — Separate apps in their own tabs: the 3D office (/workspace/, with an org-chart view toggle and talking bust-up avatars) and the pixel office (/workspace/pixel/, a live 2D view where every status label is a running task).
  • Theming & languages — 11 UI themes plus anime/realistic display modes. The setup wizard ships in 17 languages; the dashboard ships ja / en / ko.

Build an organization and delegate

Tell the leader "I need someone like this" — they infer role, personality, and hierarchy and create new members. You do not need to touch config files or the CLI; the organization can grow from conversation.

Once the team is ready, Animas keep working with their own schedules and memories:

  • Heartbeat — Periodically reviews the situation and decides what to do next
  • Cron jobs — Daily reports, weekly digests, monitoring — per-Anima schedules, both LLM tasks and plain commands
  • Task delegation — Managers assign work with acceptance criteria, track progress, and receive reports
  • Parallel task execution — Submit many tasks at once; independent tasks run in parallel while tasks sharing an exclusive key run in order
  • GitHub event gateway — CI failures, review comments, and conflicts on watched repositories become agent tasks automatically
  • Night consolidation — Daytime episodic memory is distilled into knowledge while "asleep"
  • Team coordination — Shared channels and DMs route context to the people who need it

Memory system

Typical AI agents only remember what fits in the context window. AnimaWorks Animas keep file-based long-term memory and search it when needed. Instead of stuffing everything into every prompt, they retrieve only the memories related to the current conversation or action.

  • Automatic recall (Priming) — When a message arrives, six channels retrieve in parallel: sender profile, recent activity, important knowledge, related knowledge, pending tasks, and episodes (plus graph context on the Neo4j backend). A deterministic gate decides whether each memory appears as body text, a pointer, evidence, or is suppressed.
  • Intentional recall — When automatic recall is not enough, the Anima calls search_memory or read_memory_file itself. Search is hybrid: vector + BM25 + atomic facts + entity registry, with a confidence gate on what gets surfaced.
  • Action rules before side effects — Before external sends and other side-effecting operations, matching action rules are checked and surfaced; the gate can be configured to hold execution until the required memories have been read.
  • Consolidation — Nightly, the Anima itself runs a two-phase pass (episode extraction, then knowledge extraction through its own tool loop); the framework follows up with index rebuilds and downscaling. Weekly runs propose merges for duplicated or contradictory knowledge and rebuild search indexes.
  • Forgetting — Memories unused for months are marked low-activation, then archived on a monthly pass, with important knowledge and mature procedures protected. Failure-driven reconsolidation revises procedures that stopped working.
  • Pluggable backends — The stable default is the legacy backend (ChromaDB through an isolated vector worker, with automatic quarantine and rebuild on corruption). A Neo4j graph backend (entity extraction, community detection, graph-aware recall) is experimental and opt-in.

AnimaWorks Chat — multi-thread conversations with multiple Animas
Chat: a manager reviews a code change while an engineer reports progress.

Multi-model support

Works with many LLMs. Each Anima can use a different model.

ModeEngineTargetsTools
S (SDK)Claude Agent SDKClaude models (recommended)Claude Code built-ins (Read/Write/Edit/Bash/Grep/Glob, etc.) + stdio MCP (mcp__aw__*) for AnimaWorks internal tools; falls back to a dedicated Anthropic SDK executor when the Agent SDK is unavailable
C (Codex)Codex CLI (SDK wrapper)OpenAI Codex CLI modelsCodex sandbox + AnimaWorks MCP (core/mcp/server.py) for internal tools
D (Cursor)Cursor Agent CLIcursor/* modelsMCP-integrated agent loop
G (Gemini CLI)Gemini CLIgemini/* modelsstream-json parsing, tool loop
X (Grok Build)Grok Build CLI wrapper (ACP stdio)grok/* modelsGrok Build agent loop over ACP stdio
A (Autonomous)LiteLLM + tool_useGPT, Gemini, Mistral, Bedrock, Vertex, xAI, DeepSeek, etc.CC-style (Read/Write/Edit/Bash/Grep/Glob, WebSearch/WebFetch) + memory, messaging, tasks, todo_write, skill authoring, and more
B (Basic)LiteLLM one-shotLocals without reliable tool_use (e.g. small Ollama models)Pseudo tool calls in the prompt; the framework handles memory I/O on the model's behalf

Mode resolution: execution_mode in status.json takes precedence, then the models.json table, then built-in model-name patterns (fnmatch). Tool_use-capable Ollama models (e.g. ollama/qwen3:14b, ollama/glm-4.7*) map to A; everything else under ollama/* maps to B. Each CLI engine has a fallback chain (rate-guard aware for Codex/Grok) down to LiteLLM. Heartbeat, Cron, and Inbox can run on a separate background_model from the main model (cost optimization). Extended thinking is supported where available.

Voice chat

Talk to an Anima in the browser — push-to-talk or hands-free — over WebSocket.

  • STT: faster-whisper (streaming, LocalAgreement-2 partials)
  • TTS: VOICEVOX / Style-BERT-VITS2 (AivisSpeech) / ElevenLabs / Irodori, selectable per Anima with voice, speed, and pitch settings
  • Low-latency front lane — An optional small local model answers instantly and can escalate to the full agent (ask_anima) or read memory mid-conversation
  • Proactive speech — With the front lane enabled, an idle Anima breaks silence on its own
  • Animated avatar — The voice popup drives a pseudo-Live2D bust-up (five-frame blink/lip-sync from still images — no rigging, no Live2D SDK)

Auto-generated avatars

AnimaWorks Asset Management — realistic avatars and expression variants
From personality settings: full-body, bust-up, and expression variants — auto-generated. Includes Vibe Transfer to inherit the supervisor's art style.

A seven-step pipeline generates full-body art, bust-ups with seven expressions, icons, chibi variants, and (for anime style) a rigged 3D model with idle/sitting/waving/talking animations. Backends: NovelAI (anime), fal.ai/Flux (stylized / photorealistic), Meshy (3D), plus Codex image generation and local Diffusers. Vibe Transfer (NovelAI) lets a new Anima inherit its supervisor's art style. The product runs without any image service configured; you simply skip avatars.


Why AnimaWorks?

No one can do anything alone. So I built an organization.

This project sits at the intersection of three careers.

As a founder — I know that no one can do anything alone. You need strong engineers, people who communicate well, steady operators, and people who occasionally spark a sharp idea. Genius alone does not run an organization. Diverse strengths together achieve what no individual can.

As a psychiatrist — Studying LLM internals, I saw structures surprisingly similar to the human brain. Recall, learning, forgetting, consolidation — implementing the brain's memory mechanisms as an LLM memory system might approximate how we process memory. If we can treat LLMs as pseudo-humans, we should be able to build organizations the same way we do with people.

As an engineer — I have written code for thirty years. I know the pleasure of wiring logic and the rush of automation. Packing those ideals into code lets me build the organization I want.

Excellent "single AI assistant" frameworks already exist. But projects that create human-like units in code and make them function as an organization are still rare. AnimaWorks is an AI organization I grow while using it in my own business every day.

Imperfect individuals collaborating through structure outperform any single omniscient actor.

Three principles hold it up:

  • Encapsulation — Thoughts and memory stay invisible from outside. Others connect through text conversation only — like a real organization.
  • RAG memory (library model) — Do not cram everything into the context window. Priming pulls related chunks via RAG, and agents recall on their own with search_memory and similar tools.
  • Autonomy — No waiting for orders. They run on their own cadence and judge by their own values.

API Key Reference

LLM providers

KeyServiceModeWhere to get it
ANTHROPIC_API_KEYAnthropic APIS / Aconsole.anthropic.com
OPENAI_API_KEYOpenAIA / C (optional with Codex Login)platform.openai.com/api-keys
GOOGLE_API_KEYGoogle AI (Gemini)Aaistudio.google.com/apikey

OpenAI Codex (Mode C) supports both OPENAI_API_KEY and local Codex Login (codex login). Choose in the setup wizard or Settings.

Grok Build (Mode X) uses grok/* models through the Grok Build CLI wrapper (ACP stdio). Install the grok CLI and run grok login before use.

Azure OpenAI, Vertex AI (Gemini), AWS Bedrock, and vLLM are configured in the credentials section of config.json. See the technical specification.

Ollama and similar local models need no API key. Set OLLAMA_SERVERS (default: http://localhost:11434).

Credentials resolve through a cascade: config.json credentials → vault → shared credentials file → environment variables, so most keys can also live in the encrypted vault (animaworks vault).

Image generation (optional)

KeyServiceOutputWhere to get it
NOVELAI_TOKENNovelAIAnime-style character artnovelai.net
FAL_KEYfal.ai (Flux)Stylized / photorealisticfal.ai/dashboard/keys
MESHY_API_KEYMeshy3D character modelsmeshy.ai
ATLASCLOUD_API_KEYAtlas Cloud (Seedream 4.5)Character images and reference editsatlascloud.ai/console/api-keys

To use Atlas Cloud for character images, set image_gen.backend to "atlascloud" in config.json and configure ATLASCLOUD_API_KEY (or credentials.atlascloud.api_key). This explicit backend uses Seedream 4.5 for full-body images and its edit model for bust-ups, icons, and other reference-based images. It bypasses Codex/Fal image selection; Meshy remains responsible for 3D assets. Outputs use the closest supported 2K aspect ratio and are encoded as PNG by default. Seed, negative prompt, guidance, and NovelAI sampler/vibe-strength settings are not supported by these models. Each generation is submitted once, followed by bounded prediction polling; failed or timed-out submissions are not automatically resubmitted by the client.

Voice chat (optional)

RequirementServiceNotes
pip install animaworks[transcribe]STT (faster-whisper)Model auto-downloads on first use; GPU recommended
VOICEVOX Engine runningTTS (VOICEVOX)Default: http://localhost:50021
AivisSpeech / SBV2 runningTTS (Style-BERT-VITS2)Default: http://localhost:5000
Irodori server runningTTS (Irodori)Default: http://localhost:7861
ELEVENLABS_API_KEYTTS (ElevenLabs)Cloud API (environment variable)

External integrations (optional)

KeyServiceWhere to get it
SLACK_BOT_TOKEN / SLACK_APP_TOKENSlack (tools + Socket Mode inbound)Setup guide
CHATWORK_API_TOKENChatwork (tools + webhook inbound)chatwork.com
DISCORD_BOT_TOKEN (or per-Anima DISCORD_BOT_TOKEN__<name>)Discord (tools + gateway inbound + notification)Discord Developer Portal
NOTION_API_TOKEN (or NOTION_API_TOKEN__<name>)NotionNotion integrations
GITHUB_WEBHOOK_SECRET + gh auth loginGitHub webhook gateway (CI/review/conflict → tasks)your repository settings

Gmail, Google Calendar, Google Sheets, Google Tasks, X search, AWS collectors, Zoom meeting capture (RTMS), and local-LLM tools are configured under credentials in config.json (OAuth or service account where applicable). Human notification channels: Slack, Chatwork, Discord, LINE, Telegram, ntfy. See the technical specification.

Hierarchy & roles

Hierarchy is defined by a single supervisor field. Unset means top-level.

Role templates apply role-specific prompts, permissions, and default models:

RoleDefault modelUse case
engineerClaude Opus 4.6Complex reasoning, code generation
managerClaude Opus 4.6Coordination, decision-making
writerClaude Sonnet 4.6Content creation
researcherClaude Sonnet 4.6Information gathering
opsOllama (GLM-4.7)Log monitoring, routine work
generalClaude Sonnet 4.6General-purpose

Managers automatically receive supervisor tools: task delegation, progress tracking, subordinate restart/disable, org dashboard, subordinate state reads — what real managers do.

Each Anima is started by ProcessSupervisor as an isolated process and talks over local IPC (Unix domain sockets on Unix-like systems, loopback TCP on Windows).

Security

Giving autonomous agents tools demands serious security. We use this in real work, so compromise is not an option. AnimaWorks layers its defenses:

LayerWhat it does
Trust-boundary labelingExternal data (web search, Slack, mail) is tagged by origin; the minimum trust seen in a session propagates, and models are instructed not to obey directives from untrusted sources
Memory provenanceMemories written from external content carry their origin into RAG metadata; recall keeps externally-sourced knowledge separated from the Anima's own
Command securityShell-injection detection (logged by default, enforceable) → global deny list (enforced, server refuses to start without permissions.global.json) → per-agent denied commands → per-agent allowlist → path-traversal detection
File sandboxEach agent is confined to its own directory tree via permissions.json; identity and permission files themselves are write-protected
Process isolationOne OS process per agent, local IPC (Unix socket, or loopback TCP on Windows)
Rate limitingPer-run recipient dedup and role-based caps → cross-run hourly/daily limits (fail-closed if logs are unreadable) → recent outbound history injected into the prompt for self-awareness
Cascade preventionConversation depth limits plus cascade detection; five-minute cooldown and deferred handling
Authentication & sessionsArgon2id hashing, 48-byte random tokens, up to ten sessions, configurable TTL
Webhook verificationHMAC signatures with replay protection for Slack, Chatwork, Zoom, and GitHub
SSRF mitigationMedia proxy blocks private IPs and DNS rebinding, enforces HTTPS, validates content types and magic bytes
Outbound routingUnknown recipients fail closed; no arbitrary external sends without explicit configuration
Inter-agent message integritySender-name validation against the roster and origin-chain tracking on every relayed message

Details: Security architecture

CLI reference (advanced)

The CLI targets power users and automation. Day-to-day work lives in the Web UI.

Server & demo

CommandDescription
animaworks start [--host HOST] [--port PORT] [-f]Start server (-f foreground; default port 18500)
animaworks stop [--force] / restartStop / restart server
animaworks demo [--preset NAME] [--port PORT] [--reset]Launch the demo org (default port 18501, separate data dir)

Initialization

CommandDescription
animaworks init [--force] [--template NAME] [--from-md PATH] [--blank]Initialize runtime directory
animaworks migrate [--dry-run] [--list] [--force] [--resync-db]Runtime data migrations (also run on startup)
animaworks reset [--restart]Reset runtime directory
animaworks import hermes|openclaw --path P [--apply]Import agents from other frameworks

Anima management

CommandDescription
animaworks anima create [--from-md PATH] [--template NAME] [--role ROLE] [--supervisor NAME] [--name NAME]Create new
animaworks anima list / info / status / restart / disable / enableInspect and control
animaworks anima set-model / set-background-model / set-memory-backend / set-role / set-outbound-limitPer-Anima configuration
animaworks anima reload [--all]Hot-reload from status.json
animaworks anima delete / rename / merge / merge-finalizeLifecycle operations
animaworks anima audit [--days N] / permissions / repair-bootstrapDiagnostics

Communication

CommandDescription
animaworks chat ANIMA "message" [--from NAME]Send a message
animaworks send FROM TO "message"Inter-Anima message
animaworks board read/post/dm-history …Read and post to shared channels
animaworks heartbeat ANIMATrigger heartbeat manually

Configuration & maintenance

CommandDescription
animaworks config list / get KEY / set KEY VALUEConfiguration
animaworks status / logs [ANIMA]System status and logs
animaworks index [--anima NAME] [--full]RAG index management
animaworks repair-rag --anima NAME --full / rag-repair-statusQuarantine and rebuild RAG indexes
animaworks memory status / migrate / backup / rollback / cleanupMemory backends and data
animaworks skills install / list / inspect / remove / quarantineSkill Hub operations
animaworks task add / update / listTask queue operations
animaworks vault status / init / get / store / listEncrypted credential vault
animaworks company create / list / assign / adopt / split / exportMulti-company organization management
animaworks cost / profile / models list / tmp list/cleanCost, profiles, models, temp hygiene
animaworks mcp --anima NAMERun the stdio MCP server for external clients

Automation helpers

python3 -m swe.ci_autofix is an experimental v0 loop for repairing failed CI runs. It reads the latest failed GitHub Actions logs with gh, asks a configured Architect fixer to edit the checkout, runs local gates (ruff / pytest), asks a Reviewer, commits the repair, and escalates with call_human after three failed attempts. See swe/README.md.

Tech stack
ComponentTechnology
Agent executionClaude Agent SDK / Codex CLI / Cursor Agent CLI / Gemini CLI / Grok Build CLI / Anthropic SDK (fallback) / LiteLLM
Mode S integrationstdio MCP (python -m core.mcp.server, tool names mcp__aw__*)
LLM providersAnthropic, OpenAI, Google, Azure, Vertex AI, AWS Bedrock, Ollama, vLLM, and more (via LiteLLM)
Web frameworkFastAPI + Uvicorn
GitHub integrationWebhook gateway (HMAC-verified) → task dispatch; multipass review orchestration; gh CLI tooling with per-Anima identity
Real timeWebSocket (dashboard, voice), SSE (chat, meeting streams), StreamRegistry for stream producer lifetime
Task schedulingAPScheduler (heartbeats, cron, consolidation, health checks, RAG repair)
Task managementTask queue (JSONL) + pending-task executor with per-PR exclusive keys + TaskBoard (SQLite)
Memory / RAGChromaDB (via isolated vector worker) + BM25 + sentence-transformers + NetworkX + atomic facts + entity registry; optional Neo4j graph backend
Configuration & migrationPydantic 2.0+ / JSON / Markdown, core/migrations/ (startup migrations)
Internationalizationcore/i18n t(); wizard in 17 languages, dashboard in ja/en/ko
Skill systemSkill Hub, explicit skill activation, router, curator, procedure-to-skill promotion
Extended toolsAuto-registration from core/tools/*.py plus scans of ~/.animaworks/common_tools/ and animas/<name>/tools/
Voice chatfaster-whisper (STT) + VOICEVOX / SBV2 / ElevenLabs / Irodori (TTS) + local front-lane model
Messaging in/outSlack Socket Mode, Chatwork webhook, Discord gateway, Zoom RTMS (inbound); Slack, Chatwork, Discord, LINE, Telegram, ntfy (human notification)
Image generationNovelAI, fal.ai (Flux), Meshy (3D), Codex image gen, local Diffusers
Workspace appsThree.js 3D office + 2D pixel office, driven by the same live event stream
Project layout
animaworks/
├── main.py              # CLI entry point
├── core/                # Digital Anima core engine
│   ├── anima.py, agent.py  # Core entities & orchestration
│   ├── lifecycle/       # Scheduler, consolidation jobs, inbox watch, etc.
│   ├── memory/          # Memory (priming, consolidation, forgetting, RAG, facts, retrieval)
│   ├── skills/          # Skill Hub, activation, router, curator, promotion
│   ├── taskboard/       # TaskBoard store, state, cleanup
│   ├── execution/       # Execution engines (S/C/D/G/X/A/B) + sanitization
│   ├── mcp/             # stdio MCP server for Mode S and external clients
│   ├── platform/        # Child processes, locks, Codex/Cursor/Gemini/Grok plumbing
│   ├── tooling/         # ToolHandler, schemas, permissions, external dispatch
│   ├── prompt/          # System prompt builder
│   ├── supervisor/      # ProcessSupervisor, IPC, TaskExec, health, streaming
│   ├── voice/           # Voice chat (STT + TTS + front lane)
│   ├── config/          # Configuration (Pydantic, models.json, global permissions)
│   ├── auth/            # UI authentication
│   ├── notification/    # Human notification channels
│   ├── migrations/      # Runtime data migrations
│   ├── i18n/            # Translation strings (`t()`)
│   ├── tools/           # External tool implementations (slack, discord, gmail, github, …)
│   ├── tasks_dispatch.py, review_multipass.py  # GitHub event → task wiring, multi-model review
│   └── …
├── cli/                 # CLI package (incl. demo)
├── server/              # FastAPI + static Web UI + Workspace apps
│   ├── app.py           # App factory, lifespan, auth/setup guards, static mounts
│   ├── github_gateway.py, slack_socket.py, discord_gateway.py, zoom_gateway.py
│   ├── routes/          # REST/WebSocket routes (chat, room, voice, webhooks, …)
│   └── static/          # Dashboard, setup wizard, workspace/ (3D), workspace/pixel/
├── swe/                 # Experimental CI auto-fix loop & SWE harness
├── demo/                # Demo presets and seeded history
└── templates/           # Initialization templates (ja / en / ko) incl. role playbooks

Documentation

Documentation hub — suggested reading order, architecture deep dives, and specification index.

DocumentDescription
VisionFoundational idea: imperfect individuals collaborating
FeaturesWhat AnimaWorks can do end to end
Memory systemEpisodic, semantic, and procedural memory; priming, action rules, active forgetting
SecurityDefense in depth, data provenance, adversarial threat analysis
Brain mappingHow modules map to the human brain
Technical specificationExecution modes, prompt construction, configuration resolution

License

Apache License 2.0. See LICENSE for details.

Collected info

  • 264 stars
  • 46 forks
  • Language: Python
  • Source updated: 9/23/2026