Skip to main content
The rt.tools.* methods shown below are planned but not yet implemented in the SDK. For now, use the REST API directly (tools.runtools.ai/v1/tools/*) or the CLI (runtools tool list/install/exec).

Listing Tools

import { RunTools } from '@runtools/sdk';

const rt = new RunTools({ apiKey: process.env.RUNTOOLS_API_KEY });

// List installed tools
const tools = await rt.tools.list();

// List marketplace tools
const marketplace = await rt.marketplace.list();

// Filter by category
const emailTools = await rt.marketplace.list({ 
  category: 'communication' 
});

// Search
const results = await rt.marketplace.search('send notification');

Installing Tools

// Install from marketplace
await rt.tools.install('gmail');
await rt.tools.install('slack');
await rt.tools.install('github');
await rt.tools.install('discord');
await rt.tools.install('google-calendar');
await rt.tools.install('google-sheets');
await rt.tools.install('outlook');
await rt.tools.install('x-twitter');
await rt.tools.install('linkedin');
await rt.tools.install('telegram');

// Check if installed
const isInstalled = await rt.tools.isInstalled('gmail');

Configuring Tools

Tools can be configured with manual credentials or OAuth:
// Manual credentials
await rt.tools.configure('github', {
  token: process.env.GITHUB_TOKEN,
});

// OAuth flow (opens browser, connects account)
await rt.tools.configureOAuth('gmail');
await rt.tools.configureOAuth('slack');
await rt.tools.configureOAuth('google-calendar');
OAuth is the recommended approach for official tools. Once connected, tokens are automatically managed and refreshed. See OAuth & Connected Apps.

Executing Tools

// Send email via Gmail
const result = await rt.tools.execute('gmail', {
  action: 'send_email',
  params: {
    to: 'user@example.com',
    subject: 'Hello from RunTools',
    body: 'This email was sent via the Tools API!',
  },
});

// Post to Slack
await rt.tools.execute('slack', {
  action: 'post_message',
  params: {
    channel: '#general',
    text: 'Hello from RunTools!',
  },
});

// Create GitHub issue
await rt.tools.execute('github', {
  action: 'create_issue',
  params: {
    repo: 'myorg/myrepo',
    title: 'Bug report',
    body: 'Description of the bug...',
  },
});

Tool Actions

Each tool supports different actions. Here are the key ones:

Gmail (gmail)

ActionDescription
send_emailSend an email
list_emailsList emails with optional search query
get_emailGet full email by ID
replyReply to an email thread
searchSearch emails

GitHub (github)

ActionDescription
list_reposList user’s repositories
get_repoGet repository details
create_repoCreate a new repository
search_reposSearch GitHub repositories
list_issuesList issues in a repo
get_issueGet a specific issue
create_issueCreate a new issue
commentComment on an issue or PR
list_prsList pull requests
create_prCreate a pull request

Slack (slack)

ActionDescription
post_messagePost to a channel
send_dmSend a direct message
list_channelsList workspace channels
read_messagesRead channel messages
searchSearch messages
set_topicSet a channel’s topic
list_usersList workspace users

Google Calendar (google-calendar)

ActionDescription
list_eventsList upcoming events
create_eventCreate a new event
update_eventUpdate an existing event
delete_eventDelete an event
find_free_timeFind available time slots

Google Sheets (google-sheets)

ActionDescription
read_rangeRead data from a cell range
write_rangeWrite data to a cell range
append_rowsAppend rows to end of sheet
create_spreadsheetCreate a new spreadsheet
list_sheetsList sheets in a spreadsheet

Discord (discord)

ActionDescription
list_guildsList user’s servers
list_channelsList channels in a server
send_messageSend a message
read_messagesRead recent messages
create_channelCreate a new channel

Outlook (outlook)

ActionDescription
send_emailSend an email
list_emailsList inbox emails
get_emailGet email by ID
list_eventsList calendar events
create_eventCreate a calendar event

X / Twitter (x-twitter)

ActionDescription
post_tweetPost a tweet
search_tweetsSearch tweets
get_userGet user profile
get_timelineGet user’s timeline
like_tweetLike a tweet

LinkedIn (linkedin)

ActionDescription
get_profileGet authenticated user’s profile
create_postCreate a LinkedIn post
get_networkGet connection count and network info

Telegram (telegram)

ActionDescription
send_messageSend a text message
send_photoSend a photo
get_updatesGet recent updates

Uninstalling Tools

await rt.tools.uninstall('gmail');

Types

import type {
  Tool,
  ToolConfig,
  ToolExecuteResult,
  MarketplaceTool,
} from '@runtools/sdk';