# Tau Crash Course: The Python Port of Pi

## Executive summary

Tau is a Python-based coding agent harness designed as an architectural port of Pi, aimed at standardizing and enhancing reliable AI workflow development. It features a Textual TUI for interaction and maintains core functionality like session management, tool calling (read, write, edit, bash), and skill invocation. Key technical aspects include the ability to store sessions in a JSONL format for easy analysis and integration into larger build pipelines.

## Key takeaways

- Architectural Porting: Tau is a coding harness developed entirely in Python and functions as an architectural port of Pi, ensuring core functionality remains consistent while updating the user interface.
- TUI Framework: The Terminal User Interface (TUI) for Tau is built using Textual, which results in some differences from Pi's native TUI but maintains similar command structures.
- Session Management and Tree Structure: Sessions are stored as a tree structure, where every message points to its parent ID. This allows users to fork conversations or navigate history using the `/tree` command.
- Data Export for Analysis: Sessions can be exported into a JSONL format (JSON Lines), making them easily parsable for external analysis, skill testing, and integration with other agents.

## Technical details

- Installation & Setup: Tau is installed via a script run in the terminal and supports Mac, Linux, or Windows environments.
- Context Control: Bash commands can be added to context using `!` (single exclamation mark) or excluded from context using `!!` (double exclamation marks).
- Model Selection & Login: Users must log in to an LLM provider (e.g., OpenAI, Anthropic, Hugging Face) and select a model using `/model`. The speaker recommends the Hugging Face provider for access to multiple inference providers.
- Session Naming & Resuming: Sessions are automatically named upon first message (a deviation from Pi's standard). They can be manually renamed using `/name <new name>`. Previous sessions can be resumed via the `pi-like` command, which lists sessions by working directory.
- Skills and Prompts: Skills are procedural instructions stored in markdown files (e.g., `agents/`, `.tau/`). They are invoked using `/skill:`. Custom prompts are slash commands that replace the initial prompt with a longer, more detailed instruction set. Skills are generally more integrated into the agent's context than custom prompts.
- Session Persistence Format: All sessions are stored in JSONL format within the `.tau/sessions` directory. Each line is a self-contained JSON object containing message ID, parent ID, timestamp, and content, facilitating structured data retrieval.

## Practical implications

- Build engineers can use Tau to test and validate the functionality of custom skills or tools (e.g., `agents.md`) by exporting the session history for later analysis.
- The JSONL export capability allows automated CI/CD pipelines to ingest structured conversation data, enabling reproducible testing of agent logic and tool usage.
- Understanding the difference between skills (procedural, context-aware) and custom prompts (front-end replacements) is crucial for designing robust AI workflows.

## Topics

Coding Agents, Python Development, TUI Design, AI Workflow Orchestration, Version Control/Session Management, Tau website and documentation, Tau on GitHub, Pi coding agent, Textual framework

Source: https://www.youtube.com/watch?v=qo1QNxWcm28
