[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:tau":3},"\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fhuggingface\u002Ftau\u002FHEAD\u002Fdocs\u002Fassets\u002Ftau-header.svg\" alt=\"Tau — a Python coding-agent harness inspired by Pi\" width=\"100%\" \u002F>\n\u003C\u002Fp>\u003Cp align=\"center\">\n  \u003Cstrong>A small, readable terminal coding agent — and a working example of how coding agents are built.\u003C\u002Fstrong>\n\u003C\u002Fp>\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Ftwotimespi.dev\u002F\" rel=\"nofollow ugc noopener\">Documentation\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Ftwotimespi.dev\u002Fquickstart\u002F\" rel=\"nofollow ugc noopener\">Quickstart\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Ftwotimespi.dev\u002Finternals\u002Farchitecture\u002F\" rel=\"nofollow ugc noopener\">Architecture\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Ftau-ai\u002F\" rel=\"nofollow ugc noopener\">PyPI\u003C\u002Fa>\n  ·\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftau\u002Fissues\u002F1\" rel=\"nofollow ugc noopener\">Roadmap\u003C\u002Fa>\n\u003C\u002Fp>\u003Chr \u002F>\n\u003Ch2>What is Tau?\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Tau is a coding agent that lives in your terminal.\u003C\u002Fstrong> You type requests like\n\"explain this repo\", \"add tests\", or \"fix this stack trace\"; Tau can read files,\nedit code, run commands, and keep a durable session history while streaming what\nit is doing.\u003C\u002Fp>\n\u003Cp>Tau is also meant to be read. It is a teaching project for understanding the\nshape of a coding-agent system without starting from a giant production\ncodebase.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-text\">tau_coding  →  tau_agent  →  tau_ai\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>\u003Ccode>tau_ai\u003C\u002Fcode> translates model providers into Tau's provider-neutral stream.\u003C\u002Fli>\n\u003Cli>\u003Ccode>tau_agent\u003C\u002Fcode> owns the portable brain: messages, tools, events, loop, harness,\nand session primitives.\u003C\u002Fli>\n\u003Cli>\u003Ccode>tau_coding\u003C\u002Fcode> wraps the brain as a real coding app: CLI, TUI, file\u002Fshell tools,\nprovider config, project instructions, skills, and on-disk sessions.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The important boundary is:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-text\">AgentHarness = reusable brain\nCodingSession = coding-agent environment\nTUI = one possible frontend\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The core does not know about Textual, Rich, local config paths, slash commands,\nor rendering. Frontends consume events.\u003C\u002Fp>\n\u003Ch2>Install\u003C\u002Fh2>\n\u003Cp>Tau is published on PyPI as \u003Ccode>tau-ai\u003C\u002Fcode> and installs a \u003Ccode>tau\u003C\u002Fcode> command.\nIt requires Python 3.12 or newer. The recommended installers use\n\u003Ca href=\"https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F\" rel=\"nofollow ugc noopener\">\u003Ccode>uv\u003C\u002Fcode>\u003C\u002Fa> and install it first when necessary.\u003C\u002Fp>\n\u003Cp>macOS and Linux:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">curl -LsSf https:\u002F\u002Ftwotimespi.dev\u002Finstall.sh | sh\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Windows PowerShell:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-powershell\">irm https:\u002F\u002Ftwotimespi.dev\u002Finstall.ps1 | iex\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The installers do not use \u003Ccode>sudo\u003C\u002Fcode>. They announce before installing \u003Ccode>uv\u003C\u002Fcode>, install\nTau in an isolated tool environment, verify \u003Ccode>tau --version\u003C\u002Fcode>, and report if a\nshell restart is needed. You can \u003Ca href=\"https:\u002F\u002Ftwotimespi.dev\u002Finstall.sh\" rel=\"nofollow ugc noopener\">inspect the shell installer\u003C\u002Fa>\nor \u003Ca href=\"https:\u002F\u002Ftwotimespi.dev\u002Finstall.ps1\" rel=\"nofollow ugc noopener\">PowerShell installer\u003C\u002Fa> before running it.\u003C\u002Fp>\n\u003Cp>Already have a package manager? Install Tau directly:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">uv tool install tau-ai\n# or\npipx install tau-ai\n# or\npython -m pip install tau-ai\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Then check it worked:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">tau --version\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Tau is also available on \u003Ca href=\"https:\u002F\u002Fconda-forge.org\" rel=\"nofollow ugc noopener\">conda-forge\u003C\u002Fa>, and can be installed using \u003Ca href=\"https:\u002F\u002Fpixi.prefix.dev\u002Flatest\u002F#installation\" rel=\"nofollow ugc noopener\">pixi\u003C\u002Fa>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">pixi global install tau-ai\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Upgrade a normal installation with:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">tau update\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For local development:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">git clone https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftau.git\ncd tau\nuv sync --dev\nuv run tau --version\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>To make the checkout-backed command available globally, install it as an\neditable tool:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">uv tool install --editable --force .\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Run that command again after \u003Ccode>git pull\u003C\u002Fcode>. Editable installs expose source-code\nchanges immediately, but the tool environment's package metadata, dependencies,\nand entry points are only refreshed when uv reinstalls the tool. Without the\nrefresh, \u003Ccode>tau --version\u003C\u002Fcode> can still show the version from the previous install.\u003C\u002Fp>\n\u003Ch2>Quickstart\u003C\u002Fh2>\n\u003Cp>Run Tau from the project you want it to work on:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">cd my-project\ntau\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Then type a request and press \u003Cstrong>Enter\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-text\">explain what this project does\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>One-shot print mode is useful for scripts and quick prompts:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">tau -p \"summarize the architecture\"\ntau --cwd \u002Fpath\u002Fto\u002Fproject -p \"find the CLI entry point\"\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Tau needs a model provider. Start Tau and connect one with \u003Ccode>\u002Flogin\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">tau\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cpre>\u003Ccode class=\"language-text\">\u002Flogin\n\u002Flogin openai\n\u002Flogin openai-codex\n\u002Fmodel\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Tau ships with support for OpenAI, Anthro\u003C\u002Fp>\n",1785169772464]