{"name":"Tau: A Minimalist Python Coding Agent for Your Terminal","description":"Tau is a Python port of Pi's minimalist coding agent, designed to live in your terminal. It allows users to make requests like \"explain this repo\" or \"add tests,\" and it can read files, edit code, and run commands. Beyond its utility, Tau also serves as a teaching project, demonstrating how coding agents are built with a small, readable codebase.","github":"https://github.com/huggingface/tau","url":"https://osrepos.com/repo/huggingface-tau","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/huggingface-tau","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/huggingface-tau.md","json":"https://osrepos.com/repo/huggingface-tau.json","topics":["Python","AI","Coding Agent","Terminal","Developer Tools","LLM","Open Source","Hugging Face"],"keywords":["Python","AI","Coding Agent","Terminal","Developer Tools","LLM","Open Source","Hugging Face"],"stars":null,"summary":"Tau is a Python port of Pi's minimalist coding agent, designed to live in your terminal. It allows users to make requests like \"explain this repo\" or \"add tests,\" and it can read files, edit code, and run commands. Beyond its utility, Tau also serves as a teaching project, demonstrating how coding agents are built with a small, readable codebase.","content":"## Introduction\n\nTau is a coding agent that lives in your terminal. You can type requests like \"explain this repo,\" \"add tests,\" or \"fix this stack trace,\" and Tau can read files, edit code, run commands, and keep a durable session history while streaming what it is doing. It is also designed as a teaching project, offering a small, readable example of how coding agent systems are built without the complexity of a giant production codebase.\n\nTau's architecture is layered, separating concerns into `tau_ai` (model providers), `tau_agent` (core brain, messages, tools), and `tau_coding` (CLI, TUI, file/shell tools). This modularity highlights the reusable `AgentHarness` as the core brain, independent of specific frontends or environments.\n\n## Why Use Tau and Its Benefits\n\nTau offers a robust set of features for developers. It provides an interactive Textual TUI and a non-interactive print mode for scripting. Developers can leverage its built-in coding tools, including `read`, `write`, `edit`, and `bash`, to interact with their projects. Sessions are durable, stored as JSONL files, allowing for resume and branching.\n\nThe agent supports various slash commands for login, model selection, session management, compaction, and export. It can also interpret project instructions from `AGENTS.md` and custom resources, and supports user skills, prompt templates, and custom TUI themes. Context accounting, manual compaction, and optional automatic compaction are also included, alongside provider-neutral event rendering for various outputs.\n\nThe project's philosophy emphasizes small, readable layers, where each package has a single responsibility. Events serve as the primary contract between providers, renderers, and frontends, ensuring portability. The core agent harness remains independent of the CLI or specific UI frameworks. Tools are implemented as ordinary typed functions, and sessions are designed to be durable and inspectable.\n\nFurthermore, Tau can be used as a library, allowing developers to integrate its `AgentHarness` into their own applications. The harness emits events instead of rendering UI directly, meaning the same core can drive the built-in TUI, print mode, or a frontend you build yourself.\n\npython\nfrom tau_agent import AgentHarness, AgentHarnessConfig\n\nharness = AgentHarness(\n    AgentHarnessConfig(\n        provider=provider,\n        model=\"my-model\",\n        system=\"You are a helpful coding agent.\",\n        tools=tools,\n    )\n)\n\nasync for event in harness.prompt(\"Explain this package\"):\n    print(event)\n\n\n## Installation\n\nTau requires Python 3.12 or newer. The recommended installation method uses `uv`, which is installed first if necessary.\n\nFor macOS and Linux, run:\n\nbash\ncurl -LsSf https://twotimespi.dev/install.sh | sh\n\n\nFor Windows PowerShell, run:\n\npowershell\nirm https://twotimespi.dev/install.ps1 | iex\n\n\nAlternatively, if you have a package manager, you can install Tau directly:\n\nbash\nuv tool install tau-ai\n# or\npipx install tau-ai\n# or\npython -m pip install tau-ai\n\n\nVerify the installation with:\n\nbash\ntau --version\n\n\nTo upgrade an existing installation, use:\n\nbash\ntau update\n\n\n## Examples\n\nTo start using Tau, navigate to your project directory and run the `tau` command:\n\nbash\ncd my-project\ntau\n\n\nThen, simply type a request and press Enter, for example:\n\ntext\nexplain what this project does\n\n\nFor quick prompts or scripting, use the one-shot print mode:\n\nbash\ntau -p \"summarize the architecture\"\ntau --cwd /path/to/project -p \"find the CLI entry point\"\n\n\nTau requires a model provider. You can connect one by starting Tau and using the `/login` command:\n\nbash\ntau\n\n\nInside Tau, type:\n\ntext\n/login\n/login openai\n/model\n\n\nTau supports various providers, including OpenAI, Anthropic, OpenRouter, Hugging Face, and custom OpenAI-compatible endpoints, including local models. Refer to the [providers guide](https://twotimespi.dev/guides/providers-and-models/) for more details.\n\n## Links\n\nExplore Tau further through its official resources:\n\n*   [Official Documentation](https://twotimespi.dev/)\n*   [Quickstart Guide](https://twotimespi.dev/quickstart/)\n*   [Architecture Overview](https://twotimespi.dev/internals/architecture/)\n*   [Tau on PyPI](https://pypi.org/project/tau-ai/)\n*   [GitHub Repository](https://github.com/huggingface/tau)\n*   [Join the Tau Discord community](https://link.alejandro-ao.com/tau-discord)","metrics":{"detailViews":1,"githubClicks":0},"dates":{"published":null,"modified":"2026-09-08T20:51:07.000Z"}}