Skip to content

Repository files navigation

Orbit Code

CI Release VS Marketplace npm Nx License: MIT Website

Claude Code refactoring a file in Orbit Code: its star moves through the 3D dependency graph, the view turns Flat, and a permission card asks to allow a command

Watch the full demo (1:44)

Open-source, live 3D visuals for Claude Code, available for VS Code, as a desktop app and as a web client: your codebase as a dependency graph, with Claude working through it as you watch. This repository holds the VS Code extension, the desktop app, the local server with its web client, and the editor-agnostic packages they are built from.

Install

code --install-extension imshaikot.orbit-code                 # VS Code, from the Marketplace
curl -fsSL https://orbit-code.imshaikot.com/install.sh | sh   # Cursor, Windsurf, VSCodium and other VS Code based editors
irm https://orbit-code.imshaikot.com/install.ps1 | iex        # the same, in Windows PowerShell

Sessions need Claude Code installed and signed in; the graph works without it. The desktop app runs from a clone for now (yarn install && yarn desktop --folder <path>, see apps/desktop/README.md). The install guide has every option and how each one updates.

Documentation

The docs directory holds the longer pages, which are also published at orbit-code.imshaikot.com/docs:

Page For
Using Orbit Reading the view, navigating, prompting Claude, permissions, the file card, the Flat view and the tour
Architecture The three bundles, the services, the protocol, the data flow and the security constraints
The graph pipeline Indexing, language coverage, the cache, live updates and the layout
Claude in Orbit How the claude CLI is run: conversations, permissions, questions, MCP, skills, files, history, subagents
The webview The three.js scene, focus and levels, GPU picking, the frame loop, the HUD and the build's constraints
Hosts What VS Code and the desktop app each provide, and how a third editor would host Orbit
The monorepo Projects, tags, the boundary check, TypeScript per runtime, Nx targets and caching
Contributing The dev loop, where a change goes, the checks, CI and the commit conventions
Releasing Version plans, release groups, tags and publishing
Troubleshooting Logs, caches and the failures with a known cause

Layout

Path Package What it is
apps/vscode orbit-code The VS Code extension, packaged as a .vsix for the Marketplace and Open VSX
apps/desktop @orbit-code/desktop The desktop app: Electron, with installers for macOS, Windows and Linux
apps/server @imshaikot/orbit-code-server The local server: Orbit for one folder, reached by the web client over a WebSocket on 127.0.0.1; published to npm
packages/web-client @orbit-code/web-client The page at orbit-code.imshaikot.com/web-client/ that guides starting the server and connects to it
packages/protocol @orbit-code/protocol The messages between a host, the webview and the workers
packages/graph @orbit-code/graph File kinds, the columnar graph, the directory tree, layout extension
packages/common @orbit-code/common Events, disposables, logging and batching, for any host
packages/indexer @orbit-code/indexer Workspace to dependency graph, as a worker thread and a CLI; published to npm
packages/agent @orbit-code/agent Claude Code conversations over the claude CLI
packages/core @orbit-code/core The editor-agnostic host: the graph, live updates, Claude's activity, and the controller every host shares
packages/webview @orbit-code/webview The UI: the three.js scene and the HUD
tools/harness @orbit-code/harness Headless Chrome checks of the webview against a simulated host

Each project is tagged with the runtime its code needs (neutral, node, browser, vscode or electron), and yarn boundaries keeps every import within those lines. Only apps/vscode touches the VS Code API and only apps/desktop touches Electron's, so all three hosts share the engine, the controller, the protocol and the webview.

Development

yarn install
yarn build            # every project, through Nx
yarn typecheck
yarn boundaries
yarn self             # build and open this repository in an Extension Development Host (or press F5)
yarn watch            # rebuild on change
yarn harness          # webview checks in headless Chrome
yarn smoke            # end-to-end in a real VS Code
yarn package          # dist/apps/vscode/orbit-code-<version>.vsix
yarn desktop --folder .   # build and open this repository in the desktop app
yarn desktop:smoke    # end-to-end in the desktop app
yarn desktop:package  # dist/apps/desktop: a dmg and zip, an NSIS installer or an AppImage
yarn server .         # build and serve this repository to the web client
yarn server:smoke     # the server and the web client end to end in headless Chrome
yarn nx graph         # the project graph

Nx 23 runs and caches the tasks; Yarn 4 workspaces link the packages, which import each other's sources directly. docs/contributing.md has the dev loop, the checks and where a change goes; docs/monorepo.md the workspace's rules.

Releases

Record a change worth releasing with yarn nx release plan <bump> --groups=apps (the extension and the desktop app, released together) or --projects=<package> for an npm package, and commit the plan with it. yarn nx release --skip-publish then applies the plans: it bumps versions, writes each project's CHANGELOG.md, commits and tags, v<version> for the apps and <project>-v<version> for an npm package. Pushing a v tag runs .github/workflows/release.yml, which builds the .vsix and the macOS dmgs and publishes them in one GitHub release with that version's changelog. docs/releasing.md has the whole procedure.

License

MIT

About

An open-source, live 3D visual alternative to Claude Code in the terminal, for programmers and vibe coders alike. A VS Code extension and a desktop app.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages