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.

Approval prompts also support persistent auto-approval for a whole tool. Choosing the project option writes a generated extension to .taui/extensions/; choosing the global option writes it to ~/.taui/extensions/. The generated extension replaces the tool with an equivalent wrapper and sets that tool's policy to auto when extensions load. Project scope is the default persistent choice.

Key Bindings

Key Action
Ctrl+Q Quit
Ctrl+N New session
Ctrl+C Cancel active request or approval
Ctrl+D Quit (double-press required)
Ctrl+B Toggle sidebar
Ctrl+R Toggle info sidebar
Ctrl+E Enter self-edit mode
Ctrl+X Context breakdown
Alt+Left/Right Focus left/right pane
Ctrl+PageDown/Up Next/previous tab
Escape Leave self-edit mode / dismiss panels

Slash Commands

Command Description
/help, /h, /? Show help
/model Switch model
/provider Switch provider
/compact Compact conversation (shows token savings)
/context Show context breakdown
/clear Clear chat
/cost Show session cost
/sessions Browse and resume sessions
/agents List and switch agent variants
/new Start new session
/reload Hot-reload extensions
/extensions List extensions
/i Enter self-edit mode
/ext-mode Enter extensions mode
/login Re-authenticate providers
/logout Clear saved credentials
/session Show current session info
/copy Copy last response
/export Export session
/hotkeys, /keys Show key bindings
/verbose, /quiet Toggle tool output verbosity
/debug Debug commands (e.g. /debug questions)

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.5.tar.gz (532.8 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.5-py3-none-any.whl (274.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: taui-0.5.tar.gz
  • Upload date:
  • Size: 532.8 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.5.tar.gz
Algorithm Hash digest
SHA256 6f39f41268253113eced7d3730cb681895b4b735532d81b475e1bd07093467be
MD5 622a80eb577fbb2884504bfe23490989
BLAKE2b-256 4fc82fc3748aa2274445ce06c32825f1daf2846a2d3033b4b4e2f4e4cdc54d1a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: taui-0.5-py3-none-any.whl
  • Upload date:
  • Size: 274.6 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0d782e59b0749fd8c29ee8851b9ac6b3b173effe1a830b4d77a41434d11d2129
MD5 b5ce58365a273d1379a33383eeb7dd55
BLAKE2b-256 facb74d8e40153e78b29a28ca88fc3da8ef94fa2d0ec3c142c04a0f20584122f

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