Textual TUI application for Axio
Project description
axio-tui
Textual TUI application for axio.
A full-featured terminal chat interface with session management, a plugin system for transports and tools, and a built-in SQLite context store. Pick your LLM backend, load your tools, and start chatting — all from the terminal.
Features
- Plugin system — transports, tools, and guards discovered automatically via entry points
- Session management — persistent SQLite-backed conversations; fork, switch, and resume sessions
- Streaming UI — text and tool calls rendered incrementally as they arrive
- Multi-transport — switch between OpenAI, Nebius, Codex, or any registered backend at runtime
- Sub-agent support — the
subagenttool lets the agent spin up nested agent sessions - Vision —
visiontool for image analysis (with compatible models) - Serveable —
textual-servesupport for browser-based access
Installation
Minimal (core TUI only, bring your own transport):
pip install axio-tui
With everything:
pip install "axio-tui[all]"
Pick what you need:
pip install "axio-tui[openai,local,mcp]"
| Extra | Installs |
|---|---|
openai |
axio-transport-openai |
nebius |
axio-transport-nebius |
codex |
axio-transport-codex |
local |
axio-tools-local |
mcp |
axio-tools-mcp |
rag |
axio-tui-rag |
guards |
axio-tui-guards |
all |
Everything above |
Quick start
pip install "axio-tui[openai,local]"
axio
On first launch, open Settings (s) to configure your API key and model. Sessions are stored in ~/.local/share/axio/.
Architecture
axio-tui
├── App (Textual)
│ ├── ChatScreen — message list, input, streaming
│ ├── SessionScreen — session list and management
│ └── SettingsScreen — per-plugin configuration
├── SQLiteContextStore — persistent conversation history
├── TransportRegistry — discovers axio.transport entry points
└── Plugin system
├── ToolsPlugin — wraps axio.tools.settings providers
└── PermissionGuard — wraps axio.guards providers
Built-in tools
These tools are always available regardless of installed plugins:
| Tool | Description |
|---|---|
confirm |
Ask the user a yes/no question (for guard prompts) |
status_line |
Update the TUI status bar from within the agent |
subagent |
Spawn a nested agent with its own tools and context |
vision |
Analyse an image file (requires a vision-capable model) |
Plugin entry points
axio-tui discovers plugins automatically when installed packages declare:
# Transport backend
[project.entry-points."axio.transport"]
openai = "axio_transport_openai:OpenAITransport"
# Tool group with settings screen
[project.entry-points."axio.tools.settings"]
docker = "axio_tools_docker.plugin:DockerPlugin"
# Simple tools (no settings)
[project.entry-points."axio.tools"]
shell = "axio_tools_local.shell:Shell"
# Permission guards
[project.entry-points."axio.guards"]
path = "axio_tui_guards.guards:PathGuard"
Serve over HTTP
textual-serve axio_tui.__main__:app
# Open http://localhost:8000 in your browser
Part of the axio ecosystem
axio · axio-tui-rag · axio-tui-guards · axio-tools-local · axio-tools-mcp · axio-tools-docker
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file axio_tui-0.3.4.tar.gz.
File metadata
- Download URL: axio_tui-0.3.4.tar.gz
- Upload date:
- Size: 161.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a746dc10bcdcbbbcd0bd9f329f23b3387ae8e8bbae35399b7a80a2c31519dd9
|
|
| MD5 |
de8c24c5f6aefeb4fc9931fb20404565
|
|
| BLAKE2b-256 |
8c0134043e3454c0567ed7f5d982364bd560fbebc511bf548fd92acd57bb923f
|
Provenance
The following attestation bundles were made for axio_tui-0.3.4.tar.gz:
Publisher:
publish.yml on axio-agent/monorepo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
axio_tui-0.3.4.tar.gz -
Subject digest:
0a746dc10bcdcbbbcd0bd9f329f23b3387ae8e8bbae35399b7a80a2c31519dd9 - Sigstore transparency entry: 1208290616
- Sigstore integration time:
-
Permalink:
axio-agent/monorepo@f42aaa3d778d679579187d5170b0f0c095003f26 -
Branch / Tag:
refs/tags/0.3.4 - Owner: https://github.com/axio-agent
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f42aaa3d778d679579187d5170b0f0c095003f26 -
Trigger Event:
release
-
Statement type:
File details
Details for the file axio_tui-0.3.4-py3-none-any.whl.
File metadata
- Download URL: axio_tui-0.3.4-py3-none-any.whl
- Upload date:
- Size: 41.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a290afb03335967689dbf47d232e29f53413ca2f9bd91a04ef11516a8d2ffb2d
|
|
| MD5 |
85996691a6f7581fe9d9fd0bf67149b7
|
|
| BLAKE2b-256 |
9e1b4900ee50d694e66b683d542a05a95eeeae70987a17a1231b106a6b33265a
|
Provenance
The following attestation bundles were made for axio_tui-0.3.4-py3-none-any.whl:
Publisher:
publish.yml on axio-agent/monorepo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
axio_tui-0.3.4-py3-none-any.whl -
Subject digest:
a290afb03335967689dbf47d232e29f53413ca2f9bd91a04ef11516a8d2ffb2d - Sigstore transparency entry: 1208290704
- Sigstore integration time:
-
Permalink:
axio-agent/monorepo@f42aaa3d778d679579187d5170b0f0c095003f26 -
Branch / Tag:
refs/tags/0.3.4 - Owner: https://github.com/axio-agent
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f42aaa3d778d679579187d5170b0f0c095003f26 -
Trigger Event:
release
-
Statement type: