v0.1.0-alpha.13
Release: Skills System, Policy Engine, Meta-Tools Hardening β Complete agent autonomy layer with skill discovery, policy-driven tool creation, HITL quarantine, hot-reload safety, and security hardening
Released: March 22, 2026
π Major Features
Skills System β First-Class Integration (@matimo/core)
- Agent Skills Catalog β 6 built-in SKILL.md files shipped with
@matimo/corefor agent self-educationtool-creationβmatimo_create_tool,matimo_validate_tool,matimo_approve_toolworkflowmeta-tools-lifecycleβ Full lifecycle management (create, validate, approve, reload, list)policy-validationβ Risk classification, approval tiers, policy configurationtool-discoveryβ Finding and learning about existing toolsskill-creatorβ How to create new SKILL.md files for use in agentsskills-catalogβ How to use and leverage the skills ecosystem
semanticSearchSkills(query)β TF-IDF (Term Frequency - Inverse Document Frequency embedding)-based semantic search across all SKILL.md files; ranked results with relevance scoresgetSkillSections(skillName)β Returns section inventory with token estimates for progressive disclosuregetSkillContent(skillName, options?)β Load full or selective sections of a skill (token-efficient context loading)getSkillsMetadata(matimo)β Non-MCP LangChain helper: returnsArray<{ name, description }>only (Level 1, no file I/O, always token-safe)buildRelevantSkillPrompt(matimo, query, options?)β Non-MCP LangChain helper: runs TF-IDF cosine similarity ranking and loads only the top-K relevant skills above a minimum score into a ready-to-inject system prompt block (Level 2, lazy). Both helpers exported frommatimoβ see LangChain integration guide- Agent meta-tools β 10 meta-tools callable by LangChain agents and MCP clients:
- Skill meta-tools:
matimo_list_skills,matimo_get_skill,matimo_create_skill,matimo_validate_skill - Tool lifecycle meta-tools:
matimo_create_tool,matimo_validate_tool,matimo_approve_tool,matimo_reload_tools,matimo_list_user_tools,matimo_get_tool_status - See META_TOOLS.md for full reference
- Skill meta-tools:
- Provider skill bundles β Each provider package ships a consolidated
SKILL.mddocumenting its complete tool ecosystem (Slack, GitHub, Gmail, HubSpot, Mailchimp, Notion, Postgres, Twilio) - MCP resource exposure β Skills auto-registered as
skills://{name}resources on the MCP server; Claude Desktop and Cursor can read them via the Resources protocol without tool calls; hot-reloads onreloadTools()
Policy Engine (@matimo/core)
- Policy-as-YAML loader β
loadPolicyFromFile(path)+policyFileoption inMatimoInstance.init() - Policy tier API β
getTierForTool(tool, config): PolicyTierreturning'auto' | 'approval-required' | 'blocked' - Approval state tracking β
approvalState: 'auto-approved' | 'pending' | 'approved' | 'rejected'inCreateResult - Pending tools inventory β
getPendingTools(): string[]in approval manifest for agent status queries - Tool status meta-tool β
matimo_get_tool_statusreturns{ name, status, riskLevel, approvalState, approvedAt?, approvedBy? } - Human-readable validation β
matimo_validate_toolreturnsSchemaError[]withvalidOptions?per field (not raw Zod output) - Content validator β
content-validator.tsscans agent-written tool YAML for blocked patterns (SSRF, secrets in plain text, unsafe command templates) before the tool reaches the registry - Integrity tracker β
integrity-tracker.tsrecords a hash of each approved tool file; detects file tampering between restarts - Policy events β
events.tsemits typed lifecycle events (tool:created,tool:approved,tool:rejected,tool:quarantined) for external monitoring hooks - HITL quarantine β Tools that fail content validation during a policy-restricted session are written to a quarantine directory rather than discarded; human reviewer can inspect, amend, and re-submit via
matimo review
Hot-Reload Atomicity & Safety (@matimo/core)
- Atomic reload β
reloadTools()snapshots registry, restores on mid-load error - Rollback signal β
ReloadResult { success, reloadedCount, rolledBack }tells agents whether state was preserved - MCP auto-trigger β MCP server emits
tools/list_changed+resources/list_changednotifications on successful reload
Security Hardening (@matimo/core)
- 20 security vulnerabilities resolved via pnpm overrides and direct fixes:
- ReDoS prevention β
HEADING_REGEXhardened against catastrophic backtracking in skill section parsing - Sensitive data logging β Secrets never logged or exposed in error messages or stack traces
- Dependency audit β Comprehensive override strategy for transitive vulnerabilities
- ReDoS prevention β
- Regex safety β All regex patterns reviewed and hardened
- Logging guardrails β Credentials and sensitive parameters redacted from all logs
CLI Enhancements (@matimo/cli)
matimo doctorβ Diagnoses environment in one command:- Node.js β₯18 check
@matimo/*package scan- Environment variable audit per tool
- YAML validation with field-level messages
matimo reviewβ Bridge for approval workflows:matimo review listβ Show pending and quarantined tools awaiting approvalmatimo review approve <tool-name>β Approve a pending tool (updates approval manifest + tool status)matimo review reject <tool-name>β Reject a pending tool
π Examples & Documentation
New Examples
examples/tools/policy/policy-demo.tsβ LangChain agent demonstrating the full policy-aware tool creation workflow (create β validate β quarantine β review β approve β execute)examples/tools/skills/skills-demo.tsβ Multi-phase demo: agent skill missions (create, list, read, validate), Phase 4 direct TF-IDF ranking viasemanticSearchSkills()with per-skill scores, and non-MCP progressive disclosure viagetSkillsMetadata()+buildRelevantSkillPrompt()examples/tools/meta-flow/meta-tools-integration.tsβ Full lifecycle: create tool, validate, approve, reload, list via meta-tools; includes policy agent and skills agent in one flowexamples/tools/agents/langchain-skills-policy-agent.tsβ Production-pattern LangChain agent combining skills discovery (Level 1 + Level 2) with policy-aware tool creation in a single mission-based ReAct loopexamples/tools/validate-implementation.tsβ SDK validation script that verifies all meta-tools, skill operations, and policy flows are wired correctly end-to-end
New Documentation
docs/api-reference/META_TOOLS.mdβ Complete reference for all 10 meta-tools (parameters, return shapes, examples, approval requirements)docs/api-reference/POLICY_AND_LIFECYCLE.mdβ Policy engine deep-dive: tier system, YAML config, HITL quarantine flow, approval manifest schema, integrity trackerdocs/skills/TFIDF_SEMANTIC_SEARCH.mdβ TF-IDF implementation details: tokenization, IDF computation, cosine similarity, embedding cache, custom provider interfacedocs/skills/SKILLS.mdβ Complete Skills System guide: SKILL.md format, progressive disclosure levels, MCP resource exposure, LangChain non-MCP helpers, semantic search APIdocs/framework-integrations/LANGCHAIN.mdβ Added Skills Integration (Non-MCP) section:getSkillsMetadata+buildRelevantSkillPromptAPI reference with full options and code patternsdocs/ROADMAP.mdβ Updated with alpha.14 focus (agent-callable TF-IDF,matimo_search_skills, dynamic tool filtering)docs/tool-development/TOOL_SPECIFICATION.mdβexecution.type: functionfully documented with trust model
π§ͺ Test Coverage
42 new test files added across unit, integration, and CLI suites:
- Meta-tools: Unit tests for all 10 meta-tools (
matimo_create_tool,matimo_validate_tool,matimo_approve_tool,matimo_reload_tools,matimo_list_user_tools,matimo_get_tool_status,matimo_create_skill,matimo_get_skill,matimo_list_skills,matimo_validate_skill) - Policy engine: Unit tests for
approval-manifest,content-validator,default-policy,hitl-quarantine,integrity-tracker,risk-classifier, policy loader and parser - Skills system: TF-IDF embedding, section parser, skill-loader, skill-registry (core + semantic),
langchain-integrationhelpers (getSkillsMetadata,buildRelevantSkillPrompt) - Integration: Hot-reload atomicity, HITL quarantine paths,
matimo-instance-hitl-paths, policy integration end-to-end - CLI:
doctorcommand,review approve/reject/listcommands - Full suite: 1,884 tests passing across 96 test suites
π¦ Packages
All packages bumped to v0.1.0-alpha.13:
@matimo/coreβ Skills, policy engine, 10 meta-tools, HITL quarantine, security fixes, LangChain helpers@matimo/cliβdoctorcommand,reviewcommand, enhanced help@matimo/slack,@matimo/github,@matimo/gmail,@matimo/hubspot,@matimo/mailchimp,@matimo/notion,@matimo/postgres,@matimo/twilioβ Version sync, provider SKILL.md bundles in each
β οΈ Breaking Changes
None. All new features are additive or opt-in.
π Related
- Previous: v0.1.0-alpha.12.1
- Next: v0.1.0-alpha.14
v0.1.0-alpha.12.1
Release: Per-Execution Credential Override β Multi-tenant credential injection,
getRequiredCredentials()DX helper, package-level release workflow (Changesets), improved test coverage
Released: March 12, 2026
π Features
Per-Execution Credential Override (@matimo/core)
ExecuteOptions.credentialsβ PassRecord<string, string>perexecute()call; credentials are scoped to that execution and never written toprocess.env- Priority lookup chain:
credentials[key]βcredentials[MATIMO_key]βprocess.env[MATIMO_key]βprocess.env[key] - All executor types updated:
HttpExecutor,CommandExecutor,FunctionExecutorall accept and forward per-call credentials - Fully backward compatible: existing code without
optionsis unaffected
getRequiredCredentials(toolName) DX Helper (@matimo/core)
- Returns the exact credential key names a tool expects (
string[]) - Scans
{PLACEHOLDER}patterns in headers, URL, body, andquery_paramsfor auth-pattern names - Also includes
username_env/password_envfromauthentication.type: basicconfig - Throws
MatimoError(TOOL_NOT_FOUND)for unknown tool names - Enables multi-tenant credential manifest pattern:
const keys = matimo.getRequiredCredentials('slack-send-message'); // β ['SLACK_BOT_TOKEN'] const credentials = Object.fromEntries(keys.map(k => [k, tenant.secrets[k]])); await matimo.execute('slack-send-message', params, { credentials });
New Example: Multi-Tenant Credentials (examples/tools/credentials/)
- Runnable demo showing per-tenant credential isolation with
Promise.allparallel execution - Verifies
process.envimmutability and env-var fallback behaviour - Credential key reference table for all Slack tools
- Script:
pnpm credentials:example
π§ͺ Test Coverage
- 26 new tests in
credentials-override.test.tscovering all executors, credential priority,getRequiredCredentials(), andprocess.envimmutability - 8 new branch-coverage tests in
matimo-instance.test.tstargeting previously uncovered paths:params.commandscan for command-type toolsparams.sqldestructive-keyword scanMATIMO_APPROVAL_SCAN_ALL_PARAMS=truepath- Approval callback invocation
- Basic-auth
username_env/password_envingetRequiredCredentials() scanObjectForParamsnon-object early return & circular reference guardgetExecutorunsupported-type throw
matimo-instance.tsstatements and lines: 100% (up from 88.81% / 89.74%)- Full suite: 1298+ tests passing
π¦ Packages
All packages bumped to v0.1.0-alpha.12.1:
@matimo/coreβExecuteOptions,getRequiredCredentials(), new tests@matimo/cliβ Version sync@matimo/slack,@matimo/github,@matimo/gmail,@matimo/hubspot,@matimo/mailchimp,@matimo/notion,@matimo/postgres,@matimo/twilioβ Version sync
β οΈ Breaking Changes
None. The options parameter on execute() is optional; all existing call sites continue to work unchanged.
v0.1.0-alpha.12
Release: First-Class MCP Support β Standalone server, pluggable secrets, Claude Desktop integration, comprehensive examples
Released: March 11, 2026
π Major Features: MCP is Here
MCP Server Implementation (@matimo/core/mcp)
- Dual-transport support:
- Stdio transport β Lightweight, no networking, perfect for Claude Desktop and local agents
- Streamable HTTP transport β Remote deployment ready, bearer token auth, reconnect logic
- Tool discovery & execution β MCP protocol compliant; Claude instantly sees all loaded tools
- Session management β Handles MCP client lifecycle, graceful shutdown with active connection draining
- Zero configuration β Works with default YAML tool definitions; no MCP-specific schema needed
Pluggable Secret Resolution (SecretResolverChain)
- Multiple backends supported:
envβ Load from environment variables (fastest, default)dotenvβ Load from.envfile (development friendly)vaultβ HashiCorp Vault integration (enterprise secrets)awsβ AWS Secrets Manager integration (cloud-native)
- Automatic injection β Tool parameters matching auth patterns (token, key, secret, etc.) auto-resolved server-side
- Chain resolution β Try resolvers in order; fall back gracefully if missing
CLI Commands: MCP First Class
matimo mcpβ Start MCP server--transport stdioβ Default, no networking--transport http --port 3000β Remote, auth-ready--tools slack,gmailβ Tool allowlist/denylist--secrets env,dotenv,vaultβ Enable secret backends
matimo mcp setupβ Generate Claude Desktop config- Auto-discovers Matimo bin path
- Generates valid
claude_desktop_config.json - Writes to
~/.config/Claude/claude_desktop_config.json(macOS/Linux)
New Examples: Complete MCP Integration
examples/mcp/β Full-featured MCP demoagent-stdio.tsβ Claude Desktop integration via stdioagent-http.tsβ LangChain agent via HTTP transportagent.tsβ Unified agent supporting both transportsREADME.mdβ Step-by-step setup with real Slack tools.env.exampleβ All environment variables documentedpackage.jsonscripts βpnpm agent:stdio,pnpm agent:http,pnpm mcp:start:http
π Documentation
docs/MCP.mdβ Complete MCP architecture guide- Endpoints reference (GET /mcp for health, SSE for streams)
- MCP spec compliance notes
- TLS setup (mkcert recommended for local HTTPS)
- Troubleshooting guide
examples/mcp/README.mdβ Quick start (5 minutes to Langchain Agent with Slack integration via mcp)- Prerequisites (Node, npm, OpenAI key, Slack token)
- Quick Start section with 2 patterns (stdio, HTTP)
- Environment variable reference
- Troubleshooting (connection, token, tools)
π Security & Quality Improvements
CodeQL Fixes
- Polynomial regex (ReDoS) β Fixed
/\{([^}]+)\}/gβ/\{(\w+)\}/gintool-converter.ts - TLS bypass removed β Deleted
NODE_TLS_REJECT_UNAUTHORIZED = '0'from examples; plain HTTP default for localhost - HTTP server shutdown β Added
closeIdleConnections()+closeAllConnections()to drain active SSE streams before closing
CLI Robustness
- Flag validation β All value-consuming flags now guard against missing args with clear error messages
- Auto-execution detection β Fixed to handle different
tsxversionsβ argv-shifting behavior
Schema Fixes
- Zod optional-before-default β Fixed parameter-to-Zod conversion so defaults apply correctly to non-required params
π¦ Packages
All packages bumped to v0.1.0-alpha.12:
@matimo/coreβ Newmcpexports; schema/security fixesmatimo-cliβ Newmcpandmcp setupcommands; updated helpmatimo-mcp-examplesβ New project with full MCP integration
π― Key Achievements
β
Claude Desktop integration works out-of-the-box
β
HTTP transport for remote/docker/network use cases
β
Pluggable secrets (env, dotenv, vault, AWS)
β
Zero configuration needed beyond YAML tool definitions
β
Full test coverage for MCP flows
β
Production-ready examples for all patterns
β
Comprehensive troubleshooting documentation
β
Security fixes from CodeQL review
β οΈ Breaking Changes
None. MCP is additive; existing SDK patterns (Factory, Decorator, LangChain) unchanged.
π Migration & Quick Start
Try MCP in 5 minutes:
# 1. Start MCP server (stdio β Claude Desktop compatible)
npx matimo mcp
# 2. In another terminal, generate Claude Desktop config
npx matimo mcp setup
# 3. Restart Claude Desktop, tools appear in Tools panel
For HTTP (remote/docker):
# Server
MATIMO_MCP_TOKEN=secret npx matimo mcp --transport http --port 3000
# Client (LangChain agent example)
cd examples/mcp
pnpm install
MATIMO_MCP_TOKEN=secret pnpm agent:http
v0.1.0-alpha.11
Release: Twilio SMS/MMS provider, Mailchimp email marketing provider, native Basic Auth support, enhanced HTTP executor form-encoding, comprehensive test coverage, production-ready examples.
Released: February 27, 2026
π Features
New Providers (11 New Tools)
- Twilio Provider (
packages/twilio) β 4 SMS/MMS Toolstwilio-send-smsβ Send SMS to E.164 formatted phone numbers with message content and optional callbackstwilio-send-mmsβ Send MMS with media URLs to recipientstwilio-get-messageβ Retrieve message status and details by SIDtwilio-list-messagesβ List messages with filtering (to/from phone, date, pagination)- E.164 phone number format validation and handling
- Trial account support (50 messages/day limit)
- Full Twilio Programmable Messaging API integration
- Mailchimp Provider (
packages/mailchimp) β 7 Email Marketing Toolsmailchimp-get-listsβ Retrieve email lists from accountmailchimp-add-list-memberβ Add subscribers to lists (with merge fields)mailchimp-update-list-memberβ Update subscriber information (email, name, status)mailchimp-get-list-membersβ Query list members with paginationmailchimp-remove-list-memberβ Remove subscribers from listsmailchimp-create-campaignβ Create new email campaigns with templatesmailchimp-send-campaignβ Send campaigns to lists with content- Full Mailchimp Marketing API integration with OAuth2
- Campaign scheduling and performance tracking
HTTP Executor Enhancements
- Native Basic Auth Support
- New
authentication.type: basicwithusername_envandpassword_envfields - Automatic base64 encoding of
username:passwordat request time - Works with Mailchimp, HubSpot, and any Basic Auth service
- No pre-computation needed; credentials stored separate in env vars
- Added to
AuthConfiginterface inpackages/core/src/core/types.ts
- New
- Form-Encoded Request Bodies
- Automatic URLSearchParams conversion when
Content-Type: application/x-www-form-urlencoded - Fixes axios default JSON serialization for form submissions
- Validated with Twilio SMS/MMS live API testing
- Intelligent null/undefined filtering in templated fields
- Preserves JSON and custom formats for other Content-Types
- Automatic URLSearchParams conversion when
Documentation & Examples
- Provider READMEs
packages/twilio/README.mdpackages/mailchimp/README.md
- Integration Examples (Factory, Decorator, LangChain patterns)
- Twilio:
twilio-factory.ts,twilio-decorator.ts,twilio-langchain.ts - Mailchimp:
mailchimp-factory.ts,mailchimp-decorator.ts,mailchimp-langchain.ts - Real-world scenarios: Send SMS from agent, manage email subscribers, create campaigns
- Full error handling and credential validation
- Twilio:
π Fixes & Improvements
- HTTP Executor (
packages/core/src/executors/http-executor.ts)- Enhanced request body handling for form encoding
- Automatic URLSearchParams conversion for form-encoded bodies
- Better parameter templating with string conversion for numbers/booleans
- Improved null/undefined filtering to prevent orphaned keys in templated objects
- Case-insensitive Content-Type detection
- Mailchimp Documentation
- Updated API key logging for clarity (removed sensitive details)
- Adjusted asset paths for logo handling
- Corrected authentication method clarification
π§ Technical Notes
- Basic Auth Pattern: Set two env vars per service
- Example:
MATIMO_MAILCHIMP_USERNAME=api_key_start,MATIMO_MAILCHIMP_PASSWORD=api_key_end - Executor base64-encodes at request time; credentials never exposed in logs
- Example:
- Form Encoding: Automatically triggered when
Content-Type: application/x-www-form-urlencodeddetected- No YAML changes needed; existing tools work transparently
- Objects in body converted to URLSearchParams by HTTP executor
- Numbers and booleans automatically converted to strings for form submission
- Twilio Setup: Environment variables required
TWILIO_ACCOUNT_SIDβ Find in Twilio ConsoleTWILIO_AUTH_TOKENβ Find in Twilio ConsoleTWILIO_FROM_NUMBERβ Phone number to send from (E.164 format: +1234567890)TWILIO_TO_NUMBERβ Optional; can also be passed as parameter
- Mailchimp Setup: OAuth2 or API key
- API key: Set
MATIMO_MAILCHIMP_API_KEY(Basic Auth with βuserβ + key) - OAuth2: Supported; token refresh handled transparently
- API key: Set
- Trial Accounts: Twilio trial accounts prepend β[Twilio] β prefix to messages; upgrade to paid account to remove
β οΈ Breaking Changes
- None.
π Migration Notes
- New Tools: Twilio and Mailchimp available immediately after alpha.11 merge; no migration needed
- Basic Auth: Existing tools can opt-in to native Basic Auth by updating YAML; backward compatible with hardcoded Authorization headers
- Dependencies: Added
twilioandmailchimpTypeScript types topackages/core/test/integration/; no user-facing API changes
v0.1.0-alpha.10
Release: Notion tools provider, enhanced HTTP executor with structured parameters, and improved error handling
Released: February 21, 2026
π Features
- Notion Provider (
packages/notion)- Complete Notion tools package with 7 core tools for database and page operations
- Tools:
notion_list_databases,notion_query_database,notion_create_page,notion_update_page,notion_get_page,notion_search,notion_create_comment - Support for markdown content, database queries, page properties, icons, and covers
- Full OAuth2 or API key authentication
- Comprehensive YAML definitions with examples and output schemas
- Notion Examples (Factory, Decorator, LangChain patterns)
- Three complete example scripts for integrating Notion tools
- Factory Pattern (
notion-factory.ts) β Direct tool execution with database discovery and real operations - Decorator Pattern (
notion-decorator.ts) β Class-based@tool()decorator pattern - LangChain Pattern (
notion-langchain.ts) β AI agent with OpenAI GPT-4o-mini that auto-discovers databases - Comprehensive README with setup, environment configuration, and troubleshooting
- HTTP Executor Enhancements
- Improved parameter embedding for complex types (objects, arrays)
- Better handling of empty strings and null values in templating
- Structured response extraction with proper data validation
- Enhanced error normalization via new
fromHttpError()factory method
- Error Handling Improvements
MatimoErrorclass extended with optionalcausefield for error chaining- New
fromHttpError()helper to standardize HTTP/Axios errors into structuredMatimoError - Consistent error context preservation across executors
π Fixes & Improvements
- Notion Tools
- Auto-title generation for pages when DB properties are missing
- Validation of required
parentparameter for create/update operations - Proper markdown-to-block conversion for page content
- Fixed parameter templating for optional fields
- HTTP Executor
- Fixed parameter validation to allow empty strings in templates
- Improved object/array embedding logic with explicit null/undefined checks
- Better error messages with original error details preserved
- Response schema validation via Zod
- Tests
- Enhanced unit tests for HTTP executor with edge cases (empty strings, objects, arrays)
- Improved integration tests with better parameter validation
- Added response fixtures for multiple tool types
- Examples
- Standardized
convertToolsToLangChain()pattern across Slack, Gmail, and Notion examples - LangChain examples now auto-discover resources (channels, databases) before creating agents
- Improved error handling and logging in all example patterns
- Standardized
- Documentation
- Updated tool parameter documentation for clarity
- Added examples for complex parameter types (objects, arrays)
- Improved HTTP executor documentation with structured parameter embedding
π§ Technical Notes
- Parameter Templating: Object and array parameters are now properly embedded as JSON when indicated by parameter type in YAML
- Error Chaining: Use
MatimoError.causeandMatimoError.details.originalErrorto access the original exception - LangChain Integration: Secret injection pattern now supports complex types (objects) in addition to strings
- Notion Authentication: Both API key and OAuth2 flows are fully supported; requires database sharing via Notion UI
β οΈ Breaking Changes
- None.
π Migration Notes
- Notion Tools: Set
NOTION_API_KEYenvironment variable; share databases with your integration in Notion UI - Error Handling: Code catching generic
Errortypes should check forMatimoErrorfirst; original errors available viaerror.cause - LangChain Examples: All examples now discover required context (database IDs, channel IDs) before creating agents; no changes needed if using as-is
v0.1.0-alpha.9
Release: HubSpot provider, 50+ CRM tools, LLM-powered examples, approval enforcement, and full documentation
Released: February 19, 2026
π Features
- HubSpot Provider
- Added full HubSpot CRM integration as a new provider package (
packages/hubspot). - 50+ tools for Contacts, Companies, Deals, Tickets, Leads, Line Items, Invoices, Orders, Products, and Custom Objects (CRUD + list for each).
- All destructive tools (
update,delete) require approval (requires_approval: true). - OAuth2 and API key authentication supported.
- Comprehensive YAML tool definitions with examples and output schemas.
- Added full HubSpot CRM integration as a new provider package (
- Examples
- New HubSpot example scripts for Factory, Decorator, and LangChain agent patterns (
examples/tools/hubspot-*). - Example scripts use real LLM agent pattern (OpenAI GPT-4o-mini via LangChain).
- Example and package READMEs for HubSpot, with setup, usage, and troubleshooting.
- New HubSpot example scripts for Factory, Decorator, and LangChain agent patterns (
- Testing
- Integration and unit tests for HubSpot tools (Jest, 85%+ coverage).
- Approval system tested for all destructive actions.
- Documentation
- Full documentation for HubSpot tools in both
packages/hubspot/README.mdandexamples/tools/hubspot/README.md. - Updated main
README.mdto mention HubSpot support.
- Full documentation for HubSpot tools in both
- CI/CD
- Updated GitHub Actions workflow for npm releases and Discord notifications.
π Fixes & Improvements
- Lint: Removed all
anytypes from test files, fixed all lint warnings. - Tests: Fixed all TypeScript errors in test files, all tests pass.
- Approval: Confirmed all destructive HubSpot tools have
requires_approval: true. - Package: Added HubSpot scripts to
examples/tools/package.json. - Monorepo: Registered HubSpot in
pnpm-workspace.yamlandpnpm-lock.yaml.
β οΈ Breaking Changes
- None.
π Migration Notes
- To use HubSpot tools, install dependencies and set
MATIMO_HUBSPOT_API_KEYor configure OAuth2 as described in the package README. - Approval system is enforced for all destructive HubSpot actions; set
MATIMO_APPROVAL_ENABLED=trueto require approval.
v0.1.0-alpha.8
Release: focused on a unified approval system, logging, new GitHub tools, and workflow fixes
Released: February 18, 2026
π Highlights
- Unified approval system β Reworked approvals for destructive operations across core tools (
edit,execute,read,search) with a singlerequires_approvalflow and integration intoMatimoInstance. - Structured logging β Integrated Winston for consistent, structured logs across core packages.
- New GitHub provider tools β Added tools to manage repositories, releases, pull requests, and code search.
- Examples & tests updated β Examples refactored to use the new approval flow; test coverage expanded across core modules.
- CI / release fixes β Discord notification payload fixes and release workflow improvements.
π¦ Packages
- All publishable packages bumped to v0.1.0-alpha.8
π§ Notable Changes
- Removed legacy approval implementations (
PathApprovalManager,SQLApprovalManager) and related tests in favor of the unified system. - Improved approval matching: glob -> regex conversion and expanded content-type checks to reduce false positives.
- All tools updated to rely on the new approval flow; redundant tests removed.
- Documentation: outdated File Operation Approval docs removed/updated to reflect the new approach.
π Fixes
-
Fixed redundant Discord notification payload construction and formatting in release workflow.
v0.1.0-alpha.7.1
Patch: Discord release notifications + workflow improvements
Released: February 15, 2026
π§ Updates
CI/CD Improvements
- Fixed Discord webhook notifications β Proper JSON escaping for release notes with special characters
- Dynamic package discovery β Automatically extracts publishable packages from
pnpm-workspace.yamlinstead of hardcoding - Improved error handling β Better escaping of quotes, backslashes, and newlines in release notes payload
Security & Robustness
- All special characters (quotes, newlines, backslashes) in release notes are now safely escaped via jq
- Webhook URL passed securely via GitHub Actions secrets
- No hardcoded package lists β future packages auto-discovered
π Changes
- npm-release.yml workflow improvements
- All 7 packages bumped to v0.1.0-alpha.7.1
π Bug Fixes
- Discord notification JSON escaping
- Date formatting in Discord footer
- Package list generation from workspace configuration
v0.1.0-alpha.7
Postgres tools suite + SQL approval workflows: Execute database queries safely with interactive approval, LangChain integration, and comprehensive examples
Released: February 15, 2026
π New Features
Postgres Package & Tools
- New
@matimo/postgrespackage β Production-ready PostgreSQL tool provider postgres-execute-sqltool β Execute arbitrary SQL with parameterized query support for safety- Two authentication methods:
- Connection string:
MATIMO_POSTGRES_URL=postgresql://... - Separate env vars:
MATIMO_POSTGRES_HOST,MATIMO_POSTGRES_PORT,MATIMO_POSTGRES_USER,MATIMO_POSTGRES_PASSWORD,MATIMO_POSTGRES_DB
- Connection string:
SQL Approval Workflow System
SQLApprovalManagercore class β Centralized approval management for destructive queries (DELETE, DROP, UPDATE, ALTER, TRUNCATE)- Interactive approval prompts β Real-time user approval for sensitive SQL operations
- Smart detection β Automatically classifies queries as read-only or write/destructive
- Session caching β Approve once per session, reduces repeated prompts
- Auto-approval mode β Set
MATIMO_SQL_AUTO_APPROVE=truefor CI/CD environments - Custom approval callbacks β Integrate with your own approval logic via
setApprovalCallback()
π Examples & Documentation
4 Complete Postgres Examples
All 3 integration patterns (Factory, Decorator, LangChain) + SQL approval workflow:
- Factory Pattern β Direct tool execution with Matimo SDK
- Decorator Pattern β Class-based
@tool()decorator usage - LangChain Pattern β AI agent integration with table discovery and analysis
- Approval Workflow β Interactive SQL approval with automatic/manual modes
Comprehensive Documentation
- Postgres Package README β Complete tool specification, examples, authentication methods, error handling
- Examples README β Sequential Discovery Pattern, Approval Workflow Guide, integration patterns
.env.exampleβ Postgres configuration with both auth methods documented- Inline code comments β All examples extensively documented for easy understanding
CI/CD Enhancements
- Discord webhook notifications β Automatic release notifications in Discord channel
- Workflow improvement β npm-release workflow now posts Discord embed with release notes extracted from
docs/RELEASES.md
π¦ Package Updates
- All 7 packages bumped to v0.1.0-alpha.7:
matimo(root)@matimo/core@matimo/cli@matimo/slack@matimo/gmail@matimo/postgres⨠NEWmatimo-examples
π§ Developer Experience
New APIs
SQLApprovalManager.isApproved(sql, mode)β Check if SQL is approved, prompts user if neededSQLApprovalManager.setApprovalCallback()β Custom approval callback integrationsetSQLApprovalManager()β Global singleton support for cross-module approval management
Configuration
- Environment variables for Postgres connection (2 methods)
MATIMO_SQL_AUTO_APPROVEenv var for automated environments- Graceful fallback handling for missing credentials
π Fixes & Improvements
- Error messages β Helpful hints for connection failures (ECONNREFUSED, missing role, missing database)
- Non-TTY handling β Approval prompt properly rejects in non-interactive environments (CI/CD)
- Parameter validation β Strict validation of SQL parameters in approval checks
- Encoding support β Proper handling of connection string encoding for special characters in passwords
π Related Documentation
- Postgres Package README β Tool specifications and usage
- Examples README β Sequential discovery pattern, approval workflow
- Tool Development Guide β How to create new tools
β οΈ Breaking Changes
None. This is a purely additive release.
v0.1.0-alpha.6
Core tools architecture overhaul: function-based execution, unified SDK model, and comprehensive tool suite
Released: February 13, 2026
Security & Safety Improvements
- Approval flow for file operation tools β File read/write operations now require explicit approval to prevent unauthorized access
- Command injection detection in execute tool β Added security validation to detect and block potentially malicious shell commands
Core Tools Architecture Overhaul
- All core tools converted to function-type execution β Eliminates subprocess spawning and
tsxPATH dependencies - Unified execution model β All core tools now use direct async function calls for better performance and error handling
- Core tools suite expanded:
- execute β Execute shell commands with timeout, cwd control, and environment variables
- read β Read files with line range support, encoding detection, and large file handling
- edit β Edit/replace file contents with optional encoding and backup support
- search β Search files using grep patterns with line output and context display
- web β Fetch and parse web content with headers, cookies, and response validation
- calculator β Refactored to function-type for consistency
Execution Model Improvements
- No external dependencies β Core tools no longer depend on
tsxor other CLI tools - Direct in-process execution β Function-based tools execute directly without subprocess overhead
- Better error handling β Native exception throwing instead of stdout/stderr parsing
- Simpler type safety β Direct TypeScript function signatures for all tools
Testing & Examples
- Comprehensive unit tests for all 5 new core tools (execute, read, edit, search, web)
- Complete examples for all core tools in 3 integration patterns:
- Factory pattern (direct tool execution)
- Decorator pattern (class-based with @tool)
- LangChain pattern (AI agent integration)
- Tests pass: 624+ test suite with 100% pass rate
Schema & Tool Loading Improvements
- Enhanced ToolDefinitionSchema β Better parameter validation and default value handling
- Improved tool caching β Tool packages cached for faster discovery and loading
- Better tool discovery β Provider auto-discovery with efficient lookup
- Passthrough validation removed β Stricter schema validation for tool definitions
- Default parameters support β YAML definitions can now specify default values
Developer Experience
- Unified core tools β Consistent execution model across all built-in tools
- Cleaner imports β Tools properly structured under
packages/core/tools/ - commitlint updates β Added support for βexampleβ commit type in conventional commits
Quality & Reliability
- Build fixes β Resolved issues from previous release
- Lint fixes β Eliminated linting issues in updated code
- Type safety β All tools properly typed with strict TypeScript checking
Architecture Comparison
Before (alpha.5)
# Command-type execution (subprocess spawning)
execution:
type: command
command: 'tsx'
args: ['packages/core/tools/read/read.ts', '{filePath}']
After (alpha.6)
# Function-type execution (direct calls)
execution:
type: function
code: './read.ts'
Benefits: Faster execution, no PATH dependencies, native error handling, simpler debugging
Tools Now Available
Core Utilities (6 tools)
calculatorβ Arithmetic operations (add, subtract, multiply, divide)executeβ Execute shell commands with full controlreadβ Read file contents with line rangeseditβ Edit/replace file contentssearchβ Search files by patternwebβ Fetch and parse web content
Provider Integrations (21+ tools)
slackβ 16+ Slack tools (messaging, channels, users, etc.)gmailβ 5 Gmail tools (send, list, get, draft, delete)
Examples
Execute Tool - All 3 Patterns
// Factory pattern
const matimo = await MatimoInstance.init('./tools');
const result = await matimo.execute('execute', {
command: 'ls -la',
cwd: '/tmp'
});
// Decorator pattern
@tool('execute')
async runCommand(command: string) { }
// LangChain pattern
const tools = matimo.listTools()
.map(t => ({ type: 'function', function: {...} }));
Read Tool
const result = await matimo.execute('read', {
filePath: './src/index.ts',
startLine: 10,
endLine: 50,
});
Edit Tool
const result = await matimo.execute('edit', {
filePath: './config.json',
newContent: '{"updated": true}',
createBackup: true,
});
Search Tool
const result = await matimo.execute('search', {
pattern: 'function execute',
directoryPattern: './src/**/*.ts',
outputLines: true,
});
Web Tool
const result = await matimo.execute('web', {
url: 'https://example.com',
method: 'GET',
});
Migration from Alpha.5
If you were using core tools:
Before (command-type with tsx):
// Tools required tsx in PATH
const result = await matimo.execute('read', {...});
After (function-type, no dependencies):
// Same API, better performance, no PATH dependencies
const result = await matimo.execute('read', {...});
API remains the same β no code changes needed! Just update Matimo version.
Testing & Quality
- β Improved test coverage across all packages
- β No lint errors β Strict ESLint configuration
- β 100% TypeScript strict mode β Full type safety
- β Complete test coverage β Unit + integration tests for all tools
- β All examples tested β 3 patterns Γ 6 core tools
Known Issues & Limitations
This is an alpha release. Not recommended for production without thorough testing.
Installation
npm install matimo@0.1.0-alpha.6
pnpm add matimo@0.1.0-alpha.6
Documentation
Contributing
| Contributing Guide | Report Issues |
v0.1.0-alpha.5
Readme addition to core, slack and gmail packages and custom domain setup for github pages (docs).
Released: February 11, 2026
Whatβs New
- Documentation Theme: Updated to Jekyll Slate theme for cleaner, simpler documentation rendering with GitHub Pages native support
- Workspace Dependencies: Updated all peer dependencies across cli, gmail, and slack packages to use
workspace:*versioning for better monorepo management - Version Bump: Official release of v0.1.0-alpha.5 with updated package versions across workspace
- Release Workflow: Removed redundant custom GitHub Pages workflow in favor of GitHubβs native pages-build-deployment action
- CNAME Configuration: Maintained custom domain setup for
docs.matimo.dev - Package Documentation: Added comprehensive README documentation to core, slack, and gmail packages
Notes
- Documentation now uses Slate theme for better compatibility with GitHub Pages
- All workspace packages updated with consistent versioning
- Simplified GitHub Actions workflow reduces maintenance and improves reliability
v0.1.0-alpha.4
Packaging restructure, Matimo CLI, independent tools package publishing, and docs
Released: February 10, 2026
Whatβs New
- Monorepo packaging: repository updated to a workspace layout. Core packages are split under
packages/and publishable as separate npm packages. - Matimo CLI: cli operations for list, search, install, help within Matimo eco-system.
- CI publish update: GitHub Actions updated to publish workspace packages via
pnpm -r publishso non-private workspace packages are released together. - Tools packages: Tool YAML and assets live under
package/<provider-name>folders and are published as separate npm packages with in@matimo/<provider-name> - Examples & docs: Updated examples and docs to reflect packaging changes and improved quick-start guidance.
- Build & test fixes: Ensured
pnpm buildandpnpm testrun across workspace packages.
Notes
- The release workflow now publishes all non-private workspace packages (filterable if needed).
v0.1.0-alpha.3
Slack integration suite, standardized error handling, improved test coverage, and comprehensive documentation
Released: February 5, 2026
Whatβs New
Slack Integration Suite
- 16+ Slack tools across messaging, channel management, user queries, and topic management
- Real OAuth2 integration with Slack workspace testing
- Complete examples for all integration patterns
- Comprehensive Slack API coverage: send messages, list/manage channels, set topics, list users, and more
Error Handling & Quality
- Standardized MatimoError throughout SDK with machine-readable error codes
- Consistent error structure across all executors and decorators
- Error codes:
INVALID_SCHEMA,FILE_NOT_FOUND,EXECUTION_FAILED,TOOL_NOT_FOUND,INVALID_PARAMETER - Proper error context without exposing sensitive data
Testing Improvements
- Mocked HTTP tests - Removed real network calls from test suite
- 14 HTTP executor test cases with mocked axios responses
- 410 tests across 23 test suites with 100% pass rate
- Deterministic, fast test execution with no external dependencies
Examples & Documentation
- Examples directory renamed from
langchaintotools- better reflects all three patterns - Comprehensive examples README - 300+ lines covering all integration patterns with code examples
- Three integration patterns documented: Factory (direct), Decorator (class-based), LangChain (AI agents)
- Tool reference tables for Slack and Gmail tools
- Pattern comparison matrix and learning path
- Configuration guides for Slack, Gmail, and OpenAI setup
Package Improvements
- Examples package now uses published matimo (
^0.1.0-alpha.3) instead of local path - Examples are now portable and work without building the SDK locally
- Proper version constraints for all dependencies
Whatβs Improved from Alpha.2
- Slack tools set
- Unified error handling prevents silent failures
- Test suite no longer makes real HTTP calls
- Better developer experience with comprehensive examples
- Documentation aligned with actual SDK capabilities
Installation
npm install matimo@0.1.0-alpha.3
pnpm add matimo@0.1.0-alpha.3
Quick Start - Three Integration Patterns
1. Factory Pattern (Direct SDK Usage)
const matimo = await MatimoInstance.init('./tools');
const result = await matimo.execute('slack-send-message', {
channel: '#general',
message: 'Hello from Matimo!',
});
2. Decorator Pattern (Class-Based)
@tool('slack-send-message')
async sendMessage(channel: string, message: string) {
// Auto-executed via Matimo
}
3. LangChain Integration (AI Agents)
const tools = matimo.listTools()
.map(t => ({
type: 'function',
function: { name: t.name, description: t.description, ... }
}));
const response = await llm.invoke(messages, { tools });
Tools Included
- Slack (16+ tools): Send messages, manage channels, list topics, manage users, etc.
- Gmail (5 tools): Send, list, get, draft, delete messages
- Utilities: Calculator, echo, HTTP client
Documentation
- Installation & Setup
- Quick Start
- Examples Guide - All three patterns with detailed walkthrough
- SDK Patterns
- OAuth2 Guide
- API Reference
Known Limitations
This is an alpha release. Not recommended for production without thorough testing.
See Roadmap for future features (REST API, MCP server, Python SDK, rate limiting).
Contributing
| Contributing Guide | Report Issues |
v0.1.0-alpha.2
Improved alpha.1 release - Better npm workflow, fixed exports, accurate feature descriptions
Released: February 4, 2026
Whatβs Improved
Release & Distribution
- Improved npm publish workflow configuration (pre-releases currently publish under default βlatestβ dist-tag)
- Replaced deprecated GitHub Actions (softprops/action-gh-release@v2)
- Proper semantic versioning for release titles
- Fixed broken documentation links in releases
Package & Exports
- Explicit package exports for main and MCP modules
- Accurate npm description (reflects current Phase 1 scope)
- Proper Node.js module resolution
v0.1.0-alpha.1
First alpha release - Core OAuth2, tool execution, and SDK patterns
Released: February 3, 2026
Whatβs New
OAuth2 Multi-Provider Support
- OAuth2 handler with token injection
- Providers: Google (Gmail), GitHub, Slack
- Provider YAML configuration
- Automatic token injection into requests
Tool System
- YAML/JSON tool definitions with Zod validation
- Command executor (shell commands with templating)
- HTTP executor (REST APIs with OAuth2)
- Provider definition system
- Tool discovery and filtering
SDK Patterns
- Factory pattern:
const m = await matimo.init('./tools'); m.execute(toolName, params) - Decorator pattern:
@tool('calculator')for class-based usage - Tool discovery, filtering, and search
- Full TypeScript support with strict types
Tools Included
- Gmail (5 tools): send, list, get, draft, delete
- Utilities: calculator, echo, HTTP client
- Provider configs: Google, GitHub, Slack
Installation
npm install matimo@0.1.0-alpha.1
pnpm add matimo@0.1.0-alpha.1
Quick Start
import { matimo } from 'matimo';
const m = await matimo.init('./tools');
const result = await m.execute('calculator', {
operation: 'add',
a: 5,
b: 3,
});
Documentation
Known Limitations
This is an alpha release. Not recommended for production without thorough testing.
See Roadmap for future features.
Contributing
| Contributing Guide | Report Issues |