A desktop workspace for coding agents, edits and terminals

An Electron workspace that keeps coding agents, the editor, file changes and terminals in one window.

Vela workspace showing a repository, code editor and agent conversation

The whole coding workflow in one window

Running coding agents usually means juggling a terminal, an editor and a diff view. Vela puts them in a single desktop window: the agent’s streamed work on one side, the code it touches and the terminals it runs on the other. I built it end to end as a solo project — the Electron main process, the runtime adapters that talk to the agent, the React renderer, and the packaging.

What it does

  • Streamed agent work. Follow reasoning summaries, tool calls, subagents, todos and permission requests in one timeline.
  • Parallel sessions. Resizable agent panels each keep their own project context, composer and model controls.
  • Code review beside the agent. A Changes list opens edits and diffs in Monaco.
  • An everyday editor. Autosave, Emmet and HTML/CSS validation support the editing workflow.
  • Native process access. Electron manages agent runtimes, the filesystem and PTY terminals through a narrow preload API.

Electron owns the parts that need native access — agent runtimes, the filesystem and PTY terminals — and exposes them to the renderer through a narrow preload API rather than handing over Node directly. The React renderer consumes that boundary and presents the agent’s streamed output, Monaco-powered edits and diffs, and live terminals side by side.

The timeline is the core of it: reasoning summaries, tool calls, subagents, todos and permission requests all stream into one view, so the agent’s work can be followed as it happens. A Changes list opens each edit in Monaco for review, while autosave, Emmet and HTML/CSS validation keep the editing side usable. It targets macOS first, with Linux and Windows coverage, and needs Node 22 plus a reachable opencode service.