PerplexiCode KiloA Kilo Code-style autonomous coding agent for Antigravity IDE and VS Code, powered by your Perplexity Pro / Max subscription. Plan, write, run and debug code with GPT-6.1 Sol, Claude Opus 5.5, Gemini 4 Argon, Grok 4.7 and 85 more Perplexity models. No API keys. Install · Features · Agents, Skills & Presets · Models · Modes · Commands · Settings · Build · FAQ
InstallExtension ID: From the Extensions view (Open VSX)Antigravity IDE, Cursor, Windsurf and VSCodium use Open VSX. Open the Extensions view (
One-line install from GitHub ReleasesmacOS / Linux — installs the latest release into Antigravity IDE:
Windows (PowerShell):
Other editors: add
The scripts download Manual install with the Antigravity CLIDownload
The CLI may print Install from the editor UIExtensions view ( After installing
Moving from PerplexiCode 1.x / 2.0Since 2.1.0 the extension has its own ID,
User settings Sign inRun PerplexiCode: Add Perplexity Account and pick one method:
Sessions are kept in the editor's SecretStorage. You can add several accounts; requests are spread across them with round-robin, least-used or failover-only rotation. Features
Screenshots
Screenshots are rendered from the test fixture ( 3.1: Agents, Skills & PresetsSet up subagents and skills from the UI and start common jobs in one click.
A preset sets the mode, subagent and prompt template ( Files are standard: subagents go to The same actions in the terminal:
3.0: headless core +
|
pcode CLI |
REPL with diff approvals and slash commands (/mode, /permissions, /compact, /resume …). Headless pcode -p "…" with --output-format text\|json\|stream-json for scripts and CI. |
| Claude Code compatible config | Reads .claude/settings.json (permissions and hooks), .claude/agents/*.md, skills and CLAUDE.md. Your existing .claude/ folder works as is, next to .perplexicode/. |
| Permissions | allow / ask / deny rules such as Bash(npm test:*) and Edit(src/**). Modes default, acceptEdits, plan and bypassPermissions. Built-in protection for .env, keys and .ssh, including through symlinks and cat .env. |
| Hooks | PreToolUse, PostToolUse, UserPromptSubmit, Stop, SubagentStop, SessionStart, SessionEnd. Exit code 2 blocks the action. JSON decisions are supported. Project hooks run only in trusted folders. |
| Verify before done | verify.command (for example npm test) runs before the task can finish, and a failing check sends the agent back to fix it. Each task ends with a status: verified, needs review, failed, blocked or no changes. |
| Subagents | new_task can delegate to your own agents. Each one has its own prompt, model and tool list, and the tool list is enforced. |
| Resume anywhere | Every IDE or CLI task writes a journal to ~/.perplexicode/sessions. pcode -c continues the last one. Commands that were cut off by a crash are flagged, and the agent checks the real state before re-running them. |
| Fewer round-trips | Up to 5 read-only tool calls from one answer run in one step. |
| Two transports | Your Perplexity Pro/Max web session, with account rotation (shared with the extension through PerplexiCode: Share Accounts with CLI or pcode login), or any OpenAI-compatible endpoint (--provider openai: Ollama, LM Studio, vLLM). |
git clone https://github.com/MRX7999/PerplexiCode-Kilo && cd PerplexiCode-Kilo
npm ci && npm run build && npm link # puts `pcode` on PATH
pcode login # paste the Cookie header (hidden input) or use --browser
pcode doctor
pcode -p "fix the failing test" --permission-mode acceptEdits --allowedTools "Bash(npm test:*)"
See docs/CORE-3.0.md for the full reference and examples/claude-code-compat for a working configuration.
Models
The model list matches the current Perplexity picker. It is loaded live from your account's model config, with a bundled snapshot (2026-10-28, 89 models) as a fallback.
| Model | Provider | Plan | Thinking |
|---|---|---|---|
| Best | Perplexity | Free | — |
| GPT-6.1 Sol | OpenAI | Pro | ✓ |
| GPT-6 Astra | OpenAI | Max | ✓ |
Gemini 4 Argon NEW |
Max | ✓ | |
| Gemini 3.8 Flash | Pro | ✓ | |
| Claude Sonnet 5.5 | Anthropic | Pro | ✓ |
| Claude Opus 5.5 | Anthropic | Max | ✓ |
| Claude Fable 5.1 | Anthropic | Max | ✓ |
| Kimi K3 | Moonshot AI | Pro | built-in |
| GLM 5.3 | Z.ai | Pro | built-in |
| Grok 4.7 | xAI | Pro | ✓ |
| Nemotron 3.5 Super VL | NVIDIA | Pro | — |
| More models (77) | Anthropic, OpenAI, Google, xAI, Perplexity Sonar… | Pro / Max | per model |
Max models unlock automatically for Max accounts. If a Max model is picked on a Pro-only account pool, the request falls back to Best. Override plan detection with perplexicodeKilo.subscriptionPlan if needed, and use PerplexiCode: Refresh Models and Quotas after Perplexity adds new models.
Modes
| Mode | Purpose | Tools |
|---|---|---|
| Code | Write, modify and refactor code | read, edit, command, modes |
| Architect | Plan and design before implementation | read, edit Markdown only, modes |
| Ask | Answers and explanations | read |
| Debug | Systematic diagnosis and fixes | read, edit, command, modes |
| Orchestrator | Split work into subtasks across modes | modes, subtasks |
| Review | Review local changes before you commit | read, command, modes |
Agent tools: read_file, list_files, search_files, list_code_definition_names, apply_diff, write_to_file, insert_content, execute_command, ask_followup_question, attempt_completion, switch_mode, new_task, update_todo_list.
Commands and shortcuts
| Command | macOS | Windows / Linux |
|---|---|---|
| PerplexiCode: Open Agent | Cmd+Alt+K |
Ctrl+Alt+K |
| PerplexiCode: New Task | Cmd+Alt+N |
Ctrl+Alt+N |
| PerplexiCode: Switch to Next Mode | Cmd+. |
Ctrl+. |
| PerplexiCode: Add Selection to Chat | Cmd+Shift+I |
Ctrl+Shift+I |
| PerplexiCode: Add to Context | Cmd+K Cmd+A |
Ctrl+K Ctrl+A |
| PerplexiCode: Explain / Fix / Improve Code | context menu, lightbulb | context menu, lightbulb |
| PerplexiCode: Explain Current File | Command Palette | Command Palette |
| PerplexiCode: Add Terminal Selection to Context | terminal context menu | terminal context menu |
| PerplexiCode: Generate Commit Message | Source Control title bar | Source Control title bar |
| PerplexiCode: Select Model / Mode | status bar | status bar |
| PerplexiCode: Task History · Settings · Open in Editor Tab | view title bar | view title bar |
| PerplexiCode: Add / Manage Accounts · Set Account Rotation Strategy · Refresh Models and Quotas | Command Palette | Command Palette |
Settings
All settings (click to expand)
| Setting | Default | Description |
|---|---|---|
perplexicodeKilo.defaultModel |
turbo (Best) |
Model for new tasks. |
perplexicodeKilo.subscriptionPlan |
auto |
Force pro or max when detection is wrong. |
perplexicodeKilo.agent.autoApprove.enabled |
true |
Master switch for auto-approval. |
perplexicodeKilo.agent.autoApprove.read |
true |
Reading, listing and searching inside the workspace. |
perplexicodeKilo.agent.autoApprove.readOutsideWorkspace |
false |
Reads outside the workspace. |
perplexicodeKilo.agent.autoApprove.write |
false |
Creating and editing files. |
perplexicodeKilo.agent.autoApprove.execute |
false |
Commands matching allowedCommands. |
perplexicodeKilo.agent.autoApprove.modeSwitch |
true |
Mode switches requested by the agent. |
perplexicodeKilo.agent.autoApprove.subtasks |
true |
Orchestrator subtasks. |
perplexicodeKilo.agent.autoApprove.todo |
true |
Todo list updates. |
perplexicodeKilo.agent.autoApprove.retry |
true |
Retry failed Perplexity requests. |
perplexicodeKilo.agent.allowedCommands |
npm test, npm run, git status, git diff, git log, ls, cat, pwd |
Command prefixes that may run without approval (* = all). |
perplexicodeKilo.agent.deniedCommands |
rm -rf, sudo, git push --force |
Prefixes that always need approval. |
perplexicodeKilo.agent.maxRequestsPerTask |
40 |
Ask before continuing after this many requests. |
perplexicodeKilo.agent.maxReadFileLines |
500 |
Lines per read_file call. |
perplexicodeKilo.agent.commandTimeoutSeconds |
120 |
Command timeout, 0 = none. |
perplexicodeKilo.agent.terminalOutputLineLimit |
300 |
Terminal lines sent to the model. |
perplexicodeKilo.agent.webSearch |
auto |
Whether Perplexity may search the web for agent requests. |
perplexicodeKilo.agent.contextStrategy |
auto |
Thread follow-ups or full self-contained prompts. |
perplexicodeKilo.agent.maxPromptChars |
60000 |
Prompt size limit; older turns are condensed. |
perplexicodeKilo.agent.language |
auto |
Reply language, e.g. en, ru. |
perplexicodeKilo.agent.customInstructions |
— | Instructions added to every mode. |
perplexicodeKilo.agent.modeInstructions |
{} |
Per-mode instructions keyed by mode slug. |
perplexicodeKilo.agent.diffEnabled |
true |
Use apply_diff instead of full rewrites. |
perplexicodeKilo.agent.includeFileListOnStart |
true |
Send the workspace file list with the first request. |
perplexicodeKilo.agent.revealEditedFiles |
true |
Open files after the agent edits them. |
perplexicodeKilo.excludePatterns |
node_modules, .git, dist, out, .next |
Globs excluded from context. |
How it works
- You describe a task; PerplexiCode builds a system prompt for the active mode with tool descriptions, workspace rules, the file list and your
@mentions. - The prompt goes to Perplexity through your web session, using the selected model (and Thinking variant, if enabled).
- The reply is parsed for one XML tool call. Reads run immediately if auto-approved; edits and commands wait for Save / Run unless auto-approved.
- The tool result is sent back as the next message, and the loop continues until
attempt_completion. - Perplexity thread follow-ups are used when possible. If a follow-up fails, the full conversation is resent as one prompt, and accounts fail over on quota or auth errors.
Build from source
Requirements: Node.js 20+ and npm.
git clone https://github.com/MRX7999/PerplexiCode-Kilo.git
cd PerplexiCode-Kilo
npm ci
npm run lint # extension + webview type check
npm test # parser, diff engine, tools, models, agent loop, transport
npx vsce package --out perplexicode-kilo.vsix # build the VSIX
npm run test:webview renders the webview in headless Chromium and saves screenshots to out/test/ (needs a Playwright Chromium in ~/.cache/ms-playwright).
Releases are built by GitHub Actions: pushing a vX.Y.Z tag runs the tests, packages the VSIX and attaches it to a GitHub release.
Project layout
src/
extension.ts activation, commands, code actions, webview providers
agent/ agent loop, modes, prompts, tool parser and executor, diff engine, transport, task store
api/ Perplexity client, model catalog, bundled model config, quotas, account rotation
providers/ login flows
storage/ account manager (SecretStorage)
ui/ status bar
webview-ui/agent/ chat UI (TypeScript + CSS, bundled with esbuild)
test/ unit and agent tests, webview render harness
scripts/ install.sh, install.ps1
Troubleshooting
| Problem | Fix |
|---|---|
| Max models are locked on a Max account | Run Refresh Models and Quotas, or set perplexicodeKilo.subscriptionPlan to max. |
401 / session expired |
Manage Accounts → refresh session, or add the account again. |
The CLI says NOT registered |
Harmless Antigravity warning; check --list-extensions --show-versions. |
| Install script cannot find the editor | Pass --vsix with a downloaded file, or use Install from VSIX…. |
| Agent stops after many steps | Raise perplexicodeKilo.agent.maxRequestsPerTask. |
Unable to write to User Settings … is not a registered configuration |
The extension was updated while the window stayed open. Run Developer: Reload Window. Since 2.1.0 the change is saved anyway and moved into settings after the reload. |
| Anything else | Open Output → PerplexiCode and attach the log to an issue. |
Credits
- Original extension: yuki-20/PerplexiCode (MIT).
- Agent design, modes and tool protocol follow Kilo Code, itself based on Roo Code and Cline.
Disclaimer
PerplexiCode is an unofficial community project and is not affiliated with or endorsed by Perplexity AI, Kilo Code or Google. It uses your own Perplexity web session; usage counts against your subscription limits and is subject to the Perplexity Terms of Service.
License
MIT. Original work © yuki-20; PerplexiCode Kilo changes © MRX7999.














