Open Source · MIT Licensed · v0.2.0

Define AI tools once.
Use them everywhere.

A universal, framework-agnostic tools SDK. Write tools once in clean YAML and seamlessly integrate with LangChain, OpenAI Agents, Claude, CrewAI, and any custom AI framework - zero duplication.

Get Started in 5min → View on GitHub ↗
MIT License TypeScript Python Zod Validation OAuth2 npm ↗ PyPI ↗
slack-tool.yaml
name: slack_send_message
description: Post message to Slack channel
parameters:
  channel:
    type: string
    required: true
  text:
    type: string
    required: true
execution:
  type: http
  method: POST
  url: https://slack.com/api/chat.postMessage
  headers:
    Authorization: Bearer {SLACK_BOT_TOKEN}
use-tool.ts
import { MatimoInstance } from 'matimo';

const matimo = await MatimoInstance.init();
// Works with LangChain, OpenAI, CrewAI...
const tools = matimo.listTools()
  .map(t => toLangChainSchema(t));
// ✓ Same tools, any framework
0
Tool Duplicates
10
Tool Providers
3
Integration Patterns
5 min
To First Tool
Matimo OSS in 30 seconds

Governance is now on by default

Every tool call is governed the same way in both the TypeScript and Python SDKs. Available now on npm and PyPI.

Secure by default

HTTP DELETE tools and shell-command tools now ask a human for approval on every call. Human-in-the-loop approval applies to every tool at or above your risk threshold, not only to a fixed list.

Approval you control

Set an approval callback per instance or per call. With no callback registered, the call fails closed. The MCP server asks the human through elicitation, so a model cannot approve its own call.

Tamper-evident audit log

A hash-chained JSONL audit log with secret redaction. A verify function shows any edit or deletion. The log format and execution events are identical in TypeScript and Python.

One rulebook, two SDKs

The Python SDK is at parity with TypeScript: the same approval rules, the same policy checks, a shared conformance suite, and a new Agno integration. 4,400+ tests across both.

Skills on demand

Pluggable skill paths and meta-tools that let an agent search for a skill and load only the sections it needs, instead of pulling everything into context.

Upgrading from 0.1.x

Some defaults changed, so read the migration guide first. Teams that need the old behaviour can set the legacy governance mode while they migrate.

Powerful features for serious AI builders

Define Once

Write tools in simple YAML. No duplicating schemas across frameworks. One definition powering infinite integrations.

Use Everywhere

Plug into LangChain, OpenAI Agents, Claude, CrewAI, and any custom framework. No lock-in. No rewrites when you switch.

Pre-Built Tool Providers

129 tools across 10 providers: Slack, Gmail, GitHub, Notion, HubSpot, PostgreSQL, Mailchimp, Twilio, Microsoft, and Bruno, plus a governed 449-tool Composio catalog. Add your own in minutes.

OAuth2 Ready

Provider-agnostic OAuth2 support built in. Google, GitHub, Slack, and any service - secure auth without the boilerplate.

Type-Safe

Full TypeScript support with Zod-powered runtime validation. Catch parameter errors at build time, not in production at 2am.

Framework Agnostic

Works with every AI framework. Migrate from LangChain to CrewAI without rewriting a single tool definition. Future-proof your tooling.

Three ways to integrate

Choose the pattern that fits your architecture. All three use the same tool definitions.

1

Factory Pattern

Simple and direct. Load tools and execute by name. Perfect for CLI tools and quick prototypes.

const m = await MatimoInstance.init();
await m.execute('slack-send', params);
2

Decorator Pattern

Class-based, idiomatic OOP. Use the @tool decorator for natural object-oriented execution.

@tool('slack-send')
async notifyTeam(msg) {
  // Auto-executed
}
3

Framework Integration

Full LangChain, OpenAI, or CrewAI integration. Convert Matimo tools to framework schemas automatically.

const tools = matimo
  .listTools()
  .map(t => toLangChain(t));

Growing library of pre-built tools

Every tool follows the same YAML pattern. Start with ours, add your own in minutes.

💬
Slack
Messages, channels, users
📧
Gmail
Send, read, labels
🐙
GitHub
Issues, PRs, code
📝
Notion
Pages, databases
🐘
PostgreSQL
Query, insert, update
🧡
HubSpot
CRM, contacts, deals
📨
Mailchimp
Campaigns, lists
📱
Twilio
SMS, voice, verify
🪟
Microsoft 365
Mail, files, Teams, calendar
🧪
Bruno
API collections, import, validate

Governing agents built outside Matimo? Matimo AGDK (open source, v0.1.0, on PyPI) pairs with Matimo Gateway, our LLM proxy and router, coming soon.

Matimo Gateway and AGDK →

One tool definition.
Any AI framework.

The AI framework space moves fast. LangChain, CrewAI, custom agents - switching frameworks typically means rewriting tool integration logic from scratch. Matimo OSS is designed to remove that duplication by keeping your tool definitions in one place.

Start Building → Join Discord ↗
✓ No Tool Duplication - Define once, reuse everywhere across every framework
✓ Framework Freedom - Migrate between AI frameworks without rewriting tools
✓ Faster Development - Pre-built tools for common integrations from day one
✓ Type Safe - TypeScript + Zod validation catches errors early in CI
✓ Community Tools - Growing ecosystem of @matimo/* packages on npm
✓ Enterprise Ready - OAuth2, error handling, retry logic built-in by default
✓ Open Source - MIT licensed, fully transparent, community-owned
Matimo Governance

Need Matimo OSS at organisation scale?

Matimo OSS covers individual and small team use. Matimo Governance adds the controls that compliance, security, and IT teams require: SSO, centralised policy registry, immutable audit log export, multi-tenant isolation, and a dedicated SLA.

Request Matimo Governance → Learn more ↗
✓ SSO / SAML / OIDC integration
✓ Centralised policy registry with versioning
✓ Immutable audit log export (SIEM-ready)
✓ Multi-tenant isolation & role hierarchy
✓ Dedicated support + SLA

Unify your AI tools today.
It's free. It's open source.

Join the community building with Matimo OSS. Get started in 5 minutes - no account needed.

Quick Start → Visit matimo.dev ↗ 💬 Discord