Releases: Open-Agent-Tools/basic-open-agent-tools
Release v1.3.0: Pre-configured Loadouts
Release v1.3.0: Pre-configured Loadouts
🎯 New Feature: Loadouts
Introducing 6 pre-configured tool bundles optimized for specific agent use cases:
Loadout Functions
-
load_coder_loadout()(~105 tools)- For: Software developers, DevOps engineers, automation scripts
- Includes: File system, system operations, network, logging, crypto, archive, config files
-
load_docs_loadout()(~130 tools)- For: Technical writers, documentation creators, report generators
- Includes: Word, PDF, Markdown, HTML, diagrams, images, text processing
-
load_data_analyst_loadout()(~115 tools)- For: Data analysts, financial analysts, business intelligence
- Includes: Excel, CSV, data validation, diagrams, structured data formats
-
load_web_publisher_loadout()(~90 tools)- For: Web developers, content managers, blog publishers
- Includes: HTML, XML, Markdown, network operations, text processing
-
load_visual_designer_loadout()(~60 tools)- For: Graphic designers, infographic creators, visual content producers
- Includes: Image processing, diagrams, color tools, file operations
-
load_office_suite_loadout()(~80 tools)- For: Office workers, business users, administrative assistants
- Includes: Excel, Word, PowerPoint, file operations, datetime essentials
Benefits
- ✅ Minimal Overlap: Each loadout is carefully curated to avoid redundancy
- ✅ Role-Based: Choose the loadout that matches your agent's purpose
- ✅ Optimized: Reduced token usage with only relevant tools
- ✅ Fast Setup: One function call instead of combining multiple modules
Usage
import basic_open_agent_tools as boat
# Load a specialized loadout
dev_tools = boat.load_coder_loadout()
docs_tools = boat.load_docs_loadout()
analyst_tools = boat.load_data_analyst_loadout()
# Use with any agent framework
from google.adk.agents import Agent
agent = Agent(tools=boat.load_coder_loadout())📝 Documentation Updates
- Complete README overhaul with loadout documentation
- New "Rapid Loaders" section highlighting pre-configured loadouts
- Detailed examples for each loadout with use cases
- Updated Quick Start guide to showcase loadouts
🔧 Other Improvements
- Fixed test expectations for todo module (8 → 11 functions)
- Applied code formatting improvements
📦 Installation
pip install basic-open-agent-tools==1.3.0Or with UV:
uv add basic-open-agent-toolsFull Changelog: v1.2.1...v1.3.0
Release v1.2.1: API Export Hotfix
🐛 Hotfix: Missing API Export
This hotfix addresses a missing export in the public API.
Fixed
- API Export: Added missing
load_datetime_essentialto main__init__.pyexports- Previously the function existed in
helpers.pybut wasn't accessible viaimport basic_open_agent_tools - Now properly exported for public use:
from basic_open_agent_tools import load_datetime_essential
- Previously the function existed in
What's load_datetime_essential?
A curated loader function that provides the 13 most essential datetime tools for agents:
- Current values:
get_current_date,get_current_datetime,get_current_time - Date math:
add_days,add_hours,subtract_days,calculate_days_between - Validation:
is_valid_iso_date - Formatting:
format_date_human_readable,format_time_human_readable,format_duration - Parsing:
parse_date_string - Timezone:
convert_timezone
Installation
pip install --upgrade basic-open-agent-tools==1.2.1Full Changelog
v1.2.0...v1.2.1
Release v1.2.0: Markdown & DateTime Enhancements
Release v1.2.0: Markdown & DateTime Enhancements
This minor release adds powerful markdown processing capabilities and comprehensive datetime formatting/parsing tools.
🆕 New Features
Markdown Enhancements
Enhanced HTML Conversion (Issue #29)
- Blockquotes:
> text→<blockquote> - Horizontal rules:
---and***→<hr> - Task lists:
- [ ]and- [x]→ HTML checkboxes - Tables: Full markdown table support with proper structure
- HTML entity escaping throughout
Advanced Parsing (Issue #30)
parse_reference_links(): Extract reference-style linksparse_footnotes(): Parse footnote definitionsparse_definition_lists(): Extract term/definition pairsparse_task_lists(): Identify checked/unchecked tasksextract_image_references(): Find inline and reference images
DateTime Enhancements
Formatting & Parsing (Issues #17-20)
parse_date_string(): Parse custom formats → ISOformat_date(): Convert between date formatsformat_date_human_readable(): ISO → "January 15, 2025"format_time_human_readable(): 24h → "2:30 PM"format_duration(): Seconds → human-readable (verbose/short/compact)parse_duration_string(): "2h 30m" → seconds
Helper Function
load_datetime_essential(): 13 essential datetime tools for agents- Current values, date math, validation, formatting, parsing, timezone
📊 Statistics
- New Functions: 11 (5 markdown + 6 datetime)
- Total Tools: 337+ agent-compatible functions
- Test Coverage: 299/300 tests passing
- Google ADK Compliance: 100% (JSON-serializable types, no defaults)
🔧 Quality
- ✅ Ruff: All checks passed
- ✅ MyPy: New code fully typed
- ✅ Tests: 299/300 passing
- ✅ Documentation: Comprehensive docstrings
📦 Installation
pip install basic-open-agent-tools==1.2.0🙏 Credits
All enhancements follow Google ADK standards for seamless agent framework integration.
Release v1.1.0: Enhanced User Confirmation System
What's New in v1.1.0
🎯 Enhanced User Confirmation System
This release significantly improves the user experience when interactive confirmations are required, making operations faster and providing better feedback to AI agents.
Key Features
1. Default to YES for Confirmations
- Prompt changed from
[y/N]to[Y/n] - Simply press Enter to confirm operations (saves keystrokes!)
- Users must explicitly type 'n' or 'no' to decline
- Reduces friction for the common approval case
2. Decline Reason Capture
- When users decline an operation, system now prompts: "Decline Reason (optional): "
- Reasons are passed back to agents in cancellation messages
- Format: "Operation cancelled by user (reason: {reason}): {target}"
- Helps AI agents understand context and adjust their approach
3. Improved API
- `check_user_confirmation()` now returns `tuple[bool, Optional[str]]`
- First element: confirmed (True/False)
- Second element: decline_reason (None if confirmed, string if declined)
- All 27 call sites updated across 8 core modules
Example Flow
Before:
```
Do you want to proceed? [y/N]: y
✓ Confirmed
```
Now:
```
Do you want to proceed? [Y/n]:
✓ Confirmed (just press Enter!)
```
When declining:
```
Do you want to proceed? [Y/n]: n
✗ Cancelled by user
Decline Reason (optional): file still needed for testing
```
🔧 Technical Improvements
- Updated return type to modern Python tuple syntax
- Fixed 15 test failures, all confirmation tests now passing (27/27)
- Updated 27 function call sites across 8 modules
- Full ruff, mypy, and pytest compliance maintained
📦 Files Modified
- Core confirmation logic (`confirmation.py`)
- File system operations (11 calls updated)
- Archive operations (6 calls updated)
- Data operations (5 calls updated)
- TODO operations (2 calls updated)
- Comprehensive test suite updates
🧪 Quality Assurance
- ✅ Ruff: All checks passed
- ✅ MyPy: All modified files pass type checking
- ✅ PyTest: 1390 tests passing
- ✅ Coverage: 43% maintained
📚 Documentation
- Updated CLAUDE.md with new confirmation behavior
- Added decline reason documentation
- Updated agent guidelines for handling cancellations
Full Changelog: v1.0.3...v1.1.0
🤖 Generated with Claude Code
Release v1.0.3: File Edit Functions Safety Enhancement
🔒 Safety & Confirmation Enhancements
This hotfix release adds user confirmation and preview features to file editing functions for improved safety in agent environments.
Added
- skip_confirm parameter to
append_to_file,insert_at_line, andreplace_in_file - Preview generation showing operation details before execution
- Three-mode confirmation system:
- Bypass mode (skip_confirm=True or BYPASS_TOOL_CONSENT env var)
- Interactive mode (TTY terminal prompts with preview)
- Agent mode (raises CONFIRMATION_REQUIRED error for LLM agents)
- Enhanced logging:
- Debug-level input logging (file paths, content previews, parameters)
- Info-level operation success logging
- Error logging with context
Changed
- All file edit functions now require explicit
skip_confirmparameter (no default) - Updated all tests to use
skip_confirm=True - Added confirmation requirement tests for agent mode behavior
Documentation
- Updated CLAUDE.md with new functions requiring skip_confirm
- Updated agent test instructions with confirmation requirements
🤖 Generated with Claude Code
Release v1.0.2: Actual Hotfix (v1.0.1 correction)
Hotfix Release v1.0.2
New Features
- ✅ Added
get_current_directory()function - equivalent topwdcommand- Location:
src/basic_open_agent_tools/system/runtime.py:15 - Returns current working directory as a string
- Exported in
src/basic_open_agent_tools/system/__init__.py:47
- Location:
Bug Fixes
- ✅ Fixed
load_writers()helper function removing non-existentfile_editorreference - ✅ Added proper file operations to
load_writers():append_to_fileinsert_at_linereplace_in_file
Testing
- ✅ Added comprehensive tests for
get_current_directory()(tests/system/test_runtime.py:254-280) - ✅ All quality checks passing (ruff, mypy, pytest)
What Happened with v1.0.1?
v1.0.1 was published with only version number changes because the code changes were not committed before creating the release tag. This release (v1.0.2) contains all the intended fixes.
🤖 Generated with Claude Code
Release v1.0.1: Hotfix Release
Hotfix Release v1.0.1
New Features
- Added
get_current_directory()function - equivalent topwdcommand for getting current working directory (src/basic_open_agent_tools/system/runtime.py:15)
Bug Fixes
- Fixed
load_writers()helper function removing non-existentfile_editorreference - Replaced with proper file operations:
append_to_file,insert_at_line, andreplace_in_file
Testing
- Added comprehensive tests for
get_current_directory()function - All quality checks passing (ruff, mypy, pytest)
🤖 Generated with Claude Code
Release v1.0.0: First Stable Release 🎉
🎉 Basic Open Agent Tools v1.0.0 - First Stable Release
This is the first stable release of basic-open-agent-tools, marking a significant milestone in providing foundational tools for AI agents.
📦 What's Included
Complete Modules (20)
- ✅ Archive - Compression and archive operations
- ✅ Color - Color manipulation and analysis
- ✅ Crypto - Cryptographic utilities
- ✅ Data - JSON, CSV, YAML, TOML, INI processing
- ✅ Datetime - Comprehensive date/time utilities
- ✅ Diagrams - Mermaid and PlantUML generation
- ✅ Excel - Spreadsheet reading, writing, formatting
- ✅ File System - File and directory operations
- ✅ HTML - HTML parsing and generation
- ✅ Image - Image processing and manipulation
- ✅ Logging - Structured logging with rotation
- ✅ Markdown - Markdown parsing and generation
- ✅ Network - Network utilities and validation
- ✅ PDF - PDF creation, reading, manipulation
- ✅ PowerPoint - Presentation creation and reading
- ✅ System - System information and operations
- ✅ Text - Text processing and manipulation
- ✅ TODO - Task management with persistence
- ✅ Utilities - Configuration and timing utilities
- ✅ Word - Document creation, reading, styling
- ✅ XML - XML parsing, authoring, validation
Statistics
- 326 foundational tools for AI agents
- 74% test coverage with 1378 passing tests
- 100% code quality (ruff + mypy compliance)
- Full Google ADK compatibility
- Strands Agents integration
🚀 New in 1.0.0
Task Persistence (v0.15.1)
- save_tasks_to_file() - Save tasks to JSON with atomic writes
- load_tasks_from_file() - Load tasks with 3 merge strategies (replace, merge, merge_renumber)
- validate_task_file() - Comprehensive file validation
- Dependency remapping for renumbered tasks
- Circular dependency detection
- Structured logging for visibility
Structured Logging (v0.15.0)
- Added comprehensive logging to all todo operations
- Agents can see task operations even without verbalization
[TODO]prefix for easy filtering
🎯 API Stability
With v1.0.0, we commit to:
- Semantic versioning - No breaking changes in 1.x
- Stable API - Functions won't change signatures
- Backward compatibility - Safe to upgrade within 1.x
📚 Installation
pip install basic-open-agent-toolsOptional Dependencies
pip install basic-open-agent-tools[all] # All features
pip install basic-open-agent-tools[pdf] # PDF support
pip install basic-open-agent-tools[excel] # Excel support
# ... and more (see README)🤖 Agent Framework Support
Compatible with:
- Google ADK - Direct function imports
- LangChain - StructuredTool wrapping
- Strands Agents - Native @strands_tool decorator
- Custom Agents - Simple function imports
🔗 Quick Start
import basic_open_agent_tools as boat
# Load all tools for your agent
tools = boat.load_all_tools()
# Or load specific categories
fs_tools = boat.load_all_filesystem_tools()
data_tools = boat.load_all_data_tools()📖 Documentation
🛣️ What's Next
Planned for 1.1.0+
- Text template processing (high priority)
- TODO export to multiple formats
- Enhanced datetime formatting
- Excel charts and conditional formatting
- PDF form support and image extraction
See our GitHub Issues for the full roadmap.
🙏 Acknowledgments
Built for the AI agent community with a focus on:
- Minimal dependencies - Prefer stdlib
- Google ADK compliance - Agent-first design
- Quality - Comprehensive testing and typing
- Safety - User confirmation for destructive operations
Full Changelog: v0.15.1...v1.0.0
🤖 Generated with Claude Code
Release v0.15.1: TODO Module Improvements
Release v0.15.1 - TODO Module Improvements
🎯 Hotfix Release
This hotfix release adds comprehensive structured logging to the todo module and fixes validation function decorators.
✨ What's New
TODO Module Enhancements:
-
✅ Structured Logging: All todo operations now log their actions with
[TODO]prefix- Task creation logs ID, title, priority, tags, and dependencies
- Task updates show old → new value changes
- Task listing shows filter criteria and result counts
- All operations provide visibility even when agents don't verbalize
-
✅ Fixed Validation Functions: Removed incorrect
@strands_tooldecorators from internal validation helpers -
✅ Google ADK Compliance: Fixed
validate_dependenciessignature to removeOptionaltype
📝 Changes
Modified Files:
todo/operations.py: Added logging to all 8 operationstodo/validation.py: Removed decorators from validation functions, fixed parameter typestests/todo/test_validation.py: Updated test calls for new signatureutilities/TODO.md: Updated to v0.15.1 with logging feature noted
🔧 Usage
Enable logging to see todo operations:
import os
os.environ["BOAT_LOG_LEVEL"] = "INFO"
from basic_open_agent_tools.todo import add_task
# Now you'll see: [todo.operations] [TODO] Created task #1: 'My Task' (priority: high, ...)📊 Module Status
- 20 modules: archive, color, crypto, data, datetime, diagrams, excel, file_system, html, image, logging, markdown, network, pdf, powerpoint, system, text, todo, utilities, word, xml
- 326 functions: All Google ADK compatible with @strands_tool decorators
- Test Coverage: 74% overall, 92-97% for todo module
- Quality: 100% ruff, mypy compliant
🐛 Bug Fixes
- Fixed validation function exposure (removed incorrect tool decorators)
- Fixed
validate_dependenciesOptional parameter type
🚀 Future Enhancements
New GitHub issues created for future todo module features:
- #23: Task persistence (save/load from files)
- #24: Advanced search and filtering
- #25: Task templates for workflows
- #26: Subtask/hierarchical support
- #27: Task history and audit trail
- #28: Multi-format export (Markdown, CSV, JSON, HTML)
📦 Installation
pip install basic-open-agent-tools==0.15.1
# or
uv pip install basic-open-agent-tools==0.15.1Full Changelog: v0.15.0...v0.15.1
Release v0.15.0: Simplified File Editor Tools
What's New in v0.15.0
This minor release simplifies the file editor interface by removing the complex multi-command file_editor tool and providing simple, flat alternatives that are much easier for AI agents to use.
Breaking Changes
Removed: file_editor multi-command interface
The complex file_editor(command, path, skip_confirm, options_json) tool has been removed. This tool required JSON parsing and had a confusing multi-command interface that caused agent errors.
Migration Guide:
If you were using file_editor, switch to these simpler alternatives:
| Old (file_editor) | New (simple alternatives) |
|---|---|
file_editor("view", path, False, "{}") |
view_file_with_lines(path, "", "") |
file_editor("create", path, False, '{"content": "text"}') |
write_file_from_string(path, "text", False) |
file_editor("str_replace", path, False, '{"old_str": "x", "new_str": "y"}') |
replace_in_file(path, "x", "y", -1) |
file_editor("insert", path, False, '{"line_number": 5, "content": "text"}') |
insert_at_line(path, 5, "text") |
file_editor("find", path, False, '{"pattern": "TODO"}') |
find_text_in_file(path, "TODO", False) |
New Features
Added 2 Simple Flat Tools:
-
view_file_with_lines(path, start_line, end_line)- View files with line numbers- Unique feature: Adds line numbers to file viewing (unlike
read_file_to_string) - Examples:
view_file_with_lines("file.py", "", "") # View entire file view_file_with_lines("file.py", "10", "20") # View lines 10-20
- Unique feature: Adds line numbers to file viewing (unlike
-
find_text_in_file(path, search_text, use_regex)- Search/grep functionality- New functionality: Search for patterns in files
- Examples:
find_text_in_file("file.py", "TODO", False) # Simple text search find_text_in_file("file.py", "def \\w+\\(", True) # Regex search
Bug Fixes
- Fixed Windows import error (from v0.14.1): Added
__all__definition tohelpers.pyto resolve strict import behavior on Windows platforms
Improvements
- Reduced code complexity: Removed 405 lines of complex code
- Better agent compatibility: Flat, simple function signatures instead of multi-command JSON interfaces
- No duplicate tools: Removed tools that duplicated existing operations
- Cleaner codebase: Simplified
editor.pyfrom 566 to 230 lines
Statistics
- Total Tools: 20 filesystem tools (clean, no duplicates)
- Code Reduction: -405 lines total
- Tests: 176/180 passing (4 pre-existing agent eval test failures)
- Quality: All ruff and format checks pass
Installation
pip install --upgrade basic-open-agent-toolsFull Changelog
See commit history for detailed changes.
🤖 Generated with Claude Code