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

Run Modes

Three ways to start a Claude Code session with Infa CLI: interactive, automated local, and remote cloud runs.

Infa CLI supports three distinct ways to run Claude Code sessions. Each mode suits a different workflow.

Copy link
Comparison

InteractiveAutomated localRemote / cloud
Triggerinfa session startPOST /api/sessions/runWeb UI queues a run
HTTP server neededNoYes (infa preview)Yes (infa preview)
Git branch createdNoYesYes
Hooks writtenNoYesYes
Supabase run recordNoBest-effortFull
Auth requiredNoOptionalYes
Board requiredNoOptionalYes

Copy link
1. Interactive session

The simplest mode. Spawns a single claude remote-control process and streams its output directly to your terminal. No HTTP server, no database, no branch management.

infa session start # uses current directory
infa session start ~/my-project # or a specific path

The target directory must contain a .claude/ folder (i.e. be a Claude Code project).

◆  Claude Session
   Starting remote-control session for: /Users/you/my-project
◆  Press Ctrl+C to stop

Claude prints a session URL to stdout once ready. Press Ctrl+C to stop.

info icon
No run tracking
Interactive sessions are not recorded in Supabase. Use the HTTP server modes if you need run history on your board.

Copy link
2. Automated local run

Start the preview server first, then trigger a run via the HTTP API. Infa will create a git branch, write hooks to .claude/settings.local.json, and spawn Claude with the run's environment variables.

1
Start the preview server
infa preview
2
Trigger an automated run
curl -X POST http://localhost:7100/api/sessions/run \
-H "Content-Type: application/json" \
-d '{"repoPath": "/path/to/repo", "prompt": "Refactor the auth module"}'
3
Monitor the session
curl http://localhost:7100/api/sessions

Returns status, session URL, branch name, and run ID for each active session.

What happens internally:

  1. A git branch is created: feat/run_{runId}
  2. git checkout main && git pull is run first
  3. Hooks are written to .claude/settings.local.json (see Hooks & Agents)
  4. Claude is spawned with INFA_RUN_ID, INFA_RUN_TOKEN, and INFA_PAPER_ID set
  5. Hooks are deleted when the session ends

Copy link
3. Remote / cloud run

The fully automated mode. A run is queued from the Infa web UI (or via the Supabase runs table), and the local CLI picks it up automatically via Supabase Realtime.

Requirements: authenticated + board connected + infa preview running.

Flow:

Infa web UI
    │  INSERT into runs (status='queued')
    ▼
Supabase Realtime
    │  fires postgres_changes event
    ▼
infa preview (local)
    │  receives the run + its run_configuration
    ├─ git checkout {base_branch} + git pull
    ├─ git create branch feat/run_{runId}
    ├─ write .claude/settings.local.json (hooks)
    └─ spawn claude remote-control
           env: INFA_RUN_ID, INFA_RUN_TOKEN, INFA_PAPER_ID

The CLI subscribes as soon as infa preview starts, as long as Supabase credentials and a valid auth token are available. Each incoming run is filtered by user_id — you only receive runs belonging to your account.

Run status updates (running → completed / failed / cancelled) are written back to the runs table in real time.

info icon
Realtime subscription starts automatically
You do not need to do anything extra. Run infa preview and any run queued from the web UI will execute on your machine.

Copy link
Stopping a session

For sessions managed by the HTTP server (modes 2 and 3):

curl -X POST http://localhost:7100/api/sessions/stop \
-H "Content-Type: application/json" \
-d '{"repoPath": "/path/to/repo"}'

The server sends SIGINT first, then SIGKILL after 5 seconds if the process hasn't exited.

For interactive sessions (infa session start), press Ctrl+C.

Copy link
Next steps

  • Hooks & Agents — what gets written to .claude/settings.local.json during automated runs
  • CLI Reference

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

PreviousConnect a Board
NextHooks & Agents