A self-extensible agent CLI with terminal UI, multi-provider LLM support, session management with branching, and a plugin system for tools and commands
Project description
Tau (τ)
Inspired by Pi, Tau brings the same agent framework capabilities to Python developers. A self-extensible agent CLI with a terminal UI, multi-provider LLM support, session management with branching, and a plugin system for tools, commands, and customization.
Start a conversation with the agent in the terminal.
Quick Start
Installation
pip install tau-coding-agent
Or install from source:
git clone https://github.com/Jeomon/Tau.git
cd Tau
pip install -e .
Launch
tau
Authenticate with your LLM provider using /login or set environment variables (e.g., NVIDIA_API_KEY).
Common Commands
tau # Interactive mode
tau --resume # Resume most recent session
tau --model claude-sonnet-4-6 # Use specific model
tau --print "Summarize this repo" # One-shot mode
tau -p anthropic --print "Explain this code" # Print mode with provider
tau --mode rpc # RPC mode for IDE extensions
For detailed options, see CLI Reference
Features
- Multi-provider LLM support — Anthropic Claude, OpenAI GPT, Google Gemini, Mistral AI, Ollama, Azure OpenAI
- Terminal UI — Built-in chat interface with syntax highlighting, markdown rendering, and keyboard navigation
- Rich media support — Work with text files, images, audio files, and video files via file references or clipboard input
- Session management — Persistent sessions with branching, forking, and resuming capabilities
- Tool execution — Built-in tools (terminal, file I/O, web fetch) with sandboxed execution and extensibility
- Plugin system — Add custom tools, slash commands, hooks, themes, and skills without modifying core code
- 16 built-in themes — Dark and light themes including dracula, nord, gruvbox, catppuccin, ayu-dark, tokyo-night, rose-pine, and more
- Context management — Automatic context compaction and branch summarization for long conversations
- Python API — Embed Tau in your own applications programmatically
- Multiple run modes — Interactive TUI, print mode (one-shot), JSON event stream, and JSON-RPC for IDE integration
Documentation
Start here: Tau Documentation
Key resources:
- Quickstart — Five-minute getting started guide
- Installation & Setup — Provider authentication and configuration
- Usage Guide — Interactive mode and slash commands
- Architecture — System design and data flow
- Extensions — Building tools, commands, and plugins
- Python API — Programmatic usage
Core Architecture
Console (CLI) → TUI (Terminal UI) → Runtime (Agent Execution) → Engine (Tools) → Inference (LLM)
User input flows through the TUI to the runtime, which executes tools via the engine and calls the LLM provider for inference. Results are rendered back in the TUI and persisted to sessions.
Configuration
Settings are loaded in order of precedence:
- Built-in defaults
~/.tau/settings.json(global user settings).tau/settings.json(project-level settings)- Environment variables
- Command-line flags
Sessions are saved to ~/.tau/sessions/ and can be resumed, forked, or cloned.
Project Context Files
Tau automatically discovers and includes project-specific instructions from AGENTS.md or CLAUDE.md in the system prompt. This allows you to:
- Define project rules and coding guidelines for the agent
- Standardize how the agent handles project-specific conventions
- Store project context separately from tool configuration
Example usage:
# Auto-discover AGENTS.md in the project (default behavior)
tau
# Disable project context file loading
tau --no-context-files
# Trust project files explicitly
tau --approve
# Don't trust project files for this run
tau --no-approve
See Project Context Files for detailed instructions.
Security & Permissions
Tau executes tools (terminal, file I/O, web operations) with the permissions of the user and process that launched it. There is no built-in permission system for restricting filesystem, process, network, or credential access.
If you need stronger boundaries, consider:
- Running Tau inside a container or sandbox
- Using OS-level security policies
- Configuring environment variables to limit tool access
Supply Chain Security
We treat dependency changes as reviewed code changes with these practices:
- Exact version pinning — All direct dependencies pinned to specific versions in
pyproject.toml - Lockfile integrity —
uv.lockis the source of truth; changes require explicit review - Dependency auditing — Use
pip-auditorsafetyto scan for known vulnerabilities - Safe installation — Install with
--no-depsto prevent malicious lifecycle scripts
See SECURITY.md for detailed practices and vulnerability reporting.
Development
python -m pytest # Run tests
pyright tau/ # Type checking
python -m tau --mode tui # Launch from source
See Development Setup for detailed instructions.
Contributing
See CONTRIBUTING.md for contribution guidelines and AGENTS.md for project-specific rules.
License
This project is licensed under the MIT License — see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tau_coding_agent-0.3.1.tar.gz.
File metadata
- Download URL: tau_coding_agent-0.3.1.tar.gz
- Upload date:
- Size: 514.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48536b82c5f01f1a0c585d50f80fab83ca5f8697bd5770125eee124c650b5a97
|
|
| MD5 |
a34c5ba0ef019781319eda91e6e123ed
|
|
| BLAKE2b-256 |
5a9e2f80c5bcc951f21d8f95671541e2cfb762ee2fda49d0007fa7a19719f98d
|
File details
Details for the file tau_coding_agent-0.3.1-py3-none-any.whl.
File metadata
- Download URL: tau_coding_agent-0.3.1-py3-none-any.whl
- Upload date:
- Size: 591.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7555c4c6ae8431c51782a07a8323856f3cf3d4f6700d1b34d439ca3a5cb4bfe0
|
|
| MD5 |
2616903d5f36a4ed636e6407bd56fbab
|
|
| BLAKE2b-256 |
68f07f49d7bca782e93279c1b306e0d9528bd82904fe6afcfc54a6f0ffd53894
|