ViteHub is still experimental. Expect bugs and breaking changes.
Official capabilities
Choose an official Capability by what the Agent needs to do.
ViteHub exports its built-in Capabilities from @vite-hub/agent/capabilities.
Choose a Capability by what the Agent needs to do. Each linked page shows how to configure it, what the Agent receives, and how to verify it.
server/agents/support.ts
import {
access,
blob,
browser,
chat,
chatSummary,
title,
db,
email,
fetch,
git,
gmail,
inputCommands,
kv,
llmGate,
llmRoute,
mcp,
memory,
openapi,
otlp,
papercuts,
progressSummary,
rateLimit,
repositoryHost,
repositoryHostContext,
sandbox,
schedule,
skills,
subagents,
transcribe,
usage,
cost,
diagnostics,
webSearch,
workspaceShell,
} from 'vite-hub/agent/capabilities'
Catalog
Invocation
| Ability | Capability | Use it when |
|---|---|---|
| Invocation access | access() | Narrow chat admission or Workspace access from trusted invocation identity. |
| Chat behavior | chat() | Start Agent Invocations from chat messages and manage Chat History. |
| Input commands | inputCommands() | Transform command-shaped user input before the Agent runs. |
| Subagents | subagents() | Delegate bounded work to named Agent Definitions through tools. |
Workspace
| Ability | Capability | Use it when |
|---|---|---|
| Browser automation | browser() | A Provider Agent needs headless browser guidance and the agent-browser CLI is installed. |
| Workspace files | workspaceShell() | Inspect or edit Workspace files, or run configured Workspace commands. |
| Git source history | git() | The Agent needs bounded Git source-history inspection or local Workspace Session git state selection. |
| Skills file | skills() | The Agent requires a Workspace skill file at invocation time. |
| Durable memory | memory() | The Agent needs scoped durable records across invocations. |
Runtime primitives
| Ability | Capability | Use it when |
|---|---|---|
| KV storage | kv() | The Agent needs scoped key-value read or edit tools. |
| Blob storage | blob() | The Agent needs scoped object read or edit tools. |
| Database | db() | The Agent needs guarded SQL query, schema, or mutation tools. |
email() | Send authorized plain-text messages through the configured Email primitive. | |
| Sandbox execution | sandbox() | The Agent may run an allowlisted executable in an isolated runtime. |
| Schedules | schedule() | The Agent declares scheduled invocations or manages Runtime Schedules through tools. |
| OTLP telemetry | otlp() | Live Agent Invocation events and completed traces should be exported to an OpenTelemetry receiver. |
| Operational diagnostics | diagnostics() | Invocation outcomes and scoped runtime resource observations should go to an application-owned reporter. |
External context
| Ability | Capability | Use it when |
|---|---|---|
| Repository host | repositoryHost() | The Agent needs provider-hosted repository, Change Request, issue, comment, check, or status data through a configured Repository Host client. |
| Repository host context | repositoryHostContext() | Read issue or Change Request data identified by a trigger or host. |
| MCP servers | mcp() | Add tools from external MCP servers to the Agent. |
| Web search | webSearch() | The Agent needs model web search or normalized web search/read tools. |
| Fetch tools | fetch() | The Agent needs named HTTP tools for developer-approved endpoints. |
| OpenAPI tools | openapi() | The Agent needs a selected OpenAPI operation catalog exposed as bounded HTTP tools or a generated Capability CLI. |
| Transcription | transcribe() | Turn audio input into text before model execution. |
| Gmail | gmail() | Search Gmail or create unsent drafts through structured tools. |
Decisions and output
| Ability | Capability | Use it when |
|---|---|---|
| LLM routing | llmRoute() | Choose one developer-defined route with a model before the invocation. |
| LLM gate | llmGate() | Allow or reject a request with a model before the invocation. |
| Rate limit | rateLimit() | Consume a trusted invocation budget before the Agent runs. |
| Title | title() | Generate a title for Agent output, finish extensions, or Channel threads. |
| Chat summary | chatSummary() | Replace a summary command with a conversation summary. |
| Progress summary | progressSummary() | Summarize current reasoning and tool activity while an Agent streams. |
| Papercut reports | papercuts() | Report small runtime or developer-experience problems to application code. |
| Usage | usage() | Request provider usage metadata and expose a normalized Agent Usage Record. |
| Cost | cost() | Add exact and display-ready USD cost to Agent Usage Records. |