Skip to main content

A minimalist AI coding agent

Project description

                             
  ██████   █████  ███▄    █  █████  
  ██   ██ ██   ██ ████▄  ██ ██   ██ 
  ██████  ███████ ██ ▀█▄ ██ ███████ 
  ██      ██   ██ ██  ▀████ ██   ██ 
  ██      ██   ██ ██   ▀███ ██   ██ 
                             

A minimalist AI coding agent built on pydantic-ai, featuring a custom terminal UI backported from the pi.dev coding agent.

Features

  • pydantic-ai — Uses pydantic-ai as the LLM abstraction layer for streaming and tool use
  • Custom TUI — Terminal UI backported from the PI coding agent, rendering directly with ANSI escape codes and truecolor
  • GitHub Copilot integration via OAuth device flow
  • Streaming responses with Markdown rendering and syntax highlighting
  • Emacs-style keybindings with kill ring, undo/redo
  • Slash commands/login, /model, /clear, /help, /quit

Installation

pip install pana

Usage

pana

Or run as a module:

python -m pana

Commands

Command Description
/login Authenticate with a provider
/model Select a model
/new Start a new chat session
/help Show available commands
/quit Exit (also /exit, /q)

Editor Keybindings

  • Navigation: Arrow keys, Ctrl+A/E (line start/end), Alt+B/F (word left/right)
  • Deletion: Ctrl+W (word back), Alt+D (word forward), Ctrl+U/K (to line start/end)
  • Kill ring: Ctrl+Y (yank), Alt+Y (yank pop)
  • Undo: Ctrl+-
  • Submit: EnterNew line: Shift+Enter
  • Autocomplete: Tab

Environment Variables

Variable Default Description
PANA_LOG_LEVEL INFO Python logging level
PANA_LOG_FILE (none) Log to file instead of null handler

Development

# Install with dev dependencies
uv sync --extra dev

# Run tests
uv run pytest

# Lint
uv run ruff check .

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

pana-0.3.0.tar.gz (297.0 kB view details)

Uploaded Source

Built Distribution

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

pana-0.3.0-py3-none-any.whl (106.0 kB view details)

Uploaded Python 3

File details

Details for the file pana-0.3.0.tar.gz.

File metadata

  • Download URL: pana-0.3.0.tar.gz
  • Upload date:
  • Size: 297.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for pana-0.3.0.tar.gz
Algorithm Hash digest
SHA256 7eb3b5d9966b594e9c636dc23a312b1eeec908527c5d250ac77d2141b88b87d0
MD5 284b0cd1c1b1e9ac9310a30356773d33
BLAKE2b-256 0665dc7823c998641ab7ee665a87732b6cbfb3d975d3ca3ca44f2f73d672a496

See more details on using hashes here.

File details

Details for the file pana-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pana-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 106.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for pana-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 80044d439510f4986819964935b1ced7d56bf55a4c082b4e223650bddeb486fb
MD5 c218aa648e687d9dfab818fbbd47c73a
BLAKE2b-256 469c9c3c35e1db3b4266aaab70678103da18b90ceb5dff186cab5b881df1ed2f

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