Docs / Developer Guide / Features

Features & Capabilities

A deep dive into the platform's major feature areas — integrations, skill authoring, browser automation, file attachments, and media embeds.

Integrations

Vellum integrates with third-party services via OAuth2, each exposed as a bundled skill with its own set of tools.

The unified messaging layer provides platform-agnostic tools (messaging_send, messaging_read, messaging_search) that delegate to provider adapters for Gmail, Slack, and Telegram. Platform-specific tools (e.g. gmail_archive, slack_add_reaction) extend beyond the generic interface.

Connect via the Settings UI or the integration_connect HTTP endpoint. OAuth2 tokens are stored in the credential vault — the LLM never sees raw tokens. Telegram uses a bot token (not OAuth).

Dynamic Skill Authoring

The assistant can create, test, and persist new skills at runtime when no existing tool covers a user's need.

  1. Evaluate — drafts a TypeScript snippet, tests in a sandbox via evaluate_typescript_code. Iterates until it passes.
  2. Persist — writes the skill to ~/.vellum/workspace/skills/<id>/ via scaffold_managed_skill.
  3. Load — calls skill_load to activate the new skill.
  4. Delete — removes via delete_managed_skill.
ToolRiskDescription
evaluate_typescript_codeHighRun a TypeScript snippet in a sandbox
scaffold_managed_skillHighWrite a managed skill with SKILL.md frontmatter
delete_managed_skillHighRemove a managed skill directory and index entry

All authoring tools require explicit user approval. Skills can declare child relationships via the includes frontmatter field. Managed skills appear in the macOS Settings UI.

Browser

Web browsing is provided by the bundled browser skill. Activate via /browser or let the agent load it automatically.

ToolDescription
browser_navigateNavigate to a URL
browser_snapshotList interactive elements
browser_screenshotTake a visual screenshot
browser_clickClick an element
browser_typeType text into an input
browser_press_keyPress a keyboard key
browser_wait_forWait for a condition
browser_extractExtract page text content
browser_fill_credentialFill a stored credential into a form field
browser_closeClose the browser page

All browser tools are auto-allowed by default. browser_navigate with allow_private_network=true is elevated to high-risk.

Attachments

The assistant attaches files and images to replies, delivered across three channels:

  • Desktop — inline base64 in SSE events; macOS app renders thumbnails
  • Telegram — gateway delivers via sendPhoto/sendDocument (20 MB limit)
  • HTTP APIGET /v1/assistants/:id/messages returns metadata; GET /v1/assistants/:assistantId/attachments/:attachmentId returns full payload

Sources: <vellum-attachment> directives in response text, or auto-converted from tool output. Limit: 100 MB per attachment.

Inline Media Embeds

The desktop app renders inline previews for images and video URLs (YouTube, Vimeo, Loom).

  • Videos use ephemeral webview storage — no cookies persist between sessions
  • Videos require click to play; nothing auto-plays
  • Images are lazy-loaded
  • Video webviews are torn down when scrolled offscreen

Controlled via ui.mediaEmbeds in ~/.vellum/workspace/config.json.

SettingDefaultDescription
enabledtrueGlobal toggle for all inline media embeds
videoAllowlistDomains["youtube.com", ...]Domains allowed to render video embeds
enabledSincetimestampOnly messages after this date show embeds