Skip to content

Releases: Open-Agent-Tools/basic-open-agent-tools

Release v1.3.0: Pre-configured Loadouts

26 Nov 20:49

Choose a tag to compare

Release v1.3.0: Pre-configured Loadouts

🎯 New Feature: Loadouts

Introducing 6 pre-configured tool bundles optimized for specific agent use cases:

Loadout Functions

  1. load_coder_loadout() (~105 tools)

    • For: Software developers, DevOps engineers, automation scripts
    • Includes: File system, system operations, network, logging, crypto, archive, config files
  2. load_docs_loadout() (~130 tools)

    • For: Technical writers, documentation creators, report generators
    • Includes: Word, PDF, Markdown, HTML, diagrams, images, text processing
  3. load_data_analyst_loadout() (~115 tools)

    • For: Data analysts, financial analysts, business intelligence
    • Includes: Excel, CSV, data validation, diagrams, structured data formats
  4. load_web_publisher_loadout() (~90 tools)

    • For: Web developers, content managers, blog publishers
    • Includes: HTML, XML, Markdown, network operations, text processing
  5. load_visual_designer_loadout() (~60 tools)

    • For: Graphic designers, infographic creators, visual content producers
    • Includes: Image processing, diagrams, color tools, file operations
  6. 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.0

Or with UV:

uv add basic-open-agent-tools

Full Changelog: v1.2.1...v1.3.0

Release v1.2.1: API Export Hotfix

10 Nov 14:12

Choose a tag to compare

🐛 Hotfix: Missing API Export

This hotfix addresses a missing export in the public API.

Fixed

  • API Export: Added missing load_datetime_essential to main __init__.py exports
    • Previously the function existed in helpers.py but wasn't accessible via import basic_open_agent_tools
    • Now properly exported for public use: from basic_open_agent_tools import load_datetime_essential

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.1

Full Changelog

v1.2.0...v1.2.1

Release v1.2.0: Markdown & DateTime Enhancements

07 Nov 18:19

Choose a tag to compare

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 links
  • parse_footnotes(): Parse footnote definitions
  • parse_definition_lists(): Extract term/definition pairs
  • parse_task_lists(): Identify checked/unchecked tasks
  • extract_image_references(): Find inline and reference images

DateTime Enhancements

Formatting & Parsing (Issues #17-20)

  • parse_date_string(): Parse custom formats → ISO
  • format_date(): Convert between date formats
  • format_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

05 Nov 03:30

Choose a tag to compare

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

31 Oct 20:51

Choose a tag to compare

🔒 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, and replace_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_confirm parameter (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)

29 Oct 17:09

Choose a tag to compare

Hotfix Release v1.0.2

⚠️ Important Note: This is the actual hotfix release. v1.0.1 contained only version number changes due to a commit ordering error during the release process. All users should upgrade directly to v1.0.2.

New Features

  • ✅ Added get_current_directory() function - equivalent to pwd command
    • 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

Bug Fixes

  • ✅ Fixed load_writers() helper function removing non-existent file_editor reference
  • ✅ Added proper file operations to load_writers():
    • append_to_file
    • insert_at_line
    • replace_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

29 Oct 17:04

Choose a tag to compare

Hotfix Release v1.0.1

New Features

  • Added get_current_directory() function - equivalent to pwd command for getting current working directory (src/basic_open_agent_tools/system/runtime.py:15)

Bug Fixes

  • Fixed load_writers() helper function removing non-existent file_editor reference
  • Replaced with proper file operations: append_to_file, insert_at_line, and replace_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 🎉

21 Oct 15:39

Choose a tag to compare

🎉 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-tools

Optional 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

21 Oct 14:21

Choose a tag to compare

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_tool decorators from internal validation helpers

  • Google ADK Compliance: Fixed validate_dependencies signature to remove Optional type

📝 Changes

Modified Files:

  • todo/operations.py: Added logging to all 8 operations
  • todo/validation.py: Removed decorators from validation functions, fixed parameter types
  • tests/todo/test_validation.py: Updated test calls for new signature
  • utilities/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_dependencies Optional 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.1

Full Changelog: v0.15.0...v0.15.1

Release v0.15.0: Simplified File Editor Tools

20 Oct 19:28

Choose a tag to compare

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:

  1. 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
  2. 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 to helpers.py to 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.py from 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-tools

Full Changelog

See commit history for detailed changes.

🤖 Generated with Claude Code