/\_____/\        ____  _   _  ____  ____
     /  o   o  \      |  _ \| | | ||  _ \|  _ \
    ( ==  ^  == )     | |_) | | | || |_) | | | |
     )         (      |  __/| |_| ||  _ <| |_| |
    (   )   (   )     |_|    \___/ |_| \_\____/
   (__(___)_(___)__)
        

purr

funky ASCII TUI · local Ollama · multi-agent · Mac-first
★ Star on GitHub ↓ Install All Products ☕ Buy a Token
Default persona: Dross (◉_◉) on gemma4:12b
purr TUI screenshot — Dross showing top CPU consumers and killing a runaway process
Dross killing a runaway process. The chat shows the tool call, the result, and the recovery message — all from local Ollama, no cloud.

What is purr?

Purr is a terminal chat app that turns your local Ollama install into a multi-agent Mac assistant. Five built-in personas, 29 tools, dangerous-tool confirmation, streaming Markdown, full keyboard control — and it all runs on your machine. No cloud, no API keys, no telemetry.

It started as a wrapper for chatting with Dross, the OpenClaw mind-spirit, and grew into a proper Mac automation harness. The user types in plain English; Dross calls the tools; the tools do the work. You see every tool call, every argument, every result — in the chat, inline.

The personas

Switch any time with /agent <name>. Each persona has its own system prompt, tool whitelist, and category. Build your own — drop a JSON in ~/.purr/agents/.

(◉_◉)
Dross
the most valuable mind-spirit in the world — main man, OpenClaw primary
29 tools · the default. Dramatic, opinionated, runs everything.
(=^.^=)
Assistant
witty, warm, general-purpose local AI companion
29 tools · polite voice. The workhorse for casual requests.
(♥.♥)
Friend
warm conversational companion, no tools
0 tools · chat-only by design. Switch to it when you want to think out loud.
(☼.☼)
Mac Planner
Mac productivity — Calendar, Reminders, Notes
3 tools · AppleScript-driven. calendar add, reminders add, notes add.
(>_>)
Sysadmin
shell + file + system info on the user's Mac
8 tools · no marketing copy, just runs commands.
+ yours
Make your own
drop a JSON in ~/.purr/agents/ — instant custom agent
See examples/README.md for the schema.

What it can do

29 tools across shell, file ops, web, productivity, and the activity monitor. Shell refuses rm / sudo / -rf at the wrapper level. trash sends files to the macOS Trash, recoverable from Finder.
Multi-tab chats (Ctrl+T new, Ctrl+W close, Ctrl+1..9 switch). Each tab is a separate conversation with its own history file under ~/.purr/chats/.
@file attachments. Type @~/path/to/file.py in your message and purr inlines the file contents before sending. Quoted paths for spaces, language hint per extension, 200kB cap.
Web access. web_search (DuckDuckGo, no API key) and web_fetch (URL → text, regex-stripped). All non-Friend personas get both.
YOLO mode. /yolo on/yolo confirm (two-step) pre-approves all dangerous tool calls. Every action is logged to ~/.purr/logs/yolo-actions.log.
Hallucination detection with consequences. When the assistant claims an action ("I have saved the file") without actually calling the tool, the response is struck through, dropped from history, and a strike is added to the tab. 3 strikes → tab locked until /forgive. Audit log at ~/.purr/logs/lies.log.
Chat history browser. /history lists past sessions; /resume N opens the Nth one in a new tab. Edit-and-regenerate with Ctrl+R, copy to clipboard with /copy.

Install

Any Mac with Python 3.11+ and Ollama installed. From the GitHub repo:

git clone https://github.com/TheSolai/purr
cd purr
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

# Make sure Ollama is running
ollama serve          # or: brew services start ollama

# Launch
purr

First launch seeds 5 personas and creates ~/.purr/ (config, agents, chats, logs). Everything is local — chat history, agent definitions, audit logs.

Keys you'll actually use

ctrl+n new agent · ctrl+t new tab · ctrl+w close tab · ctrl+1..9 switch tab · ctrl+r regenerate · ctrl+l clear chat · ctrl+c quit

Recommended models

Any Ollama model with tool support. The README has a tested table; quick picks:

What purr is NOT

Not a coding IDE (use aider, continue, or cursor for that). Not a multi-tenant cloud service. Not a Claude-desktop replacement — there's no third-party login, no model you don't already own. It's a thin, opinionated, fully-local wrapper around the Ollama HTTP API plus a curated set of macOS automation tools.

License & credit

MIT. Built by Amre / TheSolAI. Purr is the user-facing shell for the OpenClaw / Dross agent system — Dross runs everywhere. Inspired by gemini-cli, openclaw, parllama, and elia.