Skip to content

Releases: weisberg/tooli

v6.6.0

Choose a tag to compare

@weisberg weisberg released this 22 Feb 03:09

Critical Bug Fixes

  • #203 -- Fixed CLI crash on all T | None optional parameters. The native backend was passing raw union types (e.g. str | None) directly to argparse's type= argument, which requires a callable. Added _unwrap_optional() helper that extracts T from Optional[T] / T | None unions. Applied in _build_parser (2 locations), _coerce_value, _format_help_param_type, and the main() coercion path.

  • #202 -- Restored triggers, anti_triggers, and rules as explicit constructor parameters on the native backend Tooli class. These agent-native metadata fields are core to the framework's value proposition and are used by doc generators (skill_v4.py, agents_md.py) and manifest generation.

Additional Fixes

  • Unknown constructor kwargs (e.g. env_vars, workflows, security_policy) are now stored as attributes instead of raising RuntimeError, fixing import-time crashes for apps using these parameters.

v6.5.0

Choose a tag to compare

@weisberg weisberg released this 22 Feb 02:54
eb2dc7c

What's Changed

Full Changelog: v6.2.1...v6.5.0

v6.2.1

Choose a tag to compare

@weisberg weisberg released this 22 Feb 02:27
a2e0748

What's Changed

Full Changelog: v6.1.0...v6.2.1

v6.1.0

Choose a tag to compare

@weisberg weisberg released this 22 Feb 02:15

Bug Fixes

  • #194 -- Global --output/-o flag no longer silently conflicts with user-defined --output command parameters. Tooli now detects reserved flag name collisions at command registration time and raises a clear error with a suggested alternative name. The --output alias on generate-skill, generate-agents-md, and generate-claude-md builtins has been replaced with --output-path.

  • #193 -- Security sanitizer no longer strips backtick-quoted generic type syntax (e.g. `StdinOr[T]`, `SecretInput[str]`). The backtick sub-pattern in INJECTION_PATTERN was incorrectly matching markdown inline code as shell command substitution.

  • #192 -- Removed all non-ASCII Unicode characters (em-dashes, en-dashes, arrows, bullets) from help text, docstrings, and comments across the package. All output is now pure ASCII.

v6.0.0 — Lean Core

Choose a tag to compare

@weisberg weisberg released this 20 Feb 14:54

Tooli v6.0 — Lean Core

The "lean core" release. Tooli is a library, not a platform — everything non-core is deprecated for extraction.

Removed

  • PipeContract (tooli/pipes.py) — zero adoption, removed entirely
  • --agent-bootstrap flag — replaced by generate-skill command
  • tooli init scaffolding — replaced by cookiecutter templates
  • tooli upgrade analyzer — replaced by eval coverage
  • pipe_input, pipe_output, recovery_playbooks fields from CommandMeta

Deprecated (will be extracted to separate packages)

  • generate-skill → moving to tooli-docs
  • generate-agents-md → moving to tooli-docs
  • generate-claude-md → moving to tooli-docs
  • export → moving to tooli-export
  • eval commands → hidden, moving to tooli-eval

Stats

  • -730 net lines removed
  • 593 tests passing
  • 7 files deleted

v5.0.1 — Dependency fix

Choose a tag to compare

@weisberg weisberg released this 20 Feb 12:07

Fixed

  • Add typer>=0.9 to core dependencies (was incorrectly listed as optional, causing ModuleNotFoundError on fresh pip install tooli).
pip install tooli==5.0.1

v5.0.0 — The Universal Agent Tool Interface

Choose a tag to compare

@weisberg weisberg released this 17 Feb 19:35
e660206

The Universal Agent Tool Interface

Tooli v5.0 adds a Python API for direct in-process invocation, granular capability declarations, multi-agent handoff metadata, framework export code generation, and AGENTS.md documentation generation. All changes are additive — existing v4.x code runs unchanged.

Highlights

  • Python API: app.call(), app.acall(), app.stream(), app.astream() for typed in-process invocation returning TooliResult objects
  • Capabilities: capabilities=[...] for granular permission declarations with STRICT mode enforcement via TOOLI_ALLOWED_CAPABILITIES
  • Handoffs: handoffs=[...] and delegation_hint for multi-agent workflow orchestration
  • Error field mapping: Link errors to specific input parameters with field="param_name"
  • Output schema: output_schema in envelope meta for detailed response format
  • AGENTS.md: Generator for GitHub Copilot / OpenAI Codex compatibility
  • Export command: mytool export --target openai|langchain|adk|python generates framework-specific integration code
  • 4 SDK integration examples: Claude, OpenAI, LangChain, Google ADK
  • All 18 example apps updated with v5 metadata (capabilities on all 65 commands)
  • 627 tests passing across Python 3.10+

Install

pip install tooli==5.0.0

Migration

See MIGRATION_GUIDE_v5.md for upgrade steps. No breaking changes.

Full Changelog: https://github.com/weisberg/tooli/blob/main/CHANGELOG.md

v4.1.0 — Caller-Aware Agent Runtime

Choose a tag to compare

@weisberg weisberg released this 17 Feb 11:18
acbe5ce

Tooli v4.1.0 — Caller-Aware Agent Runtime

Highlights

  • TOOLI_CALLER convention — Set one environment variable to identify your agent with 100% confidence. 21 well-known agent identifiers pre-registered (Claude Code, Cursor, Aider, Devin, LangChain, CrewAI, etc.).
  • 5-category heuristic detection — When TOOLI_CALLER isn't set, tooli inspects environment variables, process trees, TTY status, and container markers to classify callers as human, AI agent, CI/CD, container, or unknown automation.
  • detect-context builtin command — Debug your agent integration: TOOLI_CALLER=my-agent mytool detect-context --json
  • Caller metadata in envelope — caller_id, caller_version, and session_id in every JSON response's meta section.
  • Adaptive behavior — Agents with --yes skip confirmations; convention-identified agents get structured YAML from --help.
  • Full observability — Caller attributes in OTel spans and invocation recordings (schema v2).

Stats

  • 100 new tests (359 total)
  • 21 files changed, 2,757 insertions
  • Backward compatible — no breaking changes

Install

pip install tooli==4.1.0

See CHANGELOG.md for full details and docs/AGENT_INTEGRATION.md for the integration guide.

v4.0.0 — Agent Skill Platform

Choose a tag to compare

@weisberg weisberg released this 17 Feb 00:09
d624eab

What's New

Tooli v4.0 evolves from CLI framework to agent skill platform. The north star: mytool --agent-bootstrap produces a deployable SKILL.md that any agent can use perfectly on the first attempt.

Highlights

  • --agent-bootstrap flag — any command gains a global flag that generates a complete, deployable SKILL.md
  • Task-oriented SKILL.md — commands grouped by task_group, with "When to use" and "If Something Goes Wrong" sections
  • PipeContract — declare input/output formats for command composition; auto-inferred composition patterns
  • tooli init — project scaffolding with optional --from-typer migration
  • generate-skill --target — target-specific output: generic-skill, claude-skill, claude-code
  • Enhanced CLAUDE.md — richer project documentation with architecture, build commands, and agent invocation patterns
  • eval coverage — metadata coverage reporter with token estimates and warnings
  • upgrade-metadata — analyzes apps and suggests metadata improvements
  • MCP skill resources — auto-registered skill://manifest and skill://documentation
  • Source-level agent hints — # tooli:agent blocks for embedding metadata in source files

No Breaking Changes

All v3 code runs unchanged. See MIGRATION_GUIDE_v4.md for optional upgrade steps.

Stats

  • 16 new files, 8 modified
  • 73 new tests (259 total)
  • 6 example apps updated with v4 metadata

v3.0.0

Choose a tag to compare

@weisberg weisberg released this 16 Feb 23:22

What's New in v3.0.0

Added

  • v3 documentation workflow primitives: generate-skill --validate, --infer-workflows, --output, manifest/Claude output modes, and SKILL.md token-budget estimation
  • Native backend (app_native.py) — full Tooli fallback that works without Typer, supporting all v3 metadata (triggers, workflows, rules, env_vars, auth, etc.)
  • CLAUDE.md generation and agent manifest support
  • Agent test eval harness (tooli.eval.agent_test)
  • Command versioning with deprecated aliases
  • All 19 v3 features now demonstrated across example apps: SecretInput, auth scopes, rules, env_vars, Suggestion, workflows, error_codes, requires_approval, deprecated/deprecated_message, version, triggers, anti_triggers, timeout, output_example, max_tokens, human_in_the_loop, danger_level, cost_hint, OpenWorld
  • MIGRATION_GUIDE_v3.md with explicit v2→v3 migration steps

See CHANGELOG.md for full details.