« Démarrer le projet » : un repo définit une fois ses commandes de démarrage (serveur de dev, API, base de données), un clic ouvre un terminal PTY par commande dans le dock IDE. Serveur (additif, PROTOCOL_VERSION inchangé) : - LaunchCommand[] persistées sur repos.launch_commands (migration 13) ; champ additif SessionSummary.launchRunId. - POST /repos/:id/launch : résolution du worktree côté serveur, cwd de commande borné (anti-traversal), commandIds outrepasse enabled. - GET /repos/:id/launch/detect : détection package.json / Procfile / docker-compose. - Shell de login interactif ($SHELL -l -i, charge le PATH nvm/asdf) + auto-type de la commande ; le shell survit à la commande (échec visible). Web : LaunchProjectModal + actions (ProjectTreeNode, SessionsPanel, CommandPalette), stores sessions/worktrees, i18n EN/FR. Alignement du reste du projet : - Extension VS Code 0.4.0 : commande Start Project (repo/worktree), Stop Launch, badge « launch » dans l'arbre, méthode REST startLaunch. - Site vitrine : 16e feature card (Rocket) + section showcase « Start the project » (mockup fidèle au modal), i18n EN/FR. - Documentation : README (EN + FR), help-content (EN + FR), CHANGELOGs server + vscode. Vérifié : 430 tests, typecheck, build (web + site + vscode), acceptance-p13 ALL GREEN, VSIX packagé, garde anti-tirets, vérif visuelle du site (thèmes clair et sombre).
Arboretum for VS Code
Pilot your git worktrees and Claude Code sessions from inside VS Code: a real native integration on top of the Arboretum daemon, not a webview.
- Live tree of Repositories → Worktrees → Sessions (and a Groups view), updated in real time over the daemon's WebSocket.
- Native terminals: attach to any session in a real VS Code terminal (a
Pseudoterminalbridges the daemon's PTY): you get VS Code's own rendering, scrollback, copy/paste and links for free. - Waiting alerts: a status-bar counter and native notifications when a Claude session is waiting for
input: answer Yes/No without even opening the terminal (uses the daemon's
answercommand). - Git mutations from the tree: create worktree, commit, push, fetch, pull, promote to main, with a detailed git status on each worktree (staged / unstaged / conflicts and the last commit subject).
- Open Worktree IDE: jump from any worktree into the multi-project IDE (unified project / worktree / session tree, tabbed Monaco editor with inline diffs, docked terminals), in the browser or the native desktop app. The extension stays a lightweight visual worktree manager: the heavy editing lives in the IDE.
- Workspace-aware: the worktree matching your open folder is highlighted; start a session or create a worktree for the current folder in one command.
Requirements
- A running Arboretum daemon (
npx @johanleroy/git-arboretum, or installed as a user service viaarboretum install). The extension is a client: it does not start the daemon. - An access token. The bootstrap token is printed once on first daemon start; you can also create one in the Arboretum dashboard (Settings → Tokens).
Getting started
- Start the daemon and copy a token.
- In VS Code, run Arboretum: Sign In (Command Palette) and paste the token. The token is validated against the daemon and stored in VS Code's encrypted SecretStorage.
- The Arboretum view container appears in the Activity Bar with the Repositories and Groups trees.
Settings
| Setting | Default | Description |
|---|---|---|
arboretum.url |
http://127.0.0.1:7317 |
Base URL of the daemon (REST + WebSocket). |
arboretum.showExternalSessions |
false |
Also show Claude sessions started outside Arboretum (CLI). |
arboretum.showArchivedSessions |
false |
Also show finished sessions auto-archived after their retention window. |
arboretum.notifyOnWaiting |
true |
Native notification when a session starts waiting for input. |
The extension authenticates with Authorization: Bearer <token> on both REST and the WebSocket upgrade.
For remote access, point arboretum.url at your Tailscale Serve URL (https://…): the WebSocket is
derived automatically (wss://).
Building & packaging (private VSIX)
The extension is bundled with esbuild (@arboretum/shared is inlined → the VSIX is self-contained).
# from the monorepo root
npm install
npm run build:vscode # builds @arboretum/shared then bundles the extension
cd packages/vscode && npx @vscode/vsce package --no-dependencies
# → git-arboretum-0.3.0.vsix
Install it with Extensions: Install from VSIX… in the Command Palette, or:
code --install-extension git-arboretum-0.3.0.vsix # also: codium / cursor
Other distribution channels (optional)
- Open VSX (VSCodium, Cursor, Windsurf):
npx ovsx publish *.vsix -p <token>after creating an Open VSX account and namespace. - VS Code Marketplace: create an Azure DevOps publisher + PAT, then
npx @vscode/vsce publish.
A Gitea Actions workflow packages the VSIX automatically on a vscode-vX.Y.Z tag (see
.gitea/workflows/vscode-release.yml) and attaches it to the release.
Security
The extension never weakens the daemon's security model: it speaks the same authenticated protocol as the
web dashboard. A Node client sends no Origin header, so it passes the daemon's strict Origin check while
still requiring a valid token.