Skip to main content

ANIMYST — A local-first terminal workspace for building and running AI agents.

Project description

◬ ANIMYST

 █████╗ ███╗   ██╗██╗███╗   ███╗██╗   ██╗███████╗████████╗
██╔══██╗████╗  ██║██║████╗ ████║╚██╗ ██╔╝██╔════╝╚══██╔══╝
███████║██╔██╗ ██║██║██╔████╔██║ ╚████╔╝ ███████╗   ██║
██╔══██║██║╚██╗██║██║██║╚██╔╝██║  ╚██╔╝  ╚════██║   ██║
██║  ██║██║ ╚████║██║██║ ╚═╝ ██║   ██║   ███████║   ██║
╚═╝  ╚═╝╚═╝  ╚═══╝╚═╝╚═╝     ╚═╝   ╚═╝   ╚══════╝   ╚═╝

A local-first terminal workspace for building and running AI agents

Python 3.10+ Textual License: MIT

Manifest agents. Bind MCPs. Resume real conversations. Stay in the terminal.

animystlab.com


What is Animyst?

Animyst is a local-first terminal app for building and running AI agents.

It gives you a place to define named agents, choose their models, write their incantations, bind MCP servers, store provider settings, and resume conversations without bouncing between scripts, config folders, and separate chat tabs.

Animyst sits in a practical middle ground. It is more structured than ad hoc API calls or one-off prompts, but lighter than a hosted orchestration platform. Your agents and settings live as files under ~/.animyst/, so the setup stays inspectable, portable, and close to your actual development workflow.

It is still early, and that is part of the honest story here. Animyst is not pretending to be a full remote control plane yet. What it already is, though, is a real terminal workspace for people who want to shape how an agent is configured before they ask it to work.

┌──────────────┬────────────────────────────────┬──────────────────┐
│  REGISTRY    │        CONSOLE                 │   GIT            │
│              │                                │                  │
│ ⚡ Agents    │  animyst › manifest scout       │  ⎇ main          │
│  ● scout     │  [scout] Channeling will...    │  2 files changed │
│  ● coder     │  [scout] Loading incantation   │                  │
│ ◈ MCPs       │  [scout] ⚡ Awakened            │  a3f2d manifest  │
│  ▸ GitHub    │                                │  b1c4e bind mcp  │
│  ▸ Filesystem│                                ├──────────────────┤
│ ▣ Models     │                                │   AGENT MIND     │
│  ▸ Sonnet 4.5│                                │                  │
│  ▸ Opus 4.5  │                                │  AWAKEN scout    │
│              │  animyst › _                   │  MANIFEST coder  │
└──────────────┴────────────────────────────────┴──────────────────┘

Features

⚡ Agent manifesting — Create named agents with a model, incantation, temperature, token limits, and bound MCPs. Agent definitions are stored as JSON in ~/.animyst/.

🔮 Live model streaming — Chat with Anthropic, OpenAI, and Google models from inside the TUI, with streamed responses and per-response usage reporting.

🕰 Persistent conversation history — Awaken an agent, talk to it, exit, and come back later. Animyst saves session history under ~/.animyst/history/ and resumes the latest conversation automatically.

◈ MCP registration and checks — Bind MCP servers with command-based or URL-based transports, persist their config, and run basic health checks from the console.

🔑 Provider settings management — Save API keys and preferences for supported model providers with restricted file permissions.

⎇ Git context in view — See branch status, changed files, and recent commits without leaving the app, so the agent workflow stays connected to the repo you are actually changing.

⌨ Command-first workflow — Manage agents, MCPs, models, chat sessions, and git actions through a built-in command console with keyboard shortcuts and inspectable output.

◬ Agent activity visibility — Follow manifestations, awakenings, exports, checks, and other app activity from the side panels instead of guessing what happened behind the scenes.

🌆 A deliberate terminal interface — Animyst leans into a strong visual identity, but the design is there to support clarity and flow, not to hide the fact that this is still a working developer tool.

Install

pip install animyst
animyst

Or install from source:

git clone https://github.com/CreatorGodMode/animystcli.git
cd animystcli
pip install -e .
animyst

Quick Start

# Launch animyst
animyst

# Inside the console:
help              # See all commands
manifest          # Manifest a new agent (or Ctrl+N)
bind mcp          # Bind a new MCP server
check mcp github  # Run a basic MCP health check
inspect mcp github # View stored MCP details
agents            # List all agents
awaken scout      # Awaken an agent
inspect scout     # View agent configuration
banish scout      # Remove an agent
export scout      # Export agent config as JSON
git status        # Run git commands
status            # System overview

To smoke-test in a local sandbox without writing to ~/.animyst, set a workspace-local config directory:

ANIMYST_DIR=.animyst-dev animyst

Keyboard Shortcuts

Key Action
Ctrl+N Manifest new agent
Ctrl+G Git status
Ctrl+R Refresh all panels
Ctrl+L Clear console
Ctrl+Q Quit

Architecture

~/.animyst/
├── agents.json    # Agent configurations
├── history/       # Per-agent conversation sessions
├── mcps.json      # Bound MCP server registry
├── models.json    # Available model definitions
└── settings.json  # API keys and preferences (0600 perms)

Animyst uses a file-based config system. Agent configs are portable JSON files that can be version-controlled, shared, and composed into pipelines.

Internally, the app is now organized as a thin Textual shell over dedicated modules for:

  • typed domain models in animyst/domain/
  • repository-backed persistence in animyst/storage/
  • lifecycle and chat orchestration in animyst/services/
  • command parsing and dispatch in animyst/commands/
  • modal and formatting helpers in animyst/ui/

Current repo layout:

animyst/
├── app.py                 # Textual app shell and event wiring
├── llm.py                 # Provider streaming and settings access
├── commands/              # Command parsing and dispatch
├── domain/                # Agent and conversation models
├── services/              # Agent lifecycle and chat orchestration
├── storage/               # Paths, JSON helpers, repositories
└── ui/                    # Modals and shared formatting

Conversation History

When you awaken an agent, Animyst resumes the latest saved session for that agent automatically.

  • sessions are stored under ~/.animyst/history/
  • /history shows persisted session and turn counts while chat mode is active
  • inspect <name> surfaces history metadata for that agent
  • malformed history files fail safe and start a clean session instead of crashing the app

Ralph Loop Kit

The previous refactor loop has been cleared. The current Ralph loop now targets the next product milestones: MCP binding, history UX, Textual tests, Ralph hardening, and release cleanup. Phase 10-mcp-binding is already implemented in the repo, so the next active milestone is session history UX.

Use the included Ralph loop wrapper to run the new phase sequence:

./ralph.sh run-all

Useful commands:

./ralph.sh bootstrap
./ralph.sh status
./ralph.sh clear-status
./ralph.sh run 10-mcp-binding
./ralph.sh resume 20-history-ux
./ralph.sh verify

Supporting files:

  • docs/implementation-plan.md
  • docs/automation-approvals.md
  • docs/ralph-status.md
  • docs/ralph-tasks/
  • docs/ralph-prompts/

Agent Config Format

{
  "name": "scout",
  "model": "claude-sonnet-4-5-20250929",
  "incantation": "You are a research agent that finds and summarizes information.",
  "mcps": ["web-search", "filesystem"],
  "temperature": 0.7,
  "max_tokens": 4096,
  "status": "dormant"
}

Language

Animyst uses intentional language to distinguish itself:

Generic Animyst
Create agent Manifest agent
Running Awakened
Idle Dormant
Delete Banish
System prompt Incantation
Register MCP Bind MCP

Tech Stack

  • Textual — Python TUI framework with CSS-like styling
  • Rich — Terminal formatting and markup
  • GitPython — Git integration
  • Anthropic SDK — Claude model integration
  • OpenAI SDK — GPT model integration
  • Google GenAI SDK — Gemini model integration
  • Python 3.10+ — Async-native, type-hinted

Current State

What is already working in the repo today:

  • Live agent execution with streaming output
  • Persistent per-agent conversation history
  • Modular architecture for storage, services, commands, and UI
  • Ralph loop automation scaffolding for autonomous implementation work
  • MCP binding with persistence and basic health checks

What we plan to improve next:

  • Richer history UX for browsing past sessions and transcripts
  • Deeper MCP runtime integration and more useful health diagnostics
  • Textual integration tests for real command and modal flows
  • Harder-to-break Ralph automation with stronger resume and PR workflows
  • Release polish, changelog discipline, and better public-facing assets
  • Cost tracking per agent run
  • Import and export for reusable agent packs

License

MIT


Created by Abhi at Animyst Lab

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

animyst-0.1.1.tar.gz (50.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

animyst-0.1.1-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file animyst-0.1.1.tar.gz.

File metadata

  • Download URL: animyst-0.1.1.tar.gz
  • Upload date:
  • Size: 50.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for animyst-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3c81fe031b64ebaa1967765f9e97bfd3c7c68dd7a91d47114f1b6ddadf1b3fff
MD5 0c56989ef0bb5a1a70058002b65d32fc
BLAKE2b-256 6d0c694be8e588f51d9a25902442d457ef9490e78f200c64e25d9ed0d71b0093

See more details on using hashes here.

File details

Details for the file animyst-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: animyst-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 31.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for animyst-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 98188ac2421139e381d88205057fb0f6a563999a6c0d606e3f29cc46cad049eb
MD5 70592ce1caf21600b39931f73cdfb2ee
BLAKE2b-256 8dadea971822e9b87d3ffa378326a0cac4616ea0bcf2228c6c92c67b0c24550d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page