What is Infa
Infa Chrome Extension
How to use and install our Chrome Extension
Community
Browse community design systems
Release Notes
Featuring the latest changes to keep you up-to-date
Research Program
Participate in shaping the future of Infa
SOC 2 Type II Compliance Badge
Enterprise Ready
SOC 2 Type II certified for enterprise-level security and compliance
EventsLearnPricing
Sign up for free

Feedback

Share your feedback

Close
Anonymous submissions are auto-posted to #feedback channel. You can also share directly in Slack.

Need help?

Reach out to contact@infa.ai or see docs

Navigation
Search...
⌘ K
Focus sentinel
Close

Search Documentation

PressESCto close
Focus sentinel
Infa Documentation
  • General Information
    • Boards
    • Components
      • Main Components Vs Component Views
      • Component Tagging
      • Component Anatomy
    • Labels
    • Teams
    • Authentication
    • Permissions
      • Inviting People to Teams
      • Inviting People to Boards
    • Billing & Subscription
      • Managing Subscription
      • Promo Code Activation
    • Data Import, Export & Sync
      • Local vs. Cloud Boards
  • App Blocks
    • Building App Blocks
  • Chrome Extension
    • Deep Links
    • Using Labels
    • Updating the Extension
  • Integrations
    • MCP Server
    • Claude Code Plugin
    • External API
    • Progressive Web App
    • Figma Plugin
    • Coda Pack
    • Overview
    • Managing Runs
    • Board Agents
    • Overview
    • Infa Capture
    • Installation
    • Authentication
    • Connect a Board
    • Run Modes
    • Hooks & Agents
    • File Sync
    • CLI Reference
Switch to Light theme
Switch to Dark theme
TermsPrivacyChat with Us
  1. Docs
  2. Integrations

CLI Reference

Full command and flag reference for the Infa CLI.

Copy link
Commands

Copy link
infa preview · infa server · infa start

Start the local HTTP + WebSocket server. All three names are aliases.

infa preview [options]
infa server [options]
infa start [options]

Runs on port 7100 by default (override with PORT=7101 infa preview).

On startup the server:

  • Discovers all .md and .mdx files under the current directory
  • Scans for repos with a .claude/ folder for session management
  • Connects to Supabase and subscribes to queued runs (if authenticated + board set)
  • Opens the browser to infa.ai/b/{boardId} or infa.ai/editor

Options:

FlagDescription
--token <t>Inject an OAuth access token (in-memory only, not saved to disk)
--refresh-token <t>Inject an OAuth refresh token (used alongside --token)
--scan-dir <path>Override the directory scanned for repos with .claude/ (defaults to current directory)

Copy link
infa auth

Authenticate with your Infa account via OAuth 2.1 PKCE.

infa auth

Opens a browser window to infa.ai. After login and approval, tokens are saved to .infa/config.yml. The flow times out after 5 minutes.

Subcommands:

SubcommandDescription
infa auth statusShow current auth status and User ID. Refreshes an expired token if a refresh token is available.
infa auth resetClear stored tokens. Preserves clientId.

Copy link
infa board

Interactively select a board and save its ID to .infa/config.yml.

infa board

Requires authentication. Fetches your boards from Infa, presents a selector, and saves the chosen boardId.


Copy link
infa sync

Check sync status between local files and cloud Papers.

infa sync

Requires authentication and a board to be connected.

Subcommands:

SubcommandDescription
infa sync push <file>Push local file to cloud. Creates a Paper if none exists, updates frontmatter with paper_id.
infa sync pull <file>Pull cloud Paper content to local file. Overwrites local content.

Copy link
infa session start

Spawn a single Claude Code remote-control session and stream output to the terminal. No HTTP server is started.

infa session start [path]

path defaults to the current directory. The target must contain a .claude/ folder.

This mode does not create a git branch, write hooks, or record a run in Supabase. For tracked runs, use the HTTP API.


Copy link
HTTP API

When infa preview is running, these endpoints are available at http://localhost:7100:

Copy link
Files

MethodEndpointDescription
GET/api/filesList all discovered .md/.mdx files
GET/api/file?path=<rel>Read file content (relative path)
POST/api/fileWrite file content
GET/api/configGet server config (port, boardId, repoRoot)
POST/api/config/boardSet boardId
DELETE/api/config/boardDisconnect board

Copy link
Sessions

MethodEndpointBodyDescription
GET/api/sessions—List all active sessions
GET/api/repos—List repos with .claude/
POST/api/repos/scan—Re-scan for repos
POST/api/sessions/start{ repoPath }Start a manual interactive session
POST/api/sessions/stop{ repoPath }Stop a session
POST/api/sessions/restart{ repoPath }Stop then restart a session
POST/api/sessions/run{ repoPath, prompt? }Start an automated local run (creates branch + hooks)
POST/api/auth/session{ accessToken, refreshToken? }Hot-inject auth tokens into the running server

Copy link
Sync (requires boardId)

MethodEndpointDescription
GET/api/sync/statusGet sync status for all files
POST/api/sync/pushPush a file to cloud ({ path })
POST/api/sync/pullPull a file from cloud ({ path })

Copy link
WebSocket

ws://localhost:7100/ws

Emits real-time events:

  • mirror_ready — server is fully started
  • files_updated — file list changed
  • sessions_updated — session state changed (start/stop/URL captured)
  • sync_status — sync state changed

Copy link
Config file

.infa/config.yml in the current working directory:

auth:
clientId: 9941cdcd-af9c-4040-959f-32e883d8043d
accessToken: eyJ...
refreshToken: ...
expiresAt: "2026-04-20T12:00:00.000Z"
tokenType: bearer
scope: email profile
userId: <your-user-id>
boardId: b_3A4gbNTb
warning icon
Never commit this file
It contains your OAuth tokens. Add .infa/ to your .gitignore.

Copy link
Environment variables

VariableDefaultDescription
PORT7100HTTP server port
SUPABASE_URL—Supabase project URL (enables run persistence)
SUPABASE_ANON_KEY—Supabase anon key
VITE_SUPABASE_URL—Alias for SUPABASE_URL
VITE_SUPABASE_ANON_KEY—Alias for SUPABASE_ANON_KEY
INFA_OAUTH_CLIENT_ID—Override the default OAuth client ID

Copy link
Notes

  • infa session start tracks runs in Supabase when authenticated and a board is connected. The Claude session URL is captured from stdout and stored on the run record when available.
  • infa session start does not create a git branch or write hooks — for full automated behaviour use POST /api/sessions/run via the preview server.

Content Feedback

Feedback on selected content

Close
Anonymous submissions are auto-posted to #feedback channel. You can also share directly in Slack.

Need help?

Reach out to contact@infa.ai or see docs

PreviousFile Sync