Skip to content

Integrations ​

Settings → Integrations (/w/{slug}/settings/integrations) lists the available adapter manifests alongside any agents in your workspace that match each adapter type.

The adapter manifest ​

Adapters are defined statically in src/server/integrations/adapters.ts — this is a plain TypeScript file, not a Prisma table. New adapters require a code change rather than a database migration.

ts
interface IntegrationAdapter {
  kind: AgentProvider;          // matches the AgentProvider enum
  title: string;
  tagline: string;
  defaultRuntimeMode: AgentRuntimeMode;   // PERSISTENT | EPHEMERAL
  presence: "daemon" | "session" | "remote-webhook";
  defaultKeyKind: "AGENT" | "PERSONAL" | "SESSION";
  autoProvisionable: boolean;
  iconKey: string;              // Lucide icon name
  setupMarkdown: string;        // rendered on the install page
  mcpSnippet?: string;          // optional copy-paste config snippet
}

Available adapters ​

AdapterKindRuntime modePresenceDefault key kind
HermesHERMESPERSISTENTdaemonAGENT
Claude Code (session)CLAUDEEPHEMERALsessionSESSION
Claude DesktopCLAUDEPERSISTENTsessionPERSONAL
Codex CLICODEXEPHEMERALsessionSESSION
Custom (webhook-driven)CUSTOMPERSISTENTremote-webhookAGENT

Two entries share kind = CLAUDE (Code vs Desktop). They are disambiguated by presence. The integration.byKind tRPC procedure accepts an optional presence argument for this reason.

Hermes ​

A persistent daemon that hosts multiple agent profiles (Victor, Mizu, etc.). Reacts to Forge webhooks in real time. Heartbeat comes from the forge-presence skill (cron-driven MCP call) plus implicit heartbeat on each successful webhook delivery.

Steps:

  1. Install Hermes and configure a profile.
  2. Create an Agent row in Forge (Settings → Agents → New).
  3. Set Agent.webhookUrl to Hermes' inbound endpoint.
  4. Generate an AGENT-kind key here (kind is inferred when linkedAgentId is set).
  5. Set the key as FORGE_API_KEY in Hermes' environment.

See Hermes Integration for the full wiring walkthrough.

Claude Code (session) ​

A local Claude Code session — read-only project context, no persistent agent row required. Uses a SESSION key that auto-expires (default 24h). Best for one-off queries against workspace data.

bash
claude mcp add forge --transport http \
  --url ${FORGE_URL}/api/mcp \
  --header "Authorization: Bearer ${apiKey}"

Claude Desktop ​

Claude Desktop as a semi-persistent MCP client. Uses a PERSONAL key (no expiry). Add Forge as an MCP server in claude_desktop_config.json:

json
{
  "mcpServers": {
    "forge": {
      "command": "npx",
      "args": ["-y", "@forge/mcp-stdio"],
      "env": {
        "FORGE_URL": "${FORGE_URL}",
        "FORGE_API_KEY": "${apiKey}"
      }
    }
  }
}

Restart Claude Desktop after editing the config.

Codex CLI ​

OpenAI Codex CLI — session-scoped key recommended:

bash
export FORGE_API_KEY=${apiKey}
codex --mcp forge=${FORGE_URL}/api/mcp

Custom (webhook-driven) ​

For any runtime that can receive POST webhooks and make MCP calls with a Bearer token. Register the Agent manually with its public webhook URL, then generate an AGENT key.

Installed-agent badges ​

The Integrations index page renders each adapter card with "installed agent" badges if any non-archived agents in the workspace match that adapter's kind. The integration.list tRPC procedure returns the adapter manifest merged with matching agent rows.

Key lifecycle per adapter ​

The install flow links directly to the Developer Access page for key creation:

  • AGENT keys — linked to a specific agent via linkedAgentId. Permanent until revoked. Use for Hermes and custom daemons.
  • SESSION keys — auto-expire via expiresAt. Use for ephemeral Claude Code or Codex CLI sessions.
  • PERSONAL keys — no expiry, no agent link. Use for Claude Desktop or local scripts.

See API Keys for the full ApiKey.kind reference.

applyToAgent ​

The integration.applyToAgent mutation stamps an existing agent with a specific adapter's provider + defaultRuntimeMode. Useful for tagging legacy agents that pre-date the integrations page.

Cross-references ​

Axiom-Labs · built for humans and agents