Documentation

Everything you need to know to master PorkiCoder — including Terminal Overlord for supervising Claude Code, Codex, and Grok Build, Consult MCP for bounded second opinions, Worktree Fan-Out, Agent Mode, keyboard shortcuts, and full model support.

The Marquee Feature

Consult MCP — A Second Opinion, Already Wired In

Open Claude Code, Codex, or Grok Build in a PorkiCoder terminal and it gets six focused consult tools. Three use local subscription CLIs — consult_claude_code, consult_codex, and consult_grok_build — while consult_kimi3, consult_gemini, and consult_gpt5 remain explicitly approved API calls. The MCP wiring is automatic; local workers use the CLI installation and login already on your Mac.

Why a different lineage? Because re-asking the same model the same question is theater — it doesn't reconsider, it re-confirms, echoing its own training right back at you with extra confidence. Picture Claude several turns deep into a stubborn bug, the same fix failing the same way. Instead of you opening another tab to play telephone, Claude can sanity-check a refactor, break a multi-turn debugging stalemate, fact-check a claim, get UI & design help, do deep research, or reason over a large context — and get back an answer it didn't already believe. You stay in flow; Claude breaks the stalemate.

consult_claude_code — Claude Code subscription
Launches your locally installed Claude Code CLI with its existing subscription login. Prefer it from a Codex or Grok Build master when you want an Anthropic-lineage review of bounded context. You can pin the exact claude-fable-5 runtime with max effort instead of inheriting mutable CLI defaults; this optional consult consumes your Claude subscription quota and never falls back to a paid API. After updating PorkiCoder, open a fresh master terminal session so its cached MCP schema includes Fable 5. Stream activity resets a five-minute inactivity watchdog, progress updates appear every 30 seconds when the client supports them, and a separate 30-minute ceiling stops a genuinely stuck review.
consult_codex — ChatGPT/Codex subscription
Launches your local Codex CLI in a read-only sandbox and returns only its advisory answer. Prefer it from Claude Code or Grok Build when you want an OpenAI-lineage implementation or review opinion.
consult_grok_build — Grok Build subscription
Launches your signed-in Grok Build CLI with tools denied. Prefer it from Claude Code or Codex when you want a third-lineage challenge. It receives the same bounded question and optional context, with no repository, shell, web, MCP, plugin, or persistent-session access.
consult_kimi3 — Kimi K3 API
An explicitly approved API-backed Kimi K3 second opinion for long-context or code-heavy questions. It uses PorkiCoder's authenticated proxy when available or your own supported Kimi platform key.
consult_gemini — Gemini 3.1 Pro API
An explicitly approved Google API consult for UI, design, fact-checking, research, and large-context reasoning. This is separate from the tightly capped Gemini 3.5 Flash-Lite terminal-naming request.
consult_gpt5 — GPT-5.5 API
An explicitly approved maximum-reasoning API consult for the hardest questions. It is metered separately from local subscription quota and never starts without the paid-call consent field.
Automatic MCP Wiring — Your CLI Logins Stay Yours
The bundled porkicoder-consult MCP server writes itself idempotently into Claude Code's ~/.claude.json, Codex's ~/.codex/config.toml, and Grok Build's ~/.grok/config.toml. It manages only its own command, arguments, and bridge environment, preserves unrelated servers and settings, and respects an intentionally disabled Grok entry. Codex entries are compared by meaning, so harmless TOML quoting, whitespace, comments, key order, or a trailing argument-array comma do not cause a write. Start a fresh master session after PorkiCoder launches, after installing a worker CLI, or after changing its login. Local workers require their own installed CLI and active subscription login; PorkiCoder never receives or copies those subscription credentials.
Codex MCP Startup Rounds in 2.17.13
The verified Codex CLI 0.146.0 startup-round hotfix gives each thread-scoped MCP startup refresh an optional startupId. Codex can retire a superseded round and ignore its late terminal events instead of reporting them as failures of the current round; legacy identifier-less notifications retain their established behavior. PorkiCoder does not bundle, install, or replace the Codex executable, so this behavior requires the separately installed Codex 0.146.0 startup-round hotfix. PorkiCoder's own semantic no-op registration behavior remains unchanged.
Stable Codex MCP Registration in 2.17.10
If Codex's managed entry is already equivalent, PorkiCoder leaves ~/.codex/config.toml byte-for-byte untouched so it does not trigger a live all-server MCP refresh. A real path or bridge change still updates the entry through a private mode-0600, collision-resistant temporary file and preserves user-owned settings. This prevents refreshes caused by PorkiCoder's writer; Codex may still refresh its own built-in MCP services after Codex-owned settings changes. After a genuine update, start a fresh Codex session.
Codex Login Compatibility in 2.17.2
Codex may report the exact successful Logged in using ChatGPT status on stderr instead of stdout. PorkiCoder accepts that exact zero-exit status from either stream, but still rejects API-key login, extra banner output, near matches, and failed exits. If Codex still reports that subscription authentication is required, run codex login status, then restart the master session.
Two Deliberately Separate Consent and Billing Paths
Local CLI calls require explicit subscriptionConsent and consume the selected worker's subscription quota, not PorkiCoder API credits. API-backed calls require separate explicit paidApiConsent and use the configured proxy/BYOK route. Neither consent carries across runs, and a local worker never falls back to an API model.
Nothing to Learn — Just Ask
Ask in plain English and name the worker: "Use my Codex subscription for a second opinion on this diff", "Ask Grok Build to challenge this design", or "Ask Claude Code to review this bounded excerpt." Include the relevant diff, code, error, or design because local workers cannot inspect the active repository.
Baseten Scope in 2.17.1
The former Baseten-backed Kimi and GLM consult tools remain retired. Kimi and GLM are also no longer choices in the main Chat, Agent, or OpenCode model catalog; their managed Baseten-backed paths remain available to independent fan-out workers and the bundled HogCode assistant. Read the updated Baseten integration guide for that separate scope.

Worktree Fan-Out UPDATED in v2.9.2

Worktree Fan-Out lets Claude Code, Codex, Grok Build, or opencode take one task prompt and run it across 2-5 isolated git worktrees from a PorkiCoder-managed terminal. Each candidate gets its own branch, cwd, model run, status, diff, and cleanup path, while your source worktree stays unchanged until a winner patch is applied. If terminal fan-out starts from a dirty source worktree, PorkiCoder creates a visible local checkpoint commit first so candidates branch from a clean, reviewable base.

Run Parallel Candidates
Start with fanout_run and a prompt. By default, PorkiCoder rotates workers across GLM-5.2, Kimi K2.7 Code, and Codex high effort, then repeats as needed. You can choose one model for every worker, pass an explicit model mix, set a worker count, stagger launches, and cap the shared fan-out budget.
Inspect and Compare
Use fanout_status to watch progress, fanout_list to find recent runs, fanout_diff to compare candidate changes, and fanout_open_candidate to inspect a candidate workspace directly in PorkiCoder. Friendly selectors like latest, c1, A, and winner keep agents from passing raw IDs around.
Judge, Apply, and Clean Up
fanout_judge asks an evaluator model to review candidate diffs and optional verification output. In recommend-only mode it stores a winner for follow-up; with explicit confirmation, fanout_apply_winner applies that patch back to the source worktree as unstaged changes. Loser worktrees are discarded by default after patch snapshots are saved, and fanout_discard remains available when you want to remove a specific candidate manually.
Dirty Worktree Checkpoints
Checkpoint commits are intentionally conservative: PorkiCoder refuses likely secrets, detached HEADs, in-progress Git operations, and dirty submodules unless the agent explicitly opts into those cases. The checkpoint summary records the before and after commit IDs, and failed setup attempts roll back the checkpoint when HEAD is still on the generated commit.
Available Across Claude Code, Codex, Grok Build, and opencode
Fan-out tools are exposed through the bundled porkicoder-consult MCP server in Claude Code, Codex, Grok Build, and opencode. PorkiCoder keeps the loopback bridge credentials in a local 0600 token file while the app is running, so globally registered MCP sessions can create, inspect, judge, apply, and discard managed fan-out worktrees without per-terminal setup.

Built-in Terminal Skills UPDATED in v2.10.1

PorkiCoder now includes the core long-running workflow skills out of the box for terminal agents. Fresh installs get managed copies of big-deployment, full-hog-mode, feat-pig, and fix-bugs for Claude Code, Codex, and opencode without a separate skill repo clone.

Installed on Launch
On startup, PorkiCoder refreshes managed skill copies under ~/.claude/skills, ~/.codex/skills, ~/.agents/skills, and ~/.config/opencode/skills. Existing user-owned skill folders are left alone; only directories marked as PorkiCoder-managed are replaced.
Ready in Terminal Agents
Claude Code sees the normal Claude skill layout, Codex sees normal Codex skills, and opencode receives the bundled skill path plus generated terminal command adapters. The same skill names are available whether the user starts from a new PC or an existing setup.
Full-Hog Mode Review Bench
full-hog-mode now sends architecture and hard-design questions to GLM-5.2, visual and spatial UI work to Gemini, and bug finding/review to GLM-5.2 plus Kimi K2.7 Code in parallel via PorkiCoder fan-out. The final gate runs GLM-5.2, Kimi K2.7 Code, and the local code-review pass before ship.

HogCode CLI READ-ONLY ASSISTANT in v2.16.0

HogCode is bundled with PorkiCoder. Open a fresh integrated terminal and type the bare command hogcode to enter its persistent local shell. There is no global npm install, system Node dependency, or shell-profile change.

command -v hogcode hogcode

The first command should print an app-owned path ending in hogcode-terminal-launcher-v1/bin/hogcode. The second should remain at a hogcode> prompt until you enter /exit, send EOF, or interrupt an idle prompt.

Built-in commands
Enter /help for the shell guide. Local commands include /sessions, /models, /doctor, /usage, and /exit.
Private, self-repairing launcher
PorkiCoder installs the launcher atomically under its private user-data directory and puts that directory first on PATH only for integrated terminals. It never changes your global PATH and does not appear in unrelated external terminals.
Sign in and run the assistant
Run hogcode login once and approve the short device code in your browser. Then enter an ordinary prompt in the interactive shell, or use hogcode -p "explain this project". HogCode v2.13.2 uses PorkiCoder's managed Kimi K2.7 Code route with the read-only Read, Glob, and Grep tools. Sessions and exact model usage are durable, and hogcode resume <session-id> -p "continue" resumes only when the account and durable boundary match.
Deliberately narrow production slice
The managed v2.13.2 route is read-only. It does not run shell commands or modify files, does not expose PorkiCoder's provider key, and never re-executes a logical request after an ambiguous provider result. Explicit BYO execution and finite local --budget-usd runs remain unavailable in this slice; server-side credit and owner-budget gates still apply.
If the command is not found
Restart PorkiCoder and open a new integrated terminal tab. Existing terminal sessions keep the environment they started with and will not receive the private launcher PATH retroactively.

Agent Mode — Claude Agent SDK + OpenCode

Agent Mode chooses its execution harness from the model you select. Claude Sonnet 5 (the default for new Agent sessions) and Claude Opus 4.8 run through the official @anthropic-ai/claude-agent-sdk. Gemini 3.5 Flash, Gemini 3.1 Pro, Grok 4.3, and GPT-5.5 run through OpenCode, with the selected PorkiCoder model sent explicitly on every turn. You choose the model; PorkiCoder chooses the matching harness.

Updated in v2.17.1: New Agent sessions start on Claude Sonnet 5 at Max effort. Legacy Kimi, GLM, and pseudo-OpenCode main-IDE preferences migrate to that default. Kimi and GLM are not retired globally: they remain available to independent fan-out workers and HogCode.

How It Works
Agent Mode runs a multi-step tool-use loop through the harness selected for your model:

1. You describe the task — "Refactor the auth module", "Add dark mode", "Fix the failing test". Plain English.

2. PorkiCoder selects the harness — Anthropic models use the Claude Agent SDK; Gemini, Grok, and GPT use OpenCode with the selected model fixed explicitly.

3. The agent plans and acts — The active harness reads and searches the project, runs tools, and streams progress while it works.

4. Edit/Write diff review — Claude SDK Edit/Write calls use PorkiCoder's blocking diff bridge. OpenCode Edit/Write calls use its awaited PorkiCoder plugin bridge. You can accept or reject the proposed content before those tool writes proceed.

5. Progress tracking — Toast-style cards show planning, tool calls, thinking when available, and completion events in real time.
Agent Tools
Read — Read any file in your project for context.

Glob — Find files by pattern (e.g., src/**/*.ts).

Grep — Search file contents with regex across your codebase.

Bash — Run shell commands: install packages, run tests, git operations, build steps.

WebSearch — Search the web for documentation, APIs, or error solutions.

WebFetch — Fetch content from URLs for context.

Sub-Agent — Spawn child agents to handle subtasks in parallel.

Edit / Write — File modifications routed through human-in-the-loop diff review.
Human-in-the-Loop Boundary
Claude SDK Edit/Write calls go through a blocking, serialized diff-review bridge with a five-minute timeout. OpenCode's own Edit/Write tools go through an awaited PorkiCoder plugin bridge. This boundary does not sandbox OpenCode's Bash tool: shell commands can write files outside the review modal, so treat an OpenCode Agent like the external agent it is.
Autopilot Mode NEW in v1.5.6
Trust the agent on routine work? Toggle the shield-check button in the chat header to enable Autopilot Mode. Supported Claude SDK and OpenCode Edit/Write paths apply automatically without the diff preview modal, while each change still surfaces in the activity toast with a ⚡ icon. The toggle persists across restarts. The OpenCode Bash boundary above is unchanged.
Resumable Sessions
Agent sessions are persisted per thread ID. You can close PorkiCoder, reopen it, and resume a multi-step agent task exactly where you left off — no lost context, no repeated work.
Project Instructions (porki.md)
Drop a porki.md file in your project root and the agent will load it as persistent project-level instructions. Use it to describe your codebase conventions, architecture, key files, and preferences — the agent reads it before every task so it always has the right context.
Preview Error Auto-Send
When your Live Preview hits a runtime error, PorkiCoder automatically sends the error to the AI so it can diagnose and fix the issue — no more copy-pasting stack traces.
Pro Tip
Agent Mode works best when you give it clear, scoped tasks. For broad refactors, the agent will use sub-agents to parallelize work. You can also attach elements (images, files) directly into the chat for richer context alongside whatever the agent discovers on its own.

Publish-to-Web

Premium users can publish any project as a live site at <name>.porkicoder.com — directly from the IDE with one click.

How It Works
1. Choose a subdomain — Pick a name and your site goes live at <name>.porkicoder.com.

2. One-click deploy — PorkiCoder uploads your project's public files to the server automatically.

3. Instant updates — Re-publish anytime to push changes live.
Details
Premium feature — Available to all paid subscribers at no extra cost.

Static sites — Supports HTML, CSS, JS, and static assets. Perfect for portfolios, demos, and prototypes.

Automatic provisioning — Subdomain routing and HTTPS are handled for you.
Pro Tip
Combine Publish-to-Web with Agent Mode — ask the agent to build a landing page, then publish it live without leaving PorkiCoder.

Live Preview

Live Preview lets you see your project running directly inside PorkiCoder without leaving the editor. Click the preview button to launch your project on a local port (19100–19110) and start working visually.

Smart Project Detection
PorkiCoder automatically detects your project type and picks the best preview strategy:

Vite projects — Uses Vite's native dev server with full HMR support.

Dev command projects — Next.js, Nuxt, CRA, and others run via npm run dev with auto port detection.

Static sites — Served with a built-in HTTP server and WebSocket-based live reload.
Key Features
Auto-reload — File changes trigger instant browser refresh, debounced for rapid multi-file saves from the AI agent.

Framework-aware — Detects package managers (npm, yarn, pnpm, bun) and respects each framework's conventions.

Graceful fallback — If Vite or a dev command fails, PorkiCoder falls back to static serving automatically.

Zero config — No setup required. Open a project, hit preview, and it works.
Pro Tip
Live Preview works seamlessly with Agent Mode. When the agent modifies files, the preview auto-reloads so you can see changes in real time without switching windows.

Terminal Overlord UPDATED in v2.17.15

Terminal Overlord supervises Claude Code, Codex, or Grok Build inside PorkiCoder. At a normal shell prompt, type the exact command /overlord and press Enter, then launch the provider with any provider-supported flags. PorkiCoder intercepts the command locally, shows ARMED — WAITING FOR AGENT, and attaches when a supported agent becomes the terminal's foreground process.

HOGSPHERE Supervision
The retro pixel cyber-pig HUD appears inside the terminal with the detected provider, LOCAL RULES engine, current state, action count, a click-to-open LOG, and an immediate STOP button. After a successful autonomous write, a short speech bubble such as “Approved: edit nginx.conf” confirms what happened.

Version 2.17.15 removes Gemini from the approval loop. Supported prompts are recognized, classified, and encoded entirely inside PorkiCoder. Overlord needs no model key, proxy request, token budget, network round trip, or model usage charge.

PorkiCoder waits for a stable, fully rendered live xterm viewport and recognizes coherent one-time menus, explicit y/n confirmations, and screens that explicitly ask for Enter. The local encoder can emit only a verified visible selection, yes/no response, or Enter; it cannot invent arbitrary terminal text or general navigation.

Overlord is popup-only. Ordinary agent prose, transcript questions, interrupted-status text, progress output, and Claude Code's primary composer are not actionable prompts. HOGSPHERE never invents, restates, or submits a task in the primary composer; it acts only on a coherent visible menu, an explicit y/n confirmation, or a screen that explicitly asks for Enter.

Trust mode approves the recognized one-time action regardless of command contents. If the same prompt also offers an “always allow” or broader-permission choice, PorkiCoder selects the one-time option. A durable request signature prevents an open dialog from being approved twice when its footer or spinner repaints.

Type /overlord again or press STOP to disable supervision. Any normal human keystroke immediately cancels an in-flight approval check before it can reach the terminal.
Foreground and Safety Boundary
PorkiCoder verifies the macOS foreground process group before activation, on every heartbeat, and for every autonomous write. The write requires a fresh, single-use foreground lease followed by a new render-drained snapshot of the same prompt. It also rechecks the visible screen, output revision, scroll position, and human-input revision at the commit point. HOGSPHERE waits if the prompt changed, the provider is backgrounded, or an interactive child shell, editor, pager, or other tool owns the terminal.

Only the currently rendered live viewport is inspected. Scrolling away from the live bottom pauses supervision, so old scrollback cannot be mistaken for a current prompt.

Overlord is an explicit trust mode, not a command-risk reviewer. Once enabled, it does not inspect a recognized one-time action for destructive, production, credential, payment, publishing, release, force-push, reset, database, or workspace risk before approving it. Keep backups and use it only where that trust is appropriate. Unknown or ambiguous prompts, primary composers, and broader persistent-permission choices still require a human.
Privacy, Billing, and Limits
Overlord approval decisions stay on-device. The visible terminal viewport, recent input, and approval history are not sent to Gemini or another LLM. The rules inspect only the currently rendered live viewport.

Terminal snapshots and decisions are not stored in chat history. The approval LOG holds at most 32 successful actions for the current terminal session only; it is hidden by default and is not persisted. Local approval creates no model usage or model charge.

A session stops when its provider or terminal exits, an unknown prompt needs human judgment, 128 autonomous sends are reached, or 24 hours elapse.

Terminal REMOTE BETA in v2.17.9

PorkiCoder's built-in terminal supports up to 6 concurrent sessions — perfect for running multiple Claude Code instances, dev servers, and build tools side by side.

Host-side Controller Visibility in 2.17.19
Remote Workspaces now has two directional lists: Macs allowed to control this Mac shows controllers authorized to reach the current host, while Macs this Mac can control shows hosts available from the current controller. An inbound controller reports whether it is connected over Direct or Relay transport, its active and detached session counts, and any repositories in use. The linked-device button shows a live session-count badge and status tooltip even while the dialog is closed.

The host can revoke an individual controller or end every remote session immediately. These controls do not reduce the authority granted while a session is running: the remote process is a full shell running as the logged-in macOS user, and navigation roots are starting choices rather than a sandbox. Pair only Macs you trust.
Fullscreen Keyboard Focus in 2.17.12
After the fullscreen terminal layout finishes fitting, PorkiCoder returns keyboard focus to the active initialized terminal so typing resumes immediately. If the terminal panel was hidden during that relayout, focus is left alone instead of being moved into a hidden shell.
Relay-only Paired Macs in 2.17.18
A Mac paired through a manual invitation now appears in an always-visible Paired Macs section even when nearby discovery is unavailable. On the controller Mac, open Remote Workspaces, select the host's Connect button, choose a starting workspace and an installed launch preset, then open the remote terminal. Nearby Macs remains a separate opt-in list for unpaired local-network candidates.

Pairing is directional: pairing Work to Home allows Work to control Home, but does not automatically grant Home control of Work. Repeat pairing in the opposite direction only if that access is wanted. Navigation roots organize the starting-workspace picker; they do not confine the resulting shell. The remote process runs with the full authority of the logged-in macOS user.
Nearby Macs Preview in 2.17.17 (Opt-in)
PorkiCoder 2.17.17 can discover another signed-in Mac automatically, request one host approval, and open its remote terminal over an authenticated direct connection when the devices can reach each other. Signed directory identity, pinned keys, Noise, and a directional grant protect both direct and relayed sessions; only a reachability failure may fall back to the existing end-to-end encrypted relay. Direct discovery uses validated private or link-local IPv4/IPv6 endpoints rather than a hardcoded consumer address, while Macs on different networks continue through the relay.

The preview remains off by default in packaged builds. For the two-Mac validation run, quit PorkiCoder on both Macs and launch each installed app with open -a PorkiCoder --args --enable-nearby-transport-spike. Local terminals retain the emerald palette; remote terminals use white on black and show whether the active path is direct or relayed.
Nearby Transport Foundation in 2.17.16 (Internal)
PorkiCoder 2.17.16 packages a privacy-preserving Bonjour discovery and bounded local reachability spike for future Nearby Remote Workspaces validation. It is off by default in packaged builds and does not enable nearby pairing, direct terminal traffic, a Noise session, a directional grant, file access, or a PTY. Existing Remote Workspaces continues to use its end-to-end encrypted relay; the separately controlled internal flag exposes validation state only and never selects the LAN for terminal traffic.
Remote Workspace Dialog Visibility in 2.17.11
The linked-device pig, pairing invitation links, and incoming host-approval prompts now open the Remote Workspaces dialog above terminal-first and manually fullscreen terminals. The dialog no longer requires switching to IDE mode first, and opening it does not change the running terminal or workspace-view state.
Multi-Session Management
Each terminal session gets its own tab with a cyberpunk color palette (6 auto-assigned colors) and a colored left border strip for quick visual identification.

Activity indicators — Background tabs show a pulsing green dot when receiving output; turns amber 2 seconds after output stops; clears when the tab is focused.

Remote Workspaces beta — Click the linked-device icon beside + to pair another signed-in Mac and open one of its terminal workspaces. Hosting is off by default. On the host, enable hosting, choose one or more navigation roots for the starting-workspace picker, then create an invitation. Scan its QR code, open its porkicoder:// link, or enter it manually on the controller; compare the short phrase and approve on the host. The grant works only from that controller to that host. The dialog separates Macs allowed to control this Mac from Macs this Mac can control, and the linked-device button reports live inbound sessions.

Encrypted reconnect and host controls — Terminal input and output are end-to-end encrypted between the paired devices; the relay routes opaque frames. A disconnected controller can reconnect and replay up to 3 MiB of recent output for 12 hours. Sessions have a 24-hour ceiling and an eight-session per-device limit. Remote tabs have a fixed remote palette and connection state, while the host can end all sessions or revoke any device or grant. A remote terminal is a full shell running as the logged-in macOS user; navigation roots are starting choices, not a sandbox, so pair only devices you trust.

Ownership-checked terminal sessions — Every local and remote shell is routed through the main-process session broker. Each terminal handle belongs to one renderer window; write, resize, close, and directory requests are schema- and size-checked, and ownership moves explicitly when terminals detach or reattach.

Reliable tab close — Click a tab's close button and confirm to end that shell, clear its terminal output, and remove the tab. If other sessions remain, PorkiCoder activates a neighboring tab; closing the last one hides the terminal panel. Version 2.17.7 repairs a cleanup regression that could leave the tab and shell open. Closing is local and sends no path, output, or model request to a provider.

Live directory-named tabs — A new terminal tab starts with the basename of its authoritative launch directory, then follows the active shell's working directory after cd. The label updates in both the main and detached terminal windows and survives detach or reattach. No model request, API key, or naming queue is involved. Tabs that launch with a preset name are left alone.

Manual rename — Double-click any tab title to inline-edit the name. Only manual renames persist across sessions — automatic directory labels are recalculated, while a manual name always wins even as the shell changes directory.

Detection and limits — PorkiCoder reads the local shell's directory through bounded OS process inspection on macOS and Linux and accepts sanitized local OSC 7 reports from compatible shells. A nested or remote shell that does not report its directory may keep the last known local label. Lookup failures never change the shell's directory or terminal restart path; they affect only the tab label.

Quick Claude Code launchCmd+Shift+C creates a new named "claude" tab and starts the CLI automatically.

Quick OpenCode launch — The terminal button (Cmd+Shift+O) creates a new named "opencode" tab and starts the OpenCode TUI automatically.
Split View & Chat Bridge
Multi-Panel Split View — Toggle the split view button to show all terminals in a CSS grid (up to 3 columns). The active terminal is highlighted with its tab color. Click any panel to focus it.

Send to Chat — Captures the active terminal's recent output (or current selection) and pre-fills it as a code block in the chat input.

@terminal mention — Type @terminal in the chat input for autocomplete that injects the terminal buffer as inline context to the LLM.

Detach / Reattach — Pop any terminal into a separate window and bring it back. All features (split view, activity dots) work in detached windows too.
Terminal Keyboard Shortcuts
Cmd+1-9 — Switch to terminal tab 1–9 (when terminal is focused; switches models when chat is focused).

Cmd+Shift+[ / Cmd+Shift+] — Cycle to previous / next terminal tab.

Cmd+Shift+C — Quick-launch a new Claude Code session.

Cmd+Shift+O — Quick-launch a new OpenCode session.

Cmd+Shift+. — Toggle between the fullscreen terminal (terminal-first) and the classic IDE layout.
Editor — Cmd+K Inline Edit NEW in v1.8.0
Select code in the editor, press Cmd+K, describe the change in plain English, and the replacement streams in place from Gemini 3.5 Flash at minimal thinking by default. Esc mid-stream restores the original; Cmd+Z after the edit completes reverts the whole thing in one keystroke.

Settings → Cmd+K Inline Edit lets you choose Gemini 3.5 Flash or Claude Sonnet 5, choose live-replace vs diff-modal review mode, and set a line cap that auto-switches large selections to the diff modal. Retired Kimi and Claude Haiku preferences migrate to Gemini automatically.
Rock-Solid Lifecycle NEW in v1.5.8
A full reliability pass closed every race and leak we could find in the terminal controller: destroy now serializes with in-flight init/restart so closing a tab mid-startup can't crash or leak a PTY, restart preserves the original cwd after a project switch, the detached-window activity dot correctly decays from green to amber to idle, and the xterm readiness/cleanup paths no longer leak listeners on a destroy-during-init. If you ever saw a terminal freeze, spawn in the wrong folder, or leak when you closed a tab fast — that should all be gone.

Chat Mode vs Agent Mode

PorkiCoder has two modes, and Agent Mode is the default. Pick the right one for the task in front of you.

Agent Mode
Best for: Real work — multi-step tasks, multi-file edits, refactors, anything that needs to read and change files.

Claude Sonnet 5 and Opus 4.8 run through the Claude Agent SDK. Gemini 3.5 Flash, Gemini 3.1 Pro, Grok 4.3, and GPT-5.5 run through OpenCode. Claude and OpenCode Edit/Write calls support PorkiCoder's diff review; OpenCode Bash commands remain outside that boundary and can write directly.
Chat Mode
Best for: Quick questions and explanations — "what does this do?", a fast snippet, a one-off.

A lightweight, streaming Q&A lane with no file or tool access. Code comes back in normal code blocks with a Copy button. Need it applied? Switch to Agent Mode, then review the applicable Edit/Write changes.
Pro Tip
Stay in Agent Mode for almost everything — it's the default for a reason. Drop into Chat Mode when you just want a fast answer and don't need anything written to disk.

Keyboard Shortcuts

Master these shortcuts to navigate PorkiCoder like a pro:

  • CMD + M Toggle between Chat and Agent mode
  • CMD + 1 Switch chat to Grok 4.3
  • CMD + 2 Switch chat to Claude Opus 4.8
  • CMD + 3 Switch chat to Claude Sonnet 5
  • CMD + 4 Switch chat to Gemini 3.1 Pro
  • CMD + 5 Switch chat to Gemini 3.5 Flash
  • CMD + 6 Switch chat to GPT-5.5
  • CMD + N Start a new chat
  • CMD + W Toggle web search when supported by the current model
  • CMD + ↑ Increase through the visible effort levels
  • CMD + ↓ Decrease through the visible effort levels
  • CMD + SHIFT + C Quick-launch a new Claude Code terminal session
  • CMD + SHIFT + O Quick-launch a new OpenCode terminal session
  • CMD + SHIFT + . Toggle between the fullscreen terminal (terminal-first) and the classic IDE layout
  • CMD + SHIFT + [ Previous terminal tab
  • CMD + SHIFT + ] Next terminal tab
Web Search & Effort Controls
Use CMD + W to toggle web search when the current model exposes that control. Unsupported combinations leave the control hidden and the shortcut reports that search is unavailable.

Effort controls are model- and mode-specific. Claude Sonnet 5 and Opus 4.8 support Low, Medium, High, XHigh, and Max; new Agent sessions default to Sonnet 5 at Max. Non-Claude Agent choices run through OpenCode and hide PorkiCoder's effort selector. When effort bars are visible, use CMD + ↑ and CMD + ↓ to move through the enabled levels.

OpenCode Backend UPDATED in v2.17.1

PorkiCoder automatically drives the open-source OpenCode agent when you select Gemini, Grok, or GPT in Agent Mode. There is no longer a pseudo-model named “opencode” in the main selector: choose the model you want and PorkiCoder starts the correct harness with that model pinned explicitly.

Install opencode (brew install anomalyco/tap/opencode or npm i -g opencode-ai), then use the OpenCode terminal button or type opencode. The bundled provider uses PorkiCoder's server and visible credit balance on credit plans, separate from your consult allowance.

  • Four managed models: Gemini 3.5 Flash (default and lightweight), Gemini 3.1 Pro, Grok 4.3, and GPT‑5.5. Claude stays on the Claude Agent SDK; Kimi and GLM stay in independent fan-out and HogCode workflows.
  • Explicit Agent routing: the IDE sends the selected PorkiCoder provider/model pair on every Agent turn, so a mutable OpenCode default cannot silently change the requested model.
  • Edit/Write review: OpenCode's own Edit and Write tools pass through PorkiCoder's awaited accept/reject plugin bridge before they proceed.
  • Embedded terminals included: use the OpenCode terminal button or run opencode in any PorkiCoder terminal to get the same PorkiCoder provider automatically.
  • Claude skill compatibility: PorkiCoder mirrors valid Claude skills into an OpenCode-compatible temporary config when opencode needs stricter frontmatter, without modifying your real skill folders.
  • Gemini background model: bare OpenCode sessions, titles, summaries, and compaction default to the managed Gemini alias unless the user's project configuration overrides them.
  • BYO fallback: if the server proxy is unavailable, your own opencode auth login configuration is used instead.
Heads up: opencode's shell commands run outside PorkiCoder's sandbox
PorkiCoder gates opencode's file writes, but opencode's own Bash tool executes outside PorkiCoder's tool runtime — treat opencode as an external agent, the same trust level as running it standalone.

AI Model Support

PorkiCoder supports multiple AI providers and models, giving you the flexibility to choose the best tool for each task.

  • Claude Sonnet 5 DEFAULT in v2.17.1: New Agent sessions start on Sonnet 5 at Max effort through the Claude Agent SDK. Low, Medium, High, XHigh, and Max are available.
  • Claude Opus 4.8: Available in Chat and Agent Mode through Anthropic's native paths with Low through Max effort. The older Opus 4.5 entry remains available for Chat.
  • Gemini: Gemini 3.5 Flash and Gemini 3.1 Pro are available in the main picker. In Agent Mode, both use OpenCode with the requested model alias sent explicitly.
  • Grok 4.3 and GPT-5.5: Available in the main picker and routed through OpenCode in Agent Mode with explicit model selection.
  • Managed OpenCode catalog: Gemini 3.5 Flash, Gemini 3.1 Pro, Grok 4.3, and GPT‑5.5. Gemini is the default and lightweight model. See the OpenCode Backend section.
  • Kimi and GLM scope: Kimi K2.6, Kimi K2.7 Code, and GLM-5.2 are no longer in the main Chat, Agent, or OpenCode picker. Their independent native routes remain available to fan-out workers, and HogCode retains its managed Kimi K2.7 Code route.
  • Chat Mode: A fast, no-tools Q&A lane for quick questions and snippets on the models shown in the main picker.
  • Web Search and effort: Controls appear only when supported by the current model and mode; non-Claude Agent choices hide PorkiCoder's effort selector.
  • Quick Switching: Use CMD + 1 through CMD + 6 for Grok, Opus 4.8, Sonnet 5, Gemini Pro, Gemini Flash, and GPT-5.5 respectively.
Model Compatibility
Different models excel at different tasks. Experiment with various models to find what works best for your specific use case. Some models are faster, others are more accurate, and some handle specific programming languages better.

Credits & Pricing NEW in v2.2.0

PorkiCoder is Bring Your Own API Key — and that's still free. Credits are only for when you'd rather not manage keys: a prepaid balance that runs the models on developer-provided keys. 1 credit = $1 of developer-key model spend.

  • Basic Pig — $20/mo: 10 credits each month.
  • Full Hog — $200/mo: 150 credits each month.
  • Top-ups: add $25 / $50 / $100 of credits any time — top-up credits never expire.
  • opencode uses credits: server-funded opencode turns reserve and settle against this same balance on credit plans.
  • Your own keys are always free: when a request uses a key you configured in Settings, it costs zero credits.
Where to find it
Open Settings → Credits to see your balance and plan, subscribe to a plan, or buy a top-up. Claude in Agent Mode now runs on the Anthropic API and is metered like every other model — the integrated terminal still uses your own Claude Code subscription when you type claude there.

Getting Started

Before you can start coding with AI, you'll need to configure your API keys. PorkiCoder is a Bring Your Own API Key solution.

  • Open the Settings Modal (usually accessible from the menu or toolbar)
  • Add your API keys for the providers you want to use (Anthropic, Google, etc.)
  • You only pay a flat $20/month for the IDE
  • All API usage costs are directly between you and your provider - no markups!
Transparent Pricing
We charge a simple $20/month flat fee for the IDE. Your API usage is your own cost. This means you save 15-20% compared to other AI coding tools that markup your API costs. What you see on your provider's bill is what you pay - no hidden fees, ever.
Usage & Cost Tracking
Every request's token count and estimated USD cost is tracked per model, so you're never guessing what your providers are charging. Open the Settings modal to see your current month's usage and spend at a glance — handy for keeping BYOK costs in check across Claude, Gemini, Kimi, GLM, GPT, and Grok.

Tips & Best Practices

  • Stay in Agent Mode (the default) for most work. Claude and OpenCode Edit/Write tools support reviewable diffs; remember that OpenCode Bash can write outside that boundary.
  • Drop into Chat Mode for quick questions and snippets when you don't need anything written to disk.
  • Switch models frequently - different models have different strengths.
  • Enable web search (CMD + W) when the current model supports it and you need recent frameworks or documentation.
  • Use CMD + ↑ / ↓ to adjust effort when that control is visible — higher effort can be more thorough and more costly.
  • Always provide full context in your prompts for better results.
  • Review AI-generated changes before applying them to your codebase.
  • Keep your API keys secure and never share them.