Skip to main content

Agentic coding interface you can reshape

Project description

taui

Agentic coding interface you can reshape.

Alpha: This project is still in early development. APIs, commands, and behavior may change without notice.

Install

uvx taui

Or install permanently:

uv pip install taui

What is taui?

Taui is a highly customizable agentic coding interface. Instead of adapting your workflow to a fixed assistant, you control the interface itself: UI, agent, tools, prompts, extensions, skills, and storage.

Taui is a full-screen Textual TUI. Running taui launches the terminal interface with a sidebar, scrollable chat history, live streaming, visual tool status, approvals, questions, steering, and queueing.

Requirements

  • Python 3.13+
  • A supported LLM provider account (see below)

Getting Started

First Run

When you run taui for the first time, it launches an interactive provider selection prompt. Pick one or both providers and follow the auth flow:

taui

You can also authenticate explicitly at any time:

taui --login

Providers

Taui currently ships with two built-in providers:

Provider Auth Method What You Need
GitHub Copilot OAuth device flow A GitHub account with an active Copilot subscription
OpenAI Codex PKCE browser redirect A ChatGPT Plus or Pro account

GitHub Copilot

  1. Run taui or taui --login
  2. Select GitHub Copilot
  3. A device code is displayed — open the GitHub URL shown and enter the code
  4. Once authorized, your token is saved to ~/.config/taui/config.toml
  5. Subsequent runs use the saved token automatically

OpenAI Codex (ChatGPT Plus/Pro)

  1. Run taui or taui --login
  2. Select OpenAI Codex
  3. A browser window opens for OpenAI OAuth — sign in and authorize
  4. The token is saved to ~/.config/taui/config.toml

Choosing a Provider and Model

# Start with a specific provider
taui -p copilot
taui -p codex

# Use a specific model
taui -p copilot -m claude-sonnet-4

# Work in a specific directory
taui -d /path/to/project

# Resume a previous session
taui --session <session_id>

# Check version
taui --version

Within the TUI, use /model to switch models and /provider to switch providers.

Tool Approval Policy

By default, destructive tools (bash, write, edit) require user confirmation before executing. Read-only tools (read, glob, grep) run automatically.

You can customize this in your config file (~/.config/taui/config.toml):

[taui.tool_policy]
bash = "auto"       # skip confirmation for bash
write = "confirm"   # require confirmation (default)
edit = "deny"       # block entirely

Valid policy values: auto, confirm, deny.

Key Bindings

Key Action
Ctrl+Q Quit
Ctrl+N New session
Ctrl+C Cancel active request or approval
Ctrl+B Toggle sidebar
Ctrl+X Context breakdown
Escape Leave self-edit mode

Slash Commands

Command Description
/help, /h, /? Show help
/model Switch model
/provider Switch provider
/compact Compact conversation (shows token savings)
/clear Clear chat
/cost Show session cost
/sessions Browse and resume sessions
/new Start new session
/reload Hot-reload extensions
/extensions List extensions
/i Enter self-edit mode
/login Re-authenticate providers
/logout Clear saved credentials
/copy Copy last response
/export Export session
/hotkeys, /keys Show key bindings
/verbose, /quiet Toggle tool output verbosity

Extending Taui

Extensions

Extensions are Python files that register tools, commands, hooks, and skills.

Locations:

  • Global: ~/.taui/extensions/*.py
  • Project: .taui/extensions/*.py

Example extension:

def register(ctx):
    ctx.tools.register(my_tool)
    if ctx.commands:
        ctx.commands.register(my_command)
    if ctx.hooks:
        ctx.hooks.add("system_prompt", my_transform)
    ctx.skills.add_path("skills/my-skill.md")

Use /reload to hot-reload extensions without restarting. Errors from individual extensions are reported in the chat log.

Skills

Skills provide specialized instructions loaded lazily into the agent context.

Locations:

  • ~/.config/agents/skills/<name>/SKILL.md
  • ~/.taui/skills/<name>/SKILL.md
  • .agents/skills/<name>/SKILL.md
  • .taui/skills/<name>/SKILL.md

Self-Edit Mode

Run /i to enter self-edit mode — a specialist agent that can create or modify extensions, skills, commands, and tools through the extension surface.

Configuration

Config is loaded from ~/.config/taui/config.toml with this structure:

[taui]
provider = "copilot"
model = "claude-sonnet-4"
max_turns = 50
verbose_tools = true

[taui.tool_policy]
bash = "confirm"
write = "confirm"
edit = "confirm"

CLI arguments and environment variables override config file values.

Data Storage

Taui stores session data in .taui/store.db (SQLite, WAL mode) in the working directory. Sessions are append-only event streams that support replay.

Credentials are stored at ~/.config/taui/config.toml. Logs are at ~/.taui/.logs.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

taui-0.2.1.tar.gz (314.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

taui-0.2.1-py3-none-any.whl (175.5 kB view details)

Uploaded Python 3

File details

Details for the file taui-0.2.1.tar.gz.

File metadata

  • Download URL: taui-0.2.1.tar.gz
  • Upload date:
  • Size: 314.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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

Hashes for taui-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d0945d2536f3b34bafb465d3cca4689ed64f4b2150337773fc5e258ba3ef707b
MD5 6385c4bf71875faa7626a07118bb84bc
BLAKE2b-256 c6d799a939b7bd65470e1713b2b8e4ceea7d68f31a68368ba756ce6878d192c4

See more details on using hashes here.

File details

Details for the file taui-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: taui-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 175.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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

Hashes for taui-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a7daf0f6fea9adb2de90c60ae507fb899604948d2cf387eebf734b064d5b72ec
MD5 a84461296a02b9a6c186b2638f2671f1
BLAKE2b-256 5157b3251670596d12a36bbd65d7914d876c1b24cb85fde6c9066cd2a6a1659b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page