Skip to main content

Agentic coding interface you can reshape

Project description

taui

Taui is a customizable agentic coding interface for developers. It runs as a full-screen Textual TUI; the terminal app is the product.

Alpha software: APIs, commands, and behavior may change.

Install

uvx taui

For local development:

uv run taui
uv run taui --version
uv run taui --login
uv run taui -p copilot -m <model>
uv run taui -p codex -m <model>
uv run taui -d /path/to/project
uv run taui --session <session_id>

CLI parsing and app launch live in taui/main.py:29 and taui/main.py:90.

What It Does

  • Runs an async agent loop over provider responses, tool calls, and observations: taui/agent/loop.py:93.
  • Wires providers, tools, extensions, prompts, store, and loop in one composition root: taui/session.py:139.
  • Stores sessions as append-only SQLite event streams in the working directory: taui/store/store.py:97 and taui/store/stream.py:22.
  • Renders chat, streaming output, approvals, questions, sidebars, and session controls in Textual: taui/tui/app.py:206.

Providers

Built-in providers:

Provider Auth Implementation
GitHub Copilot device flow taui/llm_provider/providers/copilot.py:33
OpenAI Codex PKCE browser flow taui/llm_provider/providers/codex.py:26

Run taui --login to authenticate. Credentials are loaded through taui/llm_provider/config.py:15 and selected by Config.load() at taui/config.py:64.

Commands

Important slash commands are registered in taui/commands/builtins.py:858.

Command Purpose
/help, /h, /? Show help
/model Show, refresh, or switch models
/provider Show or switch provider
/agents List or activate agent profiles
/sessions List or resume sessions
/new [message] Start a new session
/compact, /context Manage or inspect context
/extensions, /reload, /ext-mode Inspect and reload extensions
/i [message] Enter self-edit mode
/copy, /export Copy context or export a session
/hotkeys, /keys Show key bindings
/verbose, /quiet Toggle tool output verbosity
/update-providers-models Refresh the models.dev cache

Keys

App-level bindings are defined in TauiApp.BINDINGS at taui/tui/app.py:399. Input-specific bindings are in ChatInput.BINDINGS at taui/tui/widgets/chat_input.py:64.

Key Action
Ctrl+Q Quit
Ctrl+N New session
Ctrl+C Cancel active request or approval
Ctrl+D Quit after double press
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 mode or dismiss panels

Configuration

Config fields are defined in taui/config.py:33.

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

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

[taui.permission]
read = { "*" = "allow" }
bash = { "git status" = "allow", "*" = "ask" }

Tool policy evaluation is in taui/tools/executor.py:42; pattern permissions are in taui/permissions.py:38.

Extensions And Skills

Extensions are Python files loaded from ~/.taui/extensions/*.py and .taui/extensions/*.py. The register(ctx) context is defined at taui/extensions/__init__.py:66; extension loading starts at taui/extensions/__init__.py:169.

Skills are SKILL.md files discovered by taui/skills/__init__.py:91 and loaded lazily by taui/skills/__init__.py:52.

Documentation

  • Product and architecture overview: docs/taui.md:1
  • Runtime flow: docs/runtime.md:1
  • Tools and permissions: docs/tools.md:1, docs/permission-dsl.md:1
  • Extensions, hooks, skills, and agents: docs/build-your-harness.md:1, docs/extension-hooks.md:1, docs/agents.md:1
  • Providers and auth: docs/providers.md:1
  • Context and prompts: docs/context-strategies.md:1, docs/system-prompt.md:1
  • Tests and visual harness: docs/testing.md:1

Checks

uv run ruff check .
uv run python -m pytest tests/ -q

Target focused tests first when changing one subsystem. The scenario and visual harness are documented in docs/testing.md:1.

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.8.1.tar.gz (553.6 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.8.1-py3-none-any.whl (380.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: taui-0.8.1.tar.gz
  • Upload date:
  • Size: 553.6 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.8.1.tar.gz
Algorithm Hash digest
SHA256 735e53f438e37eed0581a6124f98c96e84226a305d932c109346f216dc110d94
MD5 57046a8cc2223aa4605da1578ebdaeb2
BLAKE2b-256 5fd78216b25bc2f489deca0f402fe9581b9dd5fcac0df18b380bd222991875a4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: taui-0.8.1-py3-none-any.whl
  • Upload date:
  • Size: 380.3 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.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7e346def62a033545ad3accee29d4c7dc79b565613c80af24ed1762205b41c54
MD5 156f38615347cd462ecfff719ef5372b
BLAKE2b-256 7e3f0107ea633e27f6923f58f8e0c67ae1e4cf7da07b767648d83f90d447a62c

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