Skip to main content
The Tool Hub is where integrations live. Every tool — first-party or one you wrote — runs hosted on tools.runtools.ai, resolves its credentials server-side, and is callable the same way whether a person, a script, or an agent makes the call. It’s one registry with three visibility levels: public tools appear in the Marketplace, org tools are installable across your organization, and private tools stay with whoever created them.

Marketplace

Use the Marketplace to discover public tools, install them for your account, and then attach them to agents or execute them directly.
In the dashboard, open Tool Hub to switch between your custom tools, the Marketplace, and installed tools.

Credential Resolution

When executing a tool, Runtools fills credentials in this order: OAuth-enabled tools use Connected Apps:
If you are building a product where each customer connects their own tools, use Hosted Connect instead. Connected Apps are for the authenticated Runtools user or org. Hosted Connect is for product users such as atlas + user_123 + gmail.
When a provider has multiple connected accounts, Tool Hub uses the default account automatically. To run against a specific connected account, pass a human-readable selector such as an email or username:
API-key tools can store encrypted credentials on the installed tool:

Execute a Tool

Responses are normalized:

Build your own

Any API becomes a tool with defineTool() — a name, a JSON schema for its inputs, and an execute:
tools/customer-api.ts
Your execute runs in an isolated Deno sandbox: you can import npm:/node: packages and call any public API, but Bun-runtime builtins (import { SQL } from 'bun') don’t work and secrets arrive as the credentials argument — never from the environment. The full contract, plus credentials and OAuth, is in Custom Tools. Deploy, then choose who can see it:

SDK Methods

Best Practices

Connected Apps avoid manual token handling and refresh automatically. Use the provider default for normal runs, or pass oauth.account / --account when a specific email or username should be used.
If your end users are not Runtools users, create Hosted Connect sessions and run tools with credentialScope: 'end_user' plus endUser.appId and endUser.externalUserId.
Store credentials on the installed tool, pass one-off credentials, or map credential fields to named secrets with credentialOverrides.
Run runtools tool exec before adding a tool to an agent definition.