SkillAgentSearch skills...

Animus

A repository for the open source, natively running, Agentic CLI project: Animus

Install / Use

/learn @crussella0129/Animus
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Animus

Local-first agentic coding tool powered by local LLMs.

Build Python License


What is Animus

Animus is a local-first agentic coding assistant that runs entirely on your machine. It uses local GGUF models via llama-cpp-python — no API keys, no data leaving your machine. Inspired by claw-code but designed from the ground up for local models, Animus adapts its behavior to the capability of the model you load: a 7-tier system scales planner complexity, grammar enforcement, tool availability, and turn budget to match what the model can reliably handle. Small models get tight GBNF grammar constraints and a decomposing planner; large models get full tool access and free-form generation. The result is a tool that works well across the full spectrum of local hardware.


Quick Start

Install

# Clone the repository
git clone https://github.com/crussella0129/Animus.git
cd Animus

# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate

# Install Animus and its dependencies
pip install -e ".[dev]"

# Install llama-cpp-python (choose one):
pip install llama-cpp-python                          # CPU only
pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu124  # CUDA 12.4

Download a Model

Animus works with any GGUF model. A few recommended starting points:

# ~4GB, good for most machines (Small tier)
huggingface-cli download Qwen/Qwen2.5-Coder-7B-Instruct-GGUF \
    qwen2.5-coder-7b-instruct-q4_k_m.gguf --local-dir ~/models

# ~8GB, better quality (Medium tier)
huggingface-cli download Qwen/Qwen2.5-Coder-14B-Instruct-GGUF \
    qwen2.5-coder-14b-instruct-q4_k_m.gguf --local-dir ~/models

Run One-Shot (Single Prompt)

animus "Explain the structure of this project" --model ~/models/qwen2.5-coder-7b-instruct-q4_k_m.gguf

Run the REPL

animus --model ~/models/qwen2.5-coder-7b-instruct-q4_k_m.gguf

Once in the REPL, type your prompt and press Enter. Use /help to see all commands.


CLI Reference

animus [PROMPT] [OPTIONS]

Arguments:
  PROMPT    One-shot prompt. Omit to enter the interactive REPL.

Options:
  -m, --model TEXT         Path to a GGUF model file, or model name.
  -p, --permission TEXT    Permission mode: read-only, standard, full, prompt.
                           Default: standard.
  -w, --workspace TEXT     Workspace root directory. Default: current directory.
  -c, --config TEXT        Path to an additional config YAML file (local tier).
  --help                   Show this message and exit.

Model Tiers

Animus detects the tier automatically from the model's parameter count embedded in its metadata. Tier controls planner behavior, grammar enforcement, max turns, and which tools are available.

| Tier | Params | Planner | Grammar Mode | Max Turns | Tools Available | Example Models | |--------|-----------|------------------|---------------|-----------|-----------------|---------------------------------------------| | Nano | < 4B | Yes (2 steps) | full | 6 | 4 | Qwen2.5-Coder-1.5B, Phi-3-mini | | Small | 4 – 13B | Yes (3 steps) | first_turn | 15 | 6 | Qwen2.5-Coder-7B, Mistral-7B | | Medium | 13 – 30B | No | off | 20 | 8 | Qwen2.5-Coder-14B, DeepSeek-Coder-V2-Lite | | Large | 30 – 70B | No | off | 15 | 10 | Qwen2.5-Coder-32B, CodeLlama-34B | | XL | 70 – 200B | No | off | 25 | 10 | Qwen2.5-Coder-72B, Llama-3.1-70B | | Ultra | > 200B | No | off | 30 | 11 | Llama-3.1-405B, DeepSeek-V3 |

Planner — For Nano and Small tiers, tasks are decomposed into sub-steps before execution. Each step has its own scoped tool list and turn budget.

Grammar Mode — GBNF grammar constraints are applied to force structured JSON output from the model. full = every turn; first_turn = only the first generation; off = free-form.


Tools

All tools are confined to the workspace boundary. Attempting to access paths outside the workspace is blocked at the security layer.

| Tool | Permission | Min Tier | Description | |--------------|------------|----------|----------------------------------------------------------------------------| | read_file | READ | Nano | Read a file with optional line offset and limit. Returns numbered lines. | | write_file | WRITE | Nano | Write (overwrite) a file. Creates parent directories as needed. | | edit_file | WRITE | Small | Replace an exact string in a file. Fails on ambiguous matches. | | list_dir | READ | Nano | List directory contents with type indicators (trailing / for dirs). | | glob_search | READ | Nano | Find files matching a glob pattern. Returns up to 100 results. | | grep_search | READ | Small | Search file contents with a regex. Returns up to 50 file:line: matches. | | bash | EXECUTE | Medium | Run a shell command in the workspace. Injection patterns are blocked. | | git | WRITE | Medium | Run git subcommands (status, diff, add, commit, etc.). Network ops blocked. |


Slash Commands

Slash commands are intercepted in the REPL before input reaches the model.

| Command | Description | |--------------------------|--------------------------------------------------------------------------| | /help | List all available slash commands. | | /status | Show session stats: message count, token estimate, tier, context, mode. | | /compact | Manually compact session history to free context window space. | | /clear | Clear session history and start a fresh conversation. | | /cost | Show token usage for the current session (input, output, total). | | /model [name] | Show current model info, or request a model switch. | | /permissions [mode] | Show or change the permission mode (read-only, standard, full, prompt). | | /session | Show the current session ID and creation timestamp. | | /diff | Run git diff in the workspace root and display the result. | | /config [key] [value] | Show or set a config value (e.g. /config model.context_length 32768). | | /plan | Show whether the planner is active for the current model tier. | | /tier | Show the detected model tier and parameter count. |


Permission Modes

| Mode | Allows | Use When | |------------|-----------------------------------------|-------------------------------------------------------| | read-only | READ tools only | You only want the model to read and analyze code. | | standard | READ + WRITE tools | Normal coding sessions. Default mode. | | full | READ + WRITE + EXECUTE (bash, git) | You trust the model to run shell commands. | | prompt | READ always; prompts before WRITE/EXEC | Reserved for future interactive approval workflow. |

Set the mode at launch:

animus --model ~/models/model.gguf --permission full

Or change it mid-session:

> /permissions read-only
Permission mode set to: read-only

Configuration

Animus uses a three-tier YAML config system. Each tier overrides the previous via deep merge:

| Tier | Location | Purpose | |---------|------------------------------|----------------------------------------------| | User | ~/.animus/config.yaml | Your personal defaults across all projects. | | Project | .animus/config.yaml | Project-specific settings. Commit this. | | Local | .animus/config.local.yaml | Machine-local overrides. Git-ignored. |

Example Config

# ~/.animus/config.yaml

model:
  provider: native            # Only "native" (llama-cpp-python) is supported today.
  model_path: ""              # Absolute path to your .gguf file.
  temperature: 0.7            # Sampling temperature (0.0 – 2.0).
  max_tokens: 2048            # Maximum tokens per generation.
  context_length: 4096        # Model context window size (tokens).
  gpu_layers: -1              # GPU layers to offload. -1 = all, 0 = CPU only.
  size_tier: auto             # Override tier detection: auto/nano/small/medium/large/xl/ultra.

agent:
  permission_mode: standard   # read-only | standard | full | prompt
  max_turns: 20               # Hard cap on agentic loop iterations per turn.
  system_prompt: "You are Animus, a local AI coding assistant with tool use."

session:
  auto_save: true             # Save session to .animus/sessions/ on exit.
  auto_compact: true          # Automatically compact when nearing context limit.
  compact_threshold: 0.7      # Compact when session fills this fraction of context.
  preserve_recent: 4          # Messages kept verbatim after compa
View on GitHub
GitHub Stars16
CategoryDevelopment
Updated1d ago
Forks2

Languages

Python

Security Score

75/100

Audited on Apr 1, 2026

No findings