Coding agent that lives in your editor. Chat with files in context,
edit code with Cmd-K, let the agent run multi-step tasks with full
diff-preview approval gates, and pay per-task with transparent
effort-tier pricing.
┌─────────────────────────────────────┐
│ EpisCloud AI · ai-pro · medium ☁ │ ← sidebar
├─────────────────────────────────────┤
│ You │
│ Refactor src/auth.ts to async/await │
│ │
│ EpisCloud AI │
│ ▼ Thinking… (124 chars) │
│ I'll read the file, identify the │
│ callback sites, and rewrite each. │
│ │
│ ● Edit src/auth.ts ✓ │
│ ╔══ MODIFY ══╗ │
│ - function check(token, cb) { │
│ + async function check(token) { │
│ │
│ Done. PR-ready diff applied. │
├─────────────────────────────────────┤
│ Effort: [medium ▾] [Send] │
└─────────────────────────────────────┘
Features
Chat panel
- Sidebar webview, sticks across window reloads (conversation persisted in your OS keychain-backed storage).
- Streaming Markdown rendering with VSCode font + theme.
- Collapsible Thinking… block for reasoning-tier outputs.
- Auto-scroll with respect for manual scroll-up.
- Auto-compaction when context grows past ~50k tokens.
Composer
- Slash commands:
/plan,/debug,/code-review,/refactor,/tdd,/explain,/security-review,/algorithms,/research. Live-filtered as you type/. #file:<path>mentions with workspace file autocomplete. Mention resolves to file contents (size-capped, workspace-sandboxed) as a system overlay on submit.- Effort tier dropdown with per-tier cost estimate.
Editor integration
Cmd-Kinline edit (Ctrl-Kon Linux/Windows). Select code → type instruction → review side-by-side diff → click Apply.- Quick Fix code action on every compiler/linter error. Pick "EpisCloud AI: Fix …" from the Cmd-. menu.
- Active file context auto-injected on every chat turn: file + cursor + selection + diagnostics + open tabs.
- Apply button on every assistant code block. Quick-pick: insert at cursor / replace selection / open as new file.
Tool gating
- The agent has Read, Glob, Grep, Edit, Write, MultiEdit, Bash, Npm, RunTests, TodoWrite. Read-only tools auto-approve; mutating tools open an approval card with a precomputed diff or command summary.
- Three persistence scopes for "always allow":
- this exact path (
Edit src/foo.ts) - this exact command (
Bash npm test) - the whole tool kind
- this exact path (
- Workspace-scoped, never global. Reset with
EpisCloud AI: Reset tool permissions.
Pricing transparency
- Status bar shows current period spend + effort tier.
- Composer dropdown shows per-task cost estimate for each tier.
| Effort | Strategy | ~Cost / task |
|---|---|---|
minimal |
Local-only — sensitive workloads | $0.01 |
low |
Single-shot cloud agentic | $0.05 |
medium |
Skill-aware routing (default) | $0.18 |
high |
Architect → Executor → Reviewer chain | $0.50 |
max |
Best-of-2 parallel + judge | $1.50 |
Cost estimates assume a ~50 k-token agentic task. Your bill depends on actual token usage; see the in-app activity log for exact figures.
Install (dev)
cd vscode-extension
npm install
cd webview-ui && npm install && cd ..
npm run build
Press F5 in VSCode with this folder open to launch the Extension Development Host. Look for the EpisCloud AI icon in the activity bar.
First-run
- Generate an API key: https://dashboard.episcloud.com/billing → "Pay-as-you-go" → "New key".
- Run EpisCloud AI: Sign in from the command palette (Cmd-Shift-P).
- Status bar shows
EpisCloud AI · $0.00 · medium. - Click the EpisCloud icon in the activity bar to open the chat panel.
Commands
| Command | Default keybinding | Purpose |
|---|---|---|
EpisCloud AI: Sign in |
— | Paste an API key. |
EpisCloud AI: Sign out |
— | Remove the key from the OS keychain. |
EpisCloud AI: Open chat panel |
— | Focus the side panel. |
EpisCloud AI: Inline edit |
Cmd-K / Ctrl-K | Rewrite the selection. |
EpisCloud AI: Set effort tier |
— | Pick minimal / low / medium / high / max. |
EpisCloud AI: Show usage & balance |
— | Notification with this period's spend. |
EpisCloud AI: Reset tool permissions |
— | Wipe workspace allowlist. |
Settings
| Key | Default | Purpose |
|---|---|---|
episcloud.baseURL |
https://paas-ai.episcloud.com/v1 |
Service URL — override for staging. |
episcloud.effort |
medium |
Default tier; override per-request in composer. |
episcloud.permissionMode |
default |
default asks; acceptEdits auto-allows Edit/Write; bypassPermissions disables all prompts. |
episcloud.telemetry.enabled |
true |
Anonymous usage telemetry (Sprint F+ — currently no-op). |
Architecture
Single-process extension host owns the SDK + tool execution; a
sandboxed webview renders chat. Shared protocol.ts types make
host↔webview messages compile-time-checked.
See the EpisCloud AI documentation at https://episcloud.com/ai/docs for setup, model lineup, and pricing.
Privacy
- API key lives in VSCode's
SecretStorage(OS keychain on macOS/ Windows, libsecret on Linux). Never written to disk in plaintext. - All chat traffic goes to
episcloud.baseURLover HTTPS; the extension does not contact any other host. - Conversation history is persisted to VSCode
globalState(capped at 200 items / 200 KB; older items evict LRU). Clear with the chat panel's "Clear" button. - Telemetry is gated behind
episcloud.telemetry.enabledand is off-by-default until Sprint F wires the sender.
Licence
MIT. See LICENSE.