A meta-demonstration project for AI Summit 2025: an LLM-powered CLI tool that helps present a talk about building LLM CLI applications.
This project demonstrates itself being built. During the presentation:
- The CLI tool explores its own codebase
- It performs git operations to show incremental development
- It explains its own architecture and implementation
- Each git branch represents a step in building the tool
Think of it as: "Using an LLM CLI to demonstrate how to build an LLM CLI" 🤯
- Python 3.13 - Latest Python with modern features
- Poetry - Dependency management and packaging
- Pydantic AI - LLM interaction and agent framework with tools
- Textual + Rich - Terminal UI and rich text formatting
- Docker - Sandboxed execution environment
- Python 3.13+
- Poetry 1.8+
- Docker (optional, for sandboxed execution)
# Install dependencies
poetry install
# Run the CLI
poetry run aisummit
# Or use the shorter command
poetry run python -m aisummit_cli# Build the image
docker compose build
# Run interactive demo shell (recommended)
docker compose run demo
# Inside: aisummit, git, java, mvn available system-wide
# Run single query
docker compose run cli "your query here"
# Development mode with live code mounting
docker compose run cli-devNote: Create a .env file with your ANTHROPIC_API_KEY before running.
The repository is organized into incremental branches, each adding new capabilities:
| Branch | Description | Features Added |
|---|---|---|
step/step-0 |
Initial setup | Poetry config, project structure, Docker |
step/step-1 |
Agent foundation | Pydantic AI agent, streaming responses, conversation history |
step/step-2 |
Rich TUI | Three-section Textual interface, real-time streaming, markdown rendering |
step/step-3 |
Git tools | git_status, git_branch_list, git_log, git_diff, git_checkout |
step/step-4 |
File tools | glob_files, grep_content, read_file |
step/step-5 |
Edit tools | replace_text for file editing |
# See current step
git branch
# Jump to a specific step
git checkout step/step-2
# Run the tool at that step
poetry run aisummitgit_status()- Check working tree statusgit_branch_list()- List all branchesgit_log(count, oneline)- View commit historygit_diff(file, compare_to)- Show code changesgit_checkout(branch_or_tag)- Switch between branches
glob_files(pattern)- Find files matching patternsgrep_content(pattern, path)- Search file contents with regexread_file(path, start_line, end_line)- Display file contents
replace_text(file_path, old_string, new_string)- Edit files with string replacement
- Introduction - Show step/step-0, explain the meta concept
- Agent Setup - Checkout step/step-1, demonstrate LLM integration with streaming
- UI Enhancement - Checkout step/step-2, show rich TUI with real-time streaming
- Git Tools - Checkout step/step-3, use the tool to explore its own git history
- File Tools - Checkout step/step-4, search and read the tool's own code
- Edit Tools - Checkout step/step-5, make changes with replace_text tool
- All operations run in Docker with limited permissions
- Git operations are read-only (no commits/pushes during demo)
- File operations restricted to repository directory
- No system shell access exposed to the LLM
See CLAUDE.md for detailed architecture and development guidance.
This is a conference demo project. Feel free to:
- Fork and adapt for your own presentations
- Suggest improvements via issues
- Share your own LLM CLI implementations
MIT License - See LICENSE file for details
Built for AI Summit 2025 | Where the demo demonstrates itself ✨