Skip to main content

Mini tools

Code-level extensions that give Finch new abilities

A mini tool is a small program that gives Finch new gear.

It's an npm-style TypeScript package, discovered and loaded by Finch from the filesystem, running in a plugin host process separate from the main process. A mini tool can contribute agent tools, Composer toolbar buttons, standalone session containers, skills, and MCP servers to Finch.

Terminology: the product surface consistently says "mini tool." The public type names in the SDK are MiniToolContext and the rest of the MiniTool* family, exactly equivalent to the older Extension* naming. This doc series uses "mini tool" throughout.

What's in scope

A mini tool canA mini tool cannot
Register agent tools so the model can call external servicesCall Electron APIs or Finch internals directly
Add buttons and menus to the Composer toolbarRender custom HTML pages (Canvas windows excepted)
Show native Finch dialogs and forms to collect inputRead or write the user's regular chat sessions
Create and manage its own session containers and sessionsAccess another mini tool's sessions, secrets, or storage
Sign in to third-party services via OAuth and proxy authorized requestsObtain the raw OAuth access token
Provide or consume capabilities shared with other mini toolsBypass manifest declarations to use unauthorized capabilities

Typical scenarios

ScenarioApproachKey capability
Third-party service integration — blogging, task systems, cloud storageOne agent tool with an action parameter + OAuth loginctx.tools, ctx.oauth
External platform bot — WeChat, Feishu, Telegram messagingAn inbox container + one session per contactctx.sessions, containers
Vertical assistant — legal assistant, travel concierge, code reviewerAn assistant container + agentProfile personaContainers, agentProfiles
Composer quick actions — switch branch, switch mode, pick a templateComposerAction button + dynamic menuctx.composerActions
Multi-agent orchestration — break down tasks, run in parallel, aggregate resultsMain tool creates child sessions and waits for resultsSession Loop
Plugging into the MCP ecosystem — reuse an existing MCP serverDeclare mcpServers + register the transport at runtimemcp.client capability
Desktop widgets — a desktop pet, a floating timerCanvas floating windowctx.ui.createCanvasWindow
Packaging knowledge and process — teach the agent a specific methodologyShip skills alongside the packagecontributes.skills

Mini tools vs. Skills

Mini toolSkill
What it isExecutable codeA Markdown instruction document
SolvesThings the agent can't do (call an API, open a window, create sessions)Things the agent doesn't know how to do (a process, a convention, a methodology)
DeliveryAn npm package, needs installing and enablingA SKILL.md directory
Choose whenYou need network, files, UI, accounts, or sessionsYou just need to give the model a reliable way of doing something

A mini tool can bundle skills inside its package and combine both — see Skills.

Overall architecture

Three key points:

  • Mini tools run in a separate process — a crash or a hang doesn't take down the Finch main process.
  • Every capability is exposed through a single entry point, ctx — there's no other channel to call into Finch.
  • Mini tools never import each other directly; they only cooperate through capabilities.

Developer guide map

Read in order to go from zero to published, or jump directly to the section you need.

SectionContents
QuickstartMinimal directory layout, manifest, entry code, three hard rules, install & enable
CompositionAgent tool design rules, interaction/service capabilities, bundled skills
Lifecycle & capability registrationFull lifecycle, static declaration vs. dynamic registration, capability cooperation
MCP integrationWhen to choose MCP, the two-layer design, secret management
Standardized UIToast / dialog / form selection, ComposerAction, menus, modals
Accounts, settings & OAuth loginfinch.settings, API keys, the two OAuth paths
Session containersThe inbox / assistant modes, agentProfile, container settings menu
Session LoopCreating sessions, sending messages, getting results, Planner → Worker → Writer orchestration
Debugging, installing & publishingInstall locations, debug workflow, common pitfalls
ctx & manifest referenceQuick reference for ctx capabilities and manifest fields
Icon guidelinesThe entry icon (icon.png) and UI icons (IconRef)
Publishing to the communityPackaging, publishing to npm, submitting to the official community catalog

We strongly recommend building mini tools with Finch's built-in finch-mini-tool-creator skill: just describe what you need in natural language, and Finch helps with the project structure, manifest, implementation, build, and install checks. Before you start developing, it's worth refreshing the mini tool manual in the toolbox to get the latest capability list — and generally, feel free to just ask Finch directly rather than relying only on the docs.