Documentation Index
Fetch the complete documentation index at: https://docs.useterse.ai/llms.txt
Use this file to discover all available pages before exploring further.
Skills define what integrations your workflow can interact with. Each skill exposes a set of tools that the agent can call (via agentic loops) or that you can call deterministically (via agent.tools.*).
In TypeScript, terse generate writes a single Skills object in src/terse.generated.ts. Import it and call the nested factory for the integration you want (for example Skills.github({ repos: [...] })). Built-in capabilities like Skills.web() and Skills.imageEdit() are documented in their sections below.
GitHub
Read-only access to repositories.
skills: [Skills.github({ repos: [Repos.MyOrg.MyRepo] })]
| Tool | Description | Access |
|---|
searchGitHubCode | Semantic code search across repositories | Read |
grepGitHubCode | Exact-match code search (grep-like) | Read |
readGitHubFile | Read file contents | Read |
listGitHubDirectory | List directory contents | Read |
listGitHubPullRequests | List pull requests | Read |
listGitHubCommits | List commits | Read |
summarizeGitHubPullRequestDiff | Summarize PR changes | Read |
Slack
Send messages and read conversations.
skills: [Skills.slack({ channel: SlackChannel.Engineering })]
| Tool | Description | Access |
|---|
slack_send_message | Send to a channel, an existing DM (channelId), or a member 1:1 (slackUserId) | Write |
slack_list_users | List workspace users | Read |
slack_list_channels | List channels | Read |
slack_read_conversation | Read conversation history | Read |
For slack_send_message, pass either channelId (a public or private channel id, or an existing DM channel id) or slackUserId (a member id, U…). Terse opens the DM if needed. If you pass both, channelId wins and the message goes there. After terse generate, use SlackChannel.*.channelId and SlackUser.*.userId from src/terse.generated.ts instead of hand-copying ids.
Linear
Create, update, and search issues.
skills: [Skills.linear()]
| Tool | Description | Access |
|---|
linear_search_ticket | Search tickets | Read |
linear_get_teams | List teams | Read |
linear_get_states | Get issue states | Read |
linear_get_labels | Get available labels | Read |
linear_get_projects | List projects | Read |
linear_get_users | List team members | Read |
linear_read_ticket | Read ticket details | Read |
linear_create_ticket | Create a new ticket | Write |
linear_update_ticket | Update a ticket | Write |
linear_add_comment | Add a comment to a ticket | Write |
Attio
Query and manage CRM records.
skills: [Skills.attio({ object: AttioObject.People })]
| Tool | Description | Access |
|---|
attio_list_objects | List available objects | Read |
attio_query_records | Query records | Read |
attio_upsert_record | Create or update a record | Write |
Notion
Read and write databases and pages. Optionally scope to specific databases or pages.
import { NotionDatabase, NotionPage, Skills } from "./terse.generated"
skills: [Skills.notion({ databases: [NotionDatabase.Roadmap], pages: [NotionPage.OnCallRunbook] })]
databases and pages are both optional. Omit them to give the model access to every database and page the integration can reach.
| Tool | Description | Access |
|---|
notion_get_schema | Get database schema | Read |
notion_query_database | Query a database | Read |
notion_query_page | Query page content | Read |
notion_list_users | List workspace users | Read |
notion_create_or_update_database_row | Create or update database rows | Write |
notion_create_or_update_page | Create or update standalone pages | Write |
notion_modify_blocks | Modify page blocks | Write |
Gmail
Send emails (auto-send, no human review).
| Tool | Description | Access |
|---|
gmail_send_email | Send emails or reply to threads | Write |
Gmail Draft
Create draft emails for a human to review and send manually.
skills: [Skills.gmailDraft()]
| Tool | Description | Access |
|---|
gmail_create_draft | Create draft emails for human review | Write |
Snowflake
Read-only SQL query execution.
skills: [Skills.snowflake()]
| Tool | Description | Access |
|---|
snowflakeExplainQuery | Explain query execution plan | Read |
snowflakeExecuteQuery | Execute SELECT queries (requires approval) | Read |
Datadog
Read-only access to logs and RUM events. Optionally scope to specific log indexes.
import { DatadogIndex, Skills } from "./terse.generated"
skills: [Skills.datadog({ indexes: [DatadogIndex.Main] })]
indexes is optional. Omit it to search across every index the integration can reach.
| Tool | Description | Access |
|---|
searchDatadogLogs | Search logs | Read |
listRumEvents | List RUM events | Read |
searchRumEvents | Search RUM events | Read |
aggregateRumEvents | Aggregate RUM event data | Read |
PostHog
Read-only access to product analytics.
import { PosthogProject, Skills } from "./terse.generated"
skills: [Skills.posthog({ project: PosthogProject.MyTeam })]
| Tool | Description | Access |
|---|
searchPosthogLogs | Search logs | Read |
searchPosthogSessions | Search sessions | Read |
getPosthogSessionEvents | Get events for a session | Read |
searchPosthogEvents | Search events | Read |
LaunchDarkly
Read-only access to feature flags.
import { LaunchDarklyProject, Skills } from "./terse.generated"
skills: [Skills.launchDarkly({ project: LaunchDarklyProject.MyFlags, environmentKeys: ["production"] })]
| Tool | Description | Access |
|---|
listLaunchDarklyFlags | List feature flags | Read |
getLaunchDarklyFlagDetails | Get flag details | Read |
WorkOS
Read-only access to users and organizations.
skills: [Skills.workOS()]
| Tool | Description | Access |
|---|
listWorkOSUsers | List users | Read |
listWorkOSOrganizations | List organizations | Read |
getWorkOSUser | Get user details | Read |
Web (built-in)
Web search and research tools available to all workflows.
| Tool | Description | Access |
|---|
web_search | Search the web | Read |
web_extract | Extract and process web page content | Read |
web_research | Research and synthesize web information | Read |
Image Edit (built-in)
Edit and generate images.
skills: [Skills.imageEdit()]
| Tool | Description | Access |
|---|
image_edit | Edit and manipulate images | Write |