Beat 1 · Stuck

The AI IDE that codes at the speed of thought

You know what you need. You don't know how to write it. The clock is running. Then EditVolt steps in. You type three characters, it writes the rest — Tab to accept. Ask the agent. It builds the context from your repo, runs on your GPU, and cites every line it touches.

Scroll to move through the story · move the mouse to tilt

stackoverflow.com — How do I batch async requests in TypeScript?
12 answers · accepted answer is from 2016 · 3 say “use a for loop”, 4 say “never use a for loop”
docs — Promise.all() · Promise.allSettled() · for await…of
Returns a single Promise that resolves when all of the input's promises have resolved…
chat — “is this right??”
Seen 47 min ago · no reply
loop… or Promise.all?
what does api.get even return?
why is the test still red?
users.test.ts
import { fetchUsers } from "./users";

test("fetchUsers returns names", async () => {
  const names = await fetchUsers(["u1", "u2"]);
  expect(names).toEqual(["ADA", "LINUS"]);
});

test("batches requests", async () => {
  await fetchUsers(ids);
  expect(api.get).toHaveBeenCalledTimes(1);
});
api.ts
export const api = {
  async get<T>(path: string): Promise<T> {
    const res = await fetch(BASE + path);
    if (!res.ok) throw new Error(res.statusText);
    return res.json();
  },
};

export const getUser = (id: string) =>
  api.get<User>(`/users/${id}`);
users.tsapi.tsusers.test.ts 0:00 stuck ⚡ EditVolt ✓ 12 passed TAB
1·export async function fetchUsers(ids: string[]) {
2· // TODO: fetch every user, return their names
3·
3+
4+
4·}
$ npm test
AgentLlama 3 · GPU · local
Fix the failing tests in @users.test.ts
Contextusers.test.tsapi.tsgetUser()index4.1k tok
Assemble context
Search local index
Edit users.ts · api.ts:9
Run tests · test.ts:4
GPUMetal · 41 tok/s
Review diffRollback
GPU-accelerated, on-device Context engineered from your repo §Grounded — cites file:line, no invented APIs
The real thing

This is the actual editor

Not a mockup — a screenshot of EditVolt running on macOS, with the on-device model loaded and the assistant docked beside your code.

EditVolt on macOS: file explorer, a TypeScript file open in the editor, and the assistant panel on the right.
EditVolt 0.3 · on-device model, zero telemetry, your keys or no keys at all.
Why EditVolt

Everything an AI pair programmer should be

Not a plugin bolted onto an old editor — AI is wired into every surface of the IDE.

EditVolt Complete

Inline completions powered by a bundled local engine — streaming multi-line suggestions and Tab-to-jump next-edit prediction, even fully offline.

💬

EditVolt Chat — 6 modes

Ask, Plan, Debug, Agent, Design, and Multitask modes. Pull in exactly the context you want with @-mentions: files, folders, symbols, problems, terminals, even URLs.

🤖

Agent mode with real guardrails

The agent plans, edits across files, and runs commands — every edit staged as a reviewable diff with checkpoints you can roll back. Nothing is ever auto-applied.

🧠

Local codebase intelligence

Semantic search over your repo via an on-device vector index with local embeddings. Your code is indexed on your machine — it never leaves it.

🔌

Any model, your keys

Claude, Gemini, any OpenAI-compatible endpoint, Hugging Face, or fully local models via Ollama. Bring your own keys — requests go direct to the provider, no middleman.

🔒

Private by design

Zero telemetry — structurally removed, not just switched off. A strict local-only mode, an ignore file for sensitive paths, and API keys in your OS keychain. Sign-in is optional, and never gives us your code.

6
chat modes — ask, plan, agent, debug, design, multitask
5
model providers — Claude, Gemini, OpenAI-compatible, Hugging Face, and local Ollama
0
telemetry events — the code was removed, not switched off
0
API keys needed to start — a local model ships in the app

Plug into the current ⚡

Download EditVolt and ship your next feature before lunch.

Get EditVolt free