Skip to main content

Feature-rich interactive CLI for AI agents with token tracking, prompt templates, aliases, and configuration

Project description

Basic Agent Chat Loop

PyPI version Python 3.8+ Tests codecov License: MIT

A feature-rich, interactive CLI for AI agents with token tracking, prompt templates, agent aliases, and extensive configuration options.

Features

  • ๐Ÿท๏ธ Agent Aliases - Save agents as short names (chat_loop pete instead of full paths)
  • ๐Ÿ“œ Command History - Navigate previous queries with โ†‘โ†“ arrows (persisted to ~/.chat_history)
  • โœ๏ธ Multi-line Input - Type \\ to enter multi-line mode for code blocks
  • ๐Ÿ’ฐ Token Tracking - Track tokens and costs per query and session
  • ๐Ÿ“ Prompt Templates - Reusable prompts from ~/.prompts/
  • โš™๏ธ Configuration - YAML-based config with per-agent overrides
  • ๐Ÿ“Š Status Bar - Real-time metrics (queries, tokens, duration)
  • ๐Ÿ“ˆ Session Summary - Full statistics displayed on exit
  • ๐ŸŽจ Rich Formatting - Enhanced markdown rendering with syntax highlighting
  • ๐Ÿ”„ Error Recovery - Automatic retry logic with exponential backoff
  • ๐Ÿ” Agent Metadata - Display model, tools, and capabilities

Installation

Quick Install (Recommended)

pip install basic-agent-chat-loop

That's it! The package will automatically create:

  • ~/.chatrc - Configuration file with recommended defaults
  • ~/.prompts/ - Sample prompt templates (on first use)

Platform-Specific Options

Windows (for command history support):

pip install basic-agent-chat-loop[windows]

AWS Bedrock integration:

pip install basic-agent-chat-loop[bedrock]

From Source

For development or the latest features:

git clone https://github.com/Open-Agent-Tools/Basic-Agent-Chat-Loop.git
cd Basic-Agent-Chat-Loop
pip install -e ".[dev]"

See docs/INSTALL.md for detailed installation instructions and troubleshooting.

Quick Start

Basic Usage

# Run with agent path
chat_loop path/to/your/agent.py

# Or use an alias (after saving)
chat_loop myagent

Agent Aliases

Save frequently used agents for quick access:

# Save an agent as an alias
chat_loop --save-alias myagent path/to/agent.py

# Use the alias from anywhere
chat_loop myagent

# List all saved aliases
chat_loop --list-aliases

# Remove an alias
chat_loop --remove-alias myagent

Example with real agents:

# Save your agents
chat_loop --save-alias pete ~/agents/product_manager/agent.py
chat_loop --save-alias dev ~/agents/senior_developer/agent.py

# Use them from anywhere
cd ~/projects/my-app
chat_loop dev  # Get coding help
chat_loop pete  # Get product feedback

Aliases are stored in ~/.chat_aliases and work from any directory.

Prompt Templates

The package automatically creates sample templates in ~/.prompts/ on first use:

  • explain.md - Explain code in detail
  • review.md - Code review with best practices
  • debug.md - Help debugging issues
  • optimize.md - Performance optimization suggestions
  • test.md - Generate test cases
  • document.md - Add documentation

Use templates in chat:

chat_loop myagent
You: /review src/app.py
You: /explain utils.py
You: /test my_function

Create custom templates:

# Create your own template
cat > ~/.prompts/security.md <<'EOF'
# Security Review

Please review this code for security vulnerabilities:

{input}

Focus on:
- Input validation
- Authentication/authorization
- Data sanitization
- Common security patterns
EOF

# Use it in chat
You: /security auth.py

Configuration

A configuration file (~/.chatrc) is automatically created on first use with recommended defaults. You can customize it to your preferences:

features:
  show_tokens: true           # Display token counts
  show_metadata: true         # Show agent model/tools info
  rich_enabled: true          # Enhanced formatting

ui:
  show_status_bar: true       # Top status bar
  show_duration: true         # Query duration

behavior:
  max_retries: 3              # Retry attempts on failure
  timeout: 120.0              # Request timeout (seconds)

# Per-agent overrides
agents:
  'Product Pete':
    features:
      show_tokens: false

See CONFIG.md for full configuration options.

Commands

Command Description
help Show help message
info Show agent details (model, tools)
templates List available prompt templates
/name Use prompt template from ~/.prompts/name.md
clear Clear screen and reset agent session
exit, quit Exit chat (shows session summary)

Multi-line Input

Press \\ to enter multi-line mode:

You: \\
... def factorial(n):
...     if n <= 1:
...         return 1
...     return n * factorial(n - 1)
...
[Press Enter on empty line to submit]

Token Tracking

During Chat

When show_tokens: true in config:

------------------------------------------------------------
Time: 6.3s โ”‚ 1 cycle โ”‚ Tokens: 4.6K (in: 4.4K, out: 237) โ”‚ Cost: $0.017

Session Summary

Always shown on exit:

============================================================
Session Summary
------------------------------------------------------------
  Duration: 12m 34s
  Queries: 15
  Tokens: 67.8K (in: 45.2K, out: 22.6K)
  Total Cost: $0.475
============================================================

Programmatic Usage

from basic_agent_chat_loop import ChatLoop

# Create chat interface
chat = ChatLoop(
    agent=your_agent,
    name="My Agent",
    description="Agent description",
    config_path=Path("~/.chatrc")  # Optional
)

# Run interactive loop
chat.run()

Requirements

Core Dependencies

  • Python 3.8+
  • pyyaml>=6.0.1 - Configuration file parsing
  • rich>=13.7.0 - Enhanced terminal rendering
  • python-dotenv>=1.0.0 - Environment variable management

Optional Dependencies

  • pyreadline3>=3.4.1 - Command history on Windows (install with [windows])
  • anthropic-bedrock>=0.8.0 - AWS Bedrock integration (install with [bedrock])

Built-in Features

  • readline (built-in on Unix) - Command history on macOS/Linux

Platform Support

  • โœ… macOS - Full support with native readline
  • โœ… Linux - Full support with native readline
  • โœ… Windows - Full support with pip install basic-agent-chat-loop[windows]

Architecture

src/basic_agent_chat_loop/
โ”œโ”€โ”€ chat_loop.py          # Main orchestration
โ”œโ”€โ”€ chat_config.py        # Configuration management
โ”œโ”€โ”€ cli.py                # CLI entry point
โ”œโ”€โ”€ components/           # Modular components
โ”‚   โ”œโ”€โ”€ ui_components.py      # Colors, StatusBar
โ”‚   โ”œโ”€โ”€ token_tracker.py      # Token/cost tracking
โ”‚   โ”œโ”€โ”€ template_manager.py   # Prompt templates
โ”‚   โ”œโ”€โ”€ display_manager.py    # Display formatting
โ”‚   โ”œโ”€โ”€ agent_loader.py       # Agent loading
โ”‚   โ””โ”€โ”€ alias_manager.py      # Alias management
docs/
โ”œโ”€โ”€ ALIASES.md            # Alias system guide
โ”œโ”€โ”€ CONFIG.md             # Configuration reference
โ”œโ”€โ”€ INSTALL.md            # Installation instructions
โ””โ”€โ”€ Chat_TODO.md          # Roadmap and future features

Documentation

Development

Running Tests

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

Code Quality

# Format code
black src/ tests/

# Lint
ruff check src/ tests/

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE file for details.

Changelog

See CHANGELOG.md for detailed version history.

Latest Release: v0.1.0 (2025-10-09)

Initial public release with:

  • ๐Ÿท๏ธ Agent alias system
  • ๐Ÿ“ Prompt templates with auto-setup
  • ๐Ÿ’ฐ Token tracking and cost estimation
  • โš™๏ธ YAML configuration with auto-setup
  • ๐Ÿ“Š Status bar and session summaries
  • ๐ŸŽจ Rich markdown rendering
  • ๐Ÿ”„ Automatic error recovery
  • ๐Ÿ“œ Persistent command history
  • โœ… 61% test coverage (158 tests)

Troubleshooting

See docs/TROUBLESHOOTING.md for common issues and solutions.

Quick fixes:

  • Package not found: Run pip install --upgrade basic-agent-chat-loop
  • Command not found: Ensure pip's bin directory is in your PATH
  • Import errors: Try reinstalling with pip install --force-reinstall basic-agent-chat-loop

Support

Project details


Release history Release notifications | RSS feed

This version

0.1.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

basic_agent_chat_loop-0.1.3.tar.gz (34.1 kB view details)

Uploaded Source

Built Distribution

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

basic_agent_chat_loop-0.1.3-py3-none-any.whl (35.3 kB view details)

Uploaded Python 3

File details

Details for the file basic_agent_chat_loop-0.1.3.tar.gz.

File metadata

  • Download URL: basic_agent_chat_loop-0.1.3.tar.gz
  • Upload date:
  • Size: 34.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for basic_agent_chat_loop-0.1.3.tar.gz
Algorithm Hash digest
SHA256 fbfc54bbf6fcffad2cc3428cc8fc9ad7bf682fe9e43a51bb48be1eb3ecfbed98
MD5 4bda8f964d5359390178b87e0d162c18
BLAKE2b-256 9f2e945ebb1ed17703f98bbc58e6c720f1235b83584b86faddb2dddcd553e6b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for basic_agent_chat_loop-0.1.3.tar.gz:

Publisher: publish.yml on Open-Agent-Tools/Basic-Agent-Chat-Loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file basic_agent_chat_loop-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for basic_agent_chat_loop-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 87a74c414d571749c74f0c0e8c1c50e03fbe0a969e0947ecbf96e175faefc908
MD5 443b8efe5f65b3fdf7a566e69bd08e13
BLAKE2b-256 456a0e9452e3efb3fa5a4926a25a1b94f8fc426ceb05c6b932b072959d55e51b

See more details on using hashes here.

Provenance

The following attestation bundles were made for basic_agent_chat_loop-0.1.3-py3-none-any.whl:

Publisher: publish.yml on Open-Agent-Tools/Basic-Agent-Chat-Loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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