Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: launchapp-dev/animus-cli

v0.5.14

12 Jun 19:21
@github-actions github-actions
8777229
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

What's Changed

Full Changelog: v0.5.13...v0.5.14

Contributors

Shooksie
Assets 7
Loading

v0.5.13

12 Jun 01:51
@github-actions github-actions
fde96ca
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

What's Changed

Full Changelog: v0.5.12...v0.5.13

Contributors

Shooksie
Loading

v0.5.12

09 Jun 19:08
@github-actions github-actions

Choose a tag to compare

Full Changelog: v0.5.11...v0.5.12

Loading

v0.5.11 — Chat streaming fidelity + full provider matrix

08 Jun 20:16
@Shooksie Shooksie

Choose a tag to compare

v0.5.11 — Chat streaming fidelity + the full provider matrix

animus chat send --stream --json now streams everything the agent does, and all four provider tools (claude / codex / opencode / gemini) were brought up to current-CLI compatibility so their tool/command activity streams too.

Fixed (CLI)

  • chat tool_result streams the tool output — previously emitted only success: bool, dropping the content. Now carries the provider's full output (command stdout, file contents, structured JSON).
  • chat tool_result reports the human tool name — correlates a toolu_... id back to the preceding tool_call's name.

Provider compatibility — run animus plugin update

The provider plugins evolved past their parsers as the upstream CLIs changed. All released at v0.2.4 on the stable v0.1.13.2 protocol lineage:

  • codex v0.2.4 — codex emits sandbox shell runs as command_execution items (not function_call); these were dropped. Now mapped to tool_call + tool_result.
  • opencode v0.2.4 — opencode v1.2 wraps frames as {type, part} with tool details under part.state; parser read old keys → unknown_tool. Now parses the part shape (old format still handled).
  • gemini v0.2.4 — gemini CLI refused headless runs in an untrusted directory (exit 55); provider now sets GEMINI_CLI_TRUST_WORKSPACE=true on spawn.

All four providers verified end-to-end through animus chat against official signed builds.

Full Changelog: v0.5.10...v0.5.11

Loading

v0.5.10 — Animus Chat (CLI-first)

08 Jun 19:26
@Shooksie Shooksie

Choose a tag to compare

v0.5.10 — Animus Chat

Multi-turn conversations through the CLI, streamed as JSON, built on the existing provider plugins (claude/codex/gemini) — no new plugin, no new API key.

Added

  • animus chat new|send|get|list — durable multi-turn conversations. send --stream --json emits one ChatStreamEvent per line to stdout (turn_started / text_delta / tool_call / tool_result / metadata / turn_completed) — the surface to build chat apps on.
  • animus cost conversation <id> — per-conversation token + USD rollup.
  • Provider-owned continuity — each turn is resume XOR replay, never both: with a live provider session_id the prompt is just the new message (the CLI tool's native session carries history); with no session, Animus replays its stored transcript. Single full-history retry on stale-session. No double-counted context.
  • Conversation store at ~/.animus/<repo-scope>/chat/<id>/ (meta.json + append-only messages.jsonl), path-traversal-guarded. User message persists before the provider call (crash safety); the provider's native session_id is captured per turn.
  • Reuses SessionBackendResolver (the animus agent run path), so the wrapped CLI tool reaches Animus's MCP server via mcp_endpoint — the model can call animus.* tools mid-conversation.

Verified end-to-end

A two-turn conversation against the claude provider: turn 1 (resumed=false) streamed thinking + tool calls + reply; turn 2 (resumed=true, same session_id) correctly recalled context from the resumed native session. Transcript + cost rollup persisted.

Deferred to v0.5.11

Direct-API chat_provider plugins (own the turn structure, intercept tool use) and the OpenAI-compat HTTP surface. The turn loop is factored behind a TurnProducer seam so that path is additive. See docs/architecture/animus-chat.md.

Full Changelog: v0.5.9...v0.5.10

Loading

v0.5.9

08 Jun 17:57
@github-actions github-actions

Choose a tag to compare

Full Changelog: v0.5.8...v0.5.9

Loading

v0.5.8

08 Jun 13:58
@github-actions github-actions

Choose a tag to compare

Full Changelog: v0.5.5...v0.5.8

Loading

v0.5.5 — authoring ergonomics + governance + protocol cleanup

08 Jun 02:23
@Shooksie Shooksie

Choose a tag to compare

Highlights

This release ships seven authoring-side features, two architectural design proposals, a docs sweep for previously-hidden YAML blocks, and a v0.5.7 protocol-cleanup cluster.

Added

  • worktree: block at workflow + per-phase level with mode: auto|required|skip, cleanup, base_ref. Replaces implicit, always-on worktree creation.
  • secrets: block + ${secret.<name>} interpolation. Compile-time resolution, required-but-unset fails with file + line.
  • Sensitive-interpolation lint. Warns on ${VAR} for env vars matching TOKEN|KEY|SECRET|PASSWORD outside the secrets: block.
  • Trigger plugin authoring story. animus plugin scaffold trigger <name> + examples/triggers/fswatch/ reference plugin + authoring guide.
  • Kernel-level OAuth broker for HTTP MCP servers. oauth: block with client_credentials / refresh_token / manual_bearer flows; 0600 cache, 60s skew margin, no token leakage.
  • Basic eval framework. evals: block on phases with command + llm_judge checks, pass_threshold, on_fail: rework|block. Schema lands; runtime enforcement deferred to the out-of-tree workflow-runner plugin pin bump.
  • Budget caps + animus cost CLI. Per-workflow + per-phase budget: block (max_tokens, max_cost_usd, on_exceed); cost-state aggregator + 4 animus cost subcommands.
  • animus plugin doctor subcommand showing every preflight role with its installed claimants.
  • animus plugin install --as-kind <KIND> + auto-increment on collision. Daemon-side translator rewrites <installed_kind>/<verb> to <native_kind>/<verb> so plugins stay unmodified.
  • animus subject delete --kind <K> --id <ID> --yes CLI verb.

Architecture proposals (design only)

  • docs/architecture/multi-tenant-rbac-v0.5.5.md — four-chokepoint RBAC scaffold; v0.6 implementation path.
  • docs/architecture/knowledge-rag-binding-v0.5.5.md — memory plugin binding shape; references the already-published animus-memory-store-protocol v0.1.0.

Docs sweep

  • schedules: + triggers: + daemon: blocks documented in workflow-yaml.md — features had shipped but were undocumented.
  • Plus animus-plugin-template subject pin v0.1.0 -> v0.5.7.

Protocol cleanup (v0.5.7)

  • launchapp-dev/animus-protocol v0.5.7 restores METHOD_SUBJECT_DELETE, SubjectBackend::delete default impl, BackendError::Unsupported, subject_backend_main helper. Fixes the v0.1.14 'sync' regression that silently wiped these surfaces.
  • launchapp-dev/animus-subject-default v0.1.4 + animus-subject-requirements v0.1.8 + animus-subject-linear v0.1.5 released with SubjectBackend::delete implementations. Linear also carries a real data-loss bug fix (update with patch.comment was overwriting issue descriptions).

Plugin-org maintenance

  • All canonical Rust plugins now have published binary assets for Linux x86_64 + Linux aarch64 + macOS aarch64 + macOS x86_64 (Intel runner queue stuck-job issue resolved by switching to macos-15-intel runner label; aarch64-linux switched from cross-rs to native ubuntu-24.04-arm runner).
  • New launchapp-dev/animus-tui v0.1.0 standalone TUI control plane (k9s-style; 7 views; ratatui + crossterm + tokio + animus-control-protocol).

Carried forward to v0.5.8

  • animus plugin rename <name> --to <new-kind> for post-install rename.
  • 2 TODO(codex-p2) items in the kind translator (multi-kind subject backends, --name install override edge cases).
  • animus-subject-linear + animus-subject-sentry protocol pin bump to v0.5.7.

See CHANGELOG.md for the full diff.

Full Changelog: v0.5.4...v0.5.5

Loading

v0.5.4 — delete agent-runner sidecar; auto-update + opt-in metrics

05 Jun 17:41
@Shooksie Shooksie

Choose a tag to compare

Highlights

~10,000 LOC net surface-shrink by deleting the agent-runner sidecar after recognizing it was vestigial post-plugin-extraction. Provider plugins (claude/codex/gemini/opencode) handle CLI invocation; animus agent run is reimplemented as a thin client over SessionBackendResolver.

Major changes

  • agent-runner sidecar deleted. ~8000 LOC removed; animus agent {run,status,cancel,control} now dispatches directly to provider plugins via the existing plugin host. The Unix-socket bridge, runner_helpers supervisor, lockfile, and shared-secret auth are gone. The published animus-agent-runner-protocol crate is marked deprecated.
  • animus runner restart-stats removed. No more sidecar to restart.
  • DaemonHealth schema: new provider_plugins_healthy: bool field; legacy runner_connected/runner_pid kept for wire back-compat (always false/None).
  • animus agent control returns unavailable (exit code 5) under the provider-only model.

Added

  • animus self update — configurable auto-update with four modes (off / notify / prompt / auto), channel filtering (stable / prerelease), atomic same-directory binary swap. Env: ANIMUS_AUTO_UPDATE_MODE, ANIMUS_AUTO_UPDATE_DISABLE.
  • animus metrics — opt-in anonymous event counters with first-run prompt. Hard opt-in; closed-enum events with bounded tag types; no code/paths/repos/prompts ever in the payload. Env kill-switch: ANIMUS_METRICS_DISABLE=1. Default endpoint is a placeholder pending product confirmation.
  • system_prompt_file on AgentProfile — load the system prompt from an external UTF-8 file (resolved relative to source YAML). Inlined verbatim at compile time.
  • HTTP MCP servers in workflow YAMLmcp_servers: entries can declare transport: http + url: so workflows can reach remote MCPs (e.g. Robinhood's hosted MCP) without bridge scripts.

Infrastructure

  • Rust toolchain pinned to 1.96.0 via rust-toolchain.toml.

See CHANGELOG.md for the full diff.

Loading

v0.5.3 — surface-shrink: 17 → 12 crates

03 Jun 20:32
@Shooksie Shooksie

Choose a tag to compare

Changelog - v0.5.3

Release Date

2026年06月03日

Overview

v0.5.3 is a pure surface-shrink release. Workspace shrinks from 17 → 12 crates across v0.5.2 + v0.5.3 (the in-tree oai-runner extraction lived in v0.5.2; the orchestrator-git-ops delete + three folds land in v0.5.3 as the cleanup wave). The kernel is now mostly CLI + daemon + plugin-host + core + config + a small support tail.

Per Sami's coding philosophy ("clean smaller surfaces are easier and smaller surfaces that can be made bulletproof or hot swapped"), every change here is net-shrink, no behavior change.


Surface-shrinks landed

Delete orchestrator-git-ops (1472 LOC)

The crate had zero Rust consumers — only its own Cargo.toml referenced it. The docs claimed it "owns git automation helpers" but no code imported it; actual worktree management lives in animus-workflow-runner-default (out-of-tree plugin) and the daemon dispatch path. Pure delete.

Extract in-tree oai-runner (5483 LOC)

crates/oai-runner/ was the standalone OpenAI-compatible agentic runner binary. launchapp-dev/animus-provider-oai-agent v0.1.3 already ships the same code wrapped in the stdio plugin protocol, plus a separate animus-oai-runner release archive. The in-tree crate became redundant when the plugin was published.

  • Pinned animus-provider-oai-agent v0.1.3 in default-install.json + plugin_registry::DEFAULT_OAI_AGENT_PLUGINS (constant already existed).
  • New resolve_oai_runner_binary() helper in orchestrator-core::runtime_contract: searches $ANIMUS_OAI_RUNNER_BIN~/.animus/plugins/animus-provider-oai-agent/bin/animus-oai-runner → legacy flat path → $PATH.
  • agent-runtime-config.v2.json cleared the hardcoded "executable": "animus-oai-runner" so the resolver kicks in.
  • Stripped animus-oai-runner from .cargo/config.toml, Dockerfile, .github/workflows/release.yml, scripts/install.sh (legacy archive support kept for upgraders).

Known v0.6+ gap: animus plugin install is currently single-binary-per-plugin. The plugin's release ships TWO archives (animus-provider-oai-agent-*.tar.gz + animus-oai-runner-*.tar.gz); only the first is pulled by animus plugin install launchapp-dev/animus-provider-oai-agent. After install, the animus-oai-runner binary is NOT on disk. v0.6 will add multi-binary plugin install support OR publish animus-oai-runner as its own repo. Existing operators may need a manual install in the interim.

Fold orchestrator-providersorchestrator-core::subject_adapter (2006 LOC)

The crate was misnamed (not "providers" — provider plugins live out-of-tree). 73% of it was subject_adapter.rs (subject backend routing trait + impl); 11% was the git project adapter; 9% was the builtin project adapter. Only orchestrator-core depended on it. Folded as a sub-module:

  • subject_adapter.rscrates/orchestrator-core/src/subject_adapter/adapter.rs
  • git.rscrates/orchestrator-core/src/subject_adapter/git.rs
  • builtin.rscrates/orchestrator-core/src/subject_adapter/builtin.rs
  • lib.rscrates/orchestrator-core/src/subject_adapter/mod.rs

2 callers updated: orchestrator-core itself + animus-runtime-shared::ensure_execution_cwd. Known v0.6+ follow-up: subject_adapter::TaskServiceApi and services::TaskServiceApi now coexist in orchestrator-core (identically named); disambiguation via as Provider... aliases preserved. Worth a rename pass.

Fold orchestrator-storeorchestrator-core::store (180 LOC)

Trivial — 180 LOC of persistence primitives, smaller than most files in the kernel. Folded into orchestrator-core/src/store/mod.rs. tempfile dep promoted from dev-only to prod in orchestrator-core (the store helpers use it in production paths). 2 callers updated: orchestrator-core + animus-runtime-shared.

Fold orchestrator-session-hostorchestrator-plugin-host::session (2406 LOC)

The crate's own lib.rs docstring said "Host-side glue that wires the upstream SessionBackend trait to the Animus STDIO plugin protocol" — literally plugin-host glue. All 5 source files (incl. plugin_supervisor.rs and session_backend_resolver.rs) folded under crates/orchestrator-plugin-host/src/session/.

  • 6 import sites updated across agent-runner, orchestrator-cli, orchestrator-daemon-runtime.
  • animus-session-backend, orchestrator-logging, async-trait, uuid (+ rt-multi-thread tokio feature) absorbed into plugin-host's deps.
  • Re-exports inside session/mod.rs preserve the old top-level surface; consumers use orchestrator_plugin_host::session::... (no top-level plugin-host re-export — keeps the namespace boundary visible).

Codex round 1 P2 fix (main loop)

  • docs/architecture/crate-map.md claimed "13 crates" and still listed orchestrator-session-host as a current crate. Fixed: "12 crates" + removed the stale row; consolidated the description into the orchestrator-plugin-host row.

Codex round 1: 0 P1, 1 P2 (fixed inline).


Numbers

  • Workspace members: v0.5.0: 17 → v0.5.1: 17 → v0.5.2: 15 → v0.5.3: 12.
  • Net LOC delta on main vs v0.5.2: ~−1700 (the folds are roughly LOC-neutral as moves; the wins come from deleted Cargo.toml + README files and tightened doc tables).
  • ao-cli tests: 1774 passing (down from 1917 at v0.5.1; the delta reflects the deleted in-tree oai-runner tests + the deleted store + providers test modules). 6 pre-existing testkit-binary failures unchanged. 11 ignored.
  • Codex rounds on main merge: 1 → 0 P1, 1 P2 (fixed inline).

Architectural shape after v0.5.3

The remaining 12 crates, grouped:

Core (5): orchestrator-cli, orchestrator-core (with the folded subject_adapter + store modules), orchestrator-config, orchestrator-daemon-runtime, agent-runner

Plugin foundation (4): orchestrator-plugin-host (with the folded session module), animus-plugin-protocol, animus-plugin-runtime, animus-runtime-shared

Support (3): orchestrator-notifications, orchestrator-logging, protocol

That's the "glue" shape Sami's coding philosophy was after — the kernel is CLI + daemon + plugin host + core. Everything else is a plugin (out-of-tree) or shared infrastructure consumed by both kernel and plugins.


🚧 v0.6 carry-forwards from this release

  • Multi-binary plugin install. Today animus plugin install is single-binary; the OAI agent plugin ships two binaries (animus-provider-oai-agent + animus-oai-runner). v0.6 should add multi-binary install support OR animus-oai-runner should be published as its own repo.
  • Subject adapter trait rename. subject_adapter::TaskServiceApi / services::TaskServiceApi collide in orchestrator-core post-fold. The as Provider... aliases work today; a clean rename would close the disambiguation surface.
  • Standalone launchapp-dev/animus-runtime-shared repo needs Cargo.toml updated when this ships: drop the orchestrator-store git dep — fsync_rename now lives under orchestrator_core::store::fsync_rename.
  • orchestrator-notifications extraction (1.5k LOC) — could be a notifier plugin (the symmetric inverse of triggers). Not done in v0.5.3.
  • agent-runner extraction to a runner plugin (10.5k LOC) — biggest single-crate move; would mirror the workflow-runner-v2animus-workflow-runner-default swap in v0.5.1. Architectural cleanup; deferred.

Upgrade

animus daemon stop
curl -fsSL https://raw.githubusercontent.com/launchapp-dev/animus-cli/main/scripts/install.sh | bash
animus plugin install-defaults --include-subjects --include-transports
# OAI users: also install the agent plugin
animus plugin install launchapp-dev/animus-provider-oai-agent
animus daemon preflight
animus daemon start --autonomous
Loading
Previous 1 3 4 5 6 7
Previous

AltStyle によって変換されたページ (->オリジナル) /