Releases: Open-Agent-Tools/Basic-Agent-Chat-Loop
v0.4.1 - Hotfix Release
🐛 Bug Fixes
Fixed CTRL-C handling
- Resolved issue where pressing CTRL-C during agent processing would not exit cleanly
- The thinking indicator task is now properly cancelled on KeyboardInterrupt
- Added
finallyblock to ensure cleanup always happens, even when interrupted
Added dynamic terminal title updates
- Terminal window/tab title now shows agent status in real-time
- Shows "Agent Name - Idle" when waiting for input
- Shows "Agent Name - Processing..." during agent execution
- Resets to "Terminal" on exit
- Configurable via
ui.update_terminal_titlein.chatrc(enabled by default)
📦 Installation
```bash
pip install basic-agent-chat-loop==0.4.1
```
🔗 Full Changelog
Full Changelog: v0.4.0...v0.4.1
🤖 Generated with Claude Code
v0.4.0 - Security & Cleanup Release
🔒 Security Improvements
SECURITY-001: Environment Variable Handling
- ✅ Removed
.envloading from framework entirely - ✅ Environment variable handling is now the agent's responsibility
- ✅ Removed
python-dotenvdependency from core framework - ✅ Updated TROUBLESHOOTING.md with guidance for agents
SECURITY-003: Log File Security
- ✅ Set restrictive permissions (0600) on log files
- ✅ Implemented log rotation (max 10MB per file, 5 backups)
- ✅ Documented what gets logged and PII concerns in SECURITY.md
- ✅ Added privacy note to module docstring
- ✅ Log directory created with secure permissions (0700)
🧹 Code Cleanup
- Fixed lingering
env_pathreferences from .env removal - Removed TODO.md (tracking work through GitHub Issues now)
- Updated README dependencies (removed python-dotenv)
- All linting and type checking passing
- All 273 tests passing
📦 Installation
```bash
pip install basic-agent-chat-loop==0.4.0
```
🔗 Full Changelog
Full Changelog: v0.3.7...v0.4.0
🤖 Generated with Claude Code
v0.3.7 - Windows Command History Fix
Windows Command History Fix
Fixed
- Windows Command History - pyreadline3 now installed automatically on Windows
- No longer requires manual installation with
[windows]extras - Ensures consistent UX across all platforms
- Added warning message if readline is unavailable on Windows
- Resolves long-standing usability issue for Windows users
- No longer requires manual installation with
Changed
- pyreadline3 moved from optional to core dependency (Windows only)
- Updated installation documentation to reflect automatic Windows support
Full Changelog: v0.3.6...v0.3.7
v0.3.6 - Color Configuration & Tool Highlighting
🎨 Color Configuration & Tool Highlighting
This hotfix release improves the color configuration experience and adds automatic highlighting for agent tool messages.
✨ New Features
Named Color Palette
- 12 predefined colors for easy configuration without ANSI codes
- Colors:
black,red,green,yellow,blue,magenta,cyan,white,bright_red,bright_green,bright_blue,bright_white - Backward compatible with existing ANSI code configurations
- New
Colors._resolve_color()method for flexible color resolution
Agent Tool Message Highlighting
- Lines starting with
[orTool #now display in bright_green - Automatic detection and colorization of agent tool usage
- Works in both streaming and non-streaming modes
- New
Colors.format_agent_response()method for custom formatting
Configuration Reset
- New
--reset-configflag to reset.chatrcto defaults - Interactive prompt with scope selection (global/project) and confirmation
- Comprehensive default values for all configuration sections
- Easy recovery from misconfiguration
🔧 Improvements
- Config wizard now prompts for color names instead of raw ANSI codes
- Improved user experience with clear color options
- Enhanced test coverage: 276 tests passing (+8 new tests)
🐛 Bug Fixes
- Removed unused
scopevariable inreset_config_to_defaults - Fixed line length violations in config_wizard.py and ui_components.py
- Added type hints to default_config dictionary
📦 Installation
pip install --upgrade basic-agent-chat-loop🔗 Links
v0.3.5 - Audio Notifications & Configuration Wizard
Release v0.3.5 - Audio Notifications & Configuration Wizard
🎉 New Features
🔊 Audio Notifications
Play a sound when the agent completes a turn to know when responses are ready!
- Configurable: Enable/disable via
audio.enabledconfig (default: enabled) - Customizable: Use your own WAV file with
audio.notification_soundconfig - Cross-platform: Works on macOS (afplay), Linux (aplay/paplay), and Windows (winsound)
- Bundled sound: Includes a pleasant notification sound out of the box
- Per-agent control: Override audio settings for specific agents
🧙 Interactive Configuration Wizard
New --wizard / -w flag to interactively configure your .chatrc settings!
- Guided setup: Walk through all available settings section by section
- Smart defaults: Shows your current values when editing existing configs
- Input validation: Validates all input types (bool, int, float, string)
- Dual scope: Create global (
~/.chatrc) or project-level (./.chatrc) configs - Well-formatted: Generates clean YAML with helpful comments
- Secure: Creates config files with secure permissions (0o600)
🔧 Improvements
- Enhanced type annotations for platform-specific imports
- Code quality improvements with ruff formatting
- Fixed type checking issues with winsound and yaml imports
📦 Installation
pip install basic-agent-chat-loop==0.3.5🚀 Quick Start
Configure your settings interactively:
chat_loop --wizardDisable audio notifications:
# ~/.chatrc
audio:
enabled: falseUse a custom notification sound:
# ~/.chatrc
audio:
enabled: true
notification_sound: ~/my-sounds/ding.wav📊 Stats
- ✅ All 181 tests passing
- 📝 Full type coverage with mypy
- 🎨 Code formatted with ruff
- 📚 Comprehensive documentation
🙏 Feedback
Found a bug or have a feature request? Please open an issue!
v0.3.0 - Conversation Auto-Save
New Features
Conversation Auto-Save
Automatically save conversations on exit with the new --auto-save / -s flag or persistent config option.
- Config option:
features.auto_savefor persistent setting - Per-agent override: Configure auto-save per agent in
.chatrc - Smart filenames: Include agent name, timestamp, and first query snippet
- JSON format: Conversations saved with metadata (agent, model, tokens, duration)
- Default location:
~/agent-conversations/(configurable viapaths.save_location)
Example
# Enable auto-save for this session
chat_loop myagent --auto-save
# Or enable globally in ~/.chatrc
features:
auto_save: true
# Or per-agent in ~/.chatrc or project .chatrc
agents:
'My Agent':
features:
auto_save: trueWhat's Changed
- New
--auto-save/-sflag for automatic conversation saving - Config option
features.auto_savefor persistent setting - Per-agent config override support
- Conversations saved to
~/agent-conversations/by default - All 181 tests passing
Full Changelog: v0.2.1...v0.3.0
v0.2.1
🐛 Bug Fixes
- Windows: Fixed "invalid distribution" warning during pip install by configuring license metadata properly
- Metadata: Removed problematic
Dynamic: license-filefield that caused compatibility issues with older pip versions
✨ Features
- CLI: Added
--versionflag to display installed version (chat_loop --version)
📦 Package Updates
- Added explicit MANIFEST.in for better distribution file control
- Improved license file handling in package metadata
Full Changelog: v0.2.0...v0.2.1
🤖 Generated with Claude Code
v0.2.0 - Automatic Dependency Installation
What's New
🚀 Automatic Dependency Installation
- New
--auto-setup/-aflag to automatically install agent dependencies - Supports
requirements.txt,pyproject.toml, andsetup.py - Smart detection: Suggests using
--auto-setupwhen dependency files are found - Helpful feedback with installation progress and errors
- 20 new tests for dependency management (181 total tests)
🗺️ Community Roadmap
Created 37 feature request issues for community discussion:
- CLI enhancements (watch, budget, pipe, resume, inspect, validate, export, quiet, test-suite, benchmark, compare, context, preset, profile, dry-run, max-turns)
- Documentation & learning (tutorial, example agents, videos)
- Integrations (VS Code, Web UI, API server, Slack/Discord)
- Quality of life (better errors, keyboard shortcuts, tab completion, conversation management)
- Advanced features (multi-agent, RAG, persistent memory, marketplace)
- Developer experience (debug mode, config wizard, scaffolding, hot reload)
- Testing & quality (integration tests, fuzzing, performance benchmarks)
- Community & sharing (plugin system, templates, import/export)
- Security & safety (sandboxing, audit logging, secret detection)
Installation
pip install basic-agent-chat-loop==0.2.0Full Changelog
See CHANGELOG.md for complete details.
v0.1.3 - Clean Startup (No Import Errors)
What's Fixed
Eliminated Import Error Messages
This release completely removes the confusing "No module named" error messages that appeared during startup when using fully qualified agent paths.
The Problem:
When loading agents from paths like /agents/local/timmy/agent.py, the loader would try to execute parent package __init__.py files. If those files had imports of sibling modules, Python would print error messages to stderr even though the errors were caught and handled.
The Solution:
- Parent package
__init__.pyfiles are no longer executed during agent loading - Parent packages are registered as minimal stub modules (sufficient for Python's import machinery)
- Added sys.stderr suppression during agent module execution as defense-in-depth
- Agent functionality is unchanged - absolute imports still work via sys.path
Impact
- ✅ Clean startup experience with no confusing error messages
- ✅ Agent functionality unchanged
- ✅ All 161 tests passing
Installation
pip install --upgrade basic-agent-chat-loopFor Users with Import Errors
If you were seeing errors like:
ModuleNotFoundError: No module named 'agents'ImportError: cannot import name 'xyz' from 'agents'
These are now completely eliminated! Update to v0.1.3 and enjoy a clean startup experience.
Full Changelog: v0.1.2...v0.1.3
v0.1.2 - Configuration and Import Fixes
What's Fixed
Configuration System Bugs
- Fixed config loading precedence: Explicit config path now has highest priority (was lowest)
- Fixed NoneType handling: Config merge now skips None values from YAML
- Fixed default template: Changed
agents:toagents: {}to prevent None parsing - Resolved "NoneType not iterable" errors reported by users
Enhanced Relative Import Support
- Added proper parent package registration in sys.modules
- Agents can now import from multiple sibling modules without errors
- Fixed multi-import pattern:
from .utils import Xfollowed byfrom .helpers import Ynow works
Testing
- All 161 tests passing (up from 160)
- Added test for multiple sibling imports
- All 24 config tests now pass (was 20/24)
Installation
pip install --upgrade basic-agent-chat-loopFull Changelog: v0.1.1...v0.1.2