Metadata-Version: 2.5
Name: willow-ratatosk
Version: 1.4.0
Summary: Willow platform session runtime — MCP client, capability gate, JSONL sessions, Grove bus, tier-0 sync
Project-URL: Homepage, https://github.com/willow-memory/ratatosk
Project-URL: Repository, https://github.com/willow-memory/ratatosk
Project-URL: Issues, https://github.com/willow-memory/ratatosk/issues
Author: Sean Campbell
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Keywords: agent,local-first,mcp,ratatosk,session,willow
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Provides-Extra: cloud
Requires-Dist: anthropic>=0.40; extra == 'cloud'
Provides-Extra: dev
Requires-Dist: anthropic>=0.40; extra == 'dev'
Requires-Dist: mcp<3,>=1.0; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: pyyaml>=6; extra == 'dev'
Requires-Dist: requests>=2.31; extra == 'dev'
Requires-Dist: tomli>=2; (python_version < '3.11') and extra == 'dev'
Provides-Extra: local
Requires-Dist: requests>=2.31; extra == 'local'
Provides-Extra: mcp
Requires-Dist: mcp<3,>=1.0; extra == 'mcp'
Description-Content-Type: text/markdown

# Ratatosk

Platform session runtime for the Willow fleet — the process that runs agent
turns on any node (desk, laptop, Termux phone) and speaks MCP to `willow-mcp`.

## Role

Ratatosk is **not** memory (Nestor), **not** the desk (Grove). It is the
**session process**: prompt → tools → loop, Grove lifecycle events, JSONL
working set, tier-0 deposit sync.

## Install

```bash
pip install "willow-ratatosk[mcp,cloud,local]"
# development
pip install -e ".[dev]"
```

## Run

```bash
ratatosk --local
ratatosk --mcp
ratatosk --mcp --listen
ratatosk --mcp --deposit
```

## Environment

| Var | Default | Purpose |
|-----|---------|---------|
| `RATATOSK_GROVE_CHANNEL` | _(disabled)_ | Grove channel for session events |
| `RATATOSK_MCP_COMMAND` | `python -m willow_mcp` | MCP server command |
| `RATATOSK_APP_ID` | `ratatosk` | MCP `app_id` |
| `WILLOW_HOME` | `$WILLOW_HOME` or XDG share | Session data under `$WILLOW_HOME/ratatosk/` |
| `OLLAMA_URL` | `http://localhost:11434` | Local inference |
| `ANTHROPIC_API_KEY` | — | Cloud mode |

## willow-mcp registration

Ratatosk is a **platform session identity**, not a dispatch specialist. Install
its manifest under `$WILLOW_HOME/mcp_apps/ratatosk/manifest.json` (example in
`docs/mcp-manifest.example.json`). Without this, Grove tools deny with
`app_id=ratatosk`.

## Org home

Canonical repo: `willow-memory/ratatosk` (Platform face, sibling to
`willow-mcp` and `kartikeya`).

Playground launcher: `safe-app-store-public/apps/ratatosk`.
