Skip to content
home / kit / code
CodeKit Service

Code

Spawn isolated VS Code instances over HTTP. No local install, no settings sync — every developer gets their own URL with their own extensions, port, and shell. Pair-program by sharing a link.

code · hoody-website-2026

Explorer

  • 📁 src/
  • 📁 components/
  • 📄 hero.tsx
  • 📄 nav.tsx
  • 📄 footer.tsx
  • 📁 pages/
  • 📁 public/
  • 📄 package.json
  • 📄 README.md
hero.tsxnav.tsx

1import { useTranslations } from 'next-intl';

2

3export const Hero = () => {

4const t = useTranslations('hero');

5return (

6<section>

7{t('title')}

8</section>

9);

10};

main · 4 collaboratorsUTF-8 · LF · TypeScript
home / kit / code / scale

Built for the way teams actually code

65,535

Concurrent VS Code instances per container

under 1s

From URL click to ready (warm resume)

8

API endpoint groups

0

Local installs to onboard a new dev

home / kit / code / capabilities
What you get

An IDE that lives at a URL

Code is full VS Code — no stripped fork, no proprietary editor — running inside your container and reachable through your browser. The differences are operational, not editorial.

capability 01 / 06
Per-instance extensions

Per-instance extensions

Pre-install extensions at spawn time via query params. Each URL boots with the right toolset for the job — no shared-config drift.

# Pre-install extensions on spawn

GET /code/v1/instance?extensions=rust-analyzer,prettier

→ { instance_id: "abc", extensions: 2, ready_ms: 840 }

home / kit / code / api
API

Spawn and control VS Code over HTTP

Every instance has its own URL, port, and extension set. Drive them from your app — no SSH, no VMs.

View Documentation
code-api.sh

# Spawn a VS Code instance at a URL

curl "https://proj-dev-code-1.hoody.com/?folder=/home/user/project&id=1"

 

# Install an extension via API

curl -X POST \

https://proj-dev-code-1.hoody.com/api/v1/code/extensions/install \

-H "Authorization: Bearer $TOKEN" \

-H "Content-Type: application/json" \

-d '{"url": "https://marketplace.../ext.vsix"}'

 

# Response:

# {

# "installed": true,

# "id": "publisher.extension-name",

# "instance_id": 1

# }

home / kit / code / api
API REFERENCE

11 Endpoints. Full IDE Control.

Serve the editor, authenticate users, proxy local ports, and manage extensions — all over plain HTTP from any language or script.

VS Code Interface

{count, plural, =1 {# endpoint} other {# endpoints}'}

GET .../api/v1/code?folder=/home/user/project

GET
/api/v1/codeServe the VS Code web interface; open a folder, workspace, or extension-only mode
GET
/_static/{path}Serve static build assets (JS, CSS, icons, service worker)
GET
/api/v1/code/manifest.jsonReturn the PWA manifest for installing Hoody Code to the home screen
POST
/api/v1/code/mint-keyGenerate or retrieve the 256-bit server web key used for encryption

Authentication

{count, plural, =1 {# endpoint} other {# endpoints}'}

POST .../api/v1/code/login → Set-Cookie: hoody-session

GET
/api/v1/code/loginReturn the password login page HTML; redirects if already authenticated
POST
/api/v1/code/loginAuthenticate with password; sets session cookie (rate-limited: 2/min, 12/hr)
GET
/api/v1/code/logoutClear the session cookie and redirect to home

Port Proxying

{count, plural, =1 {# endpoint} other {# endpoints}'}

GET .../api/v1/code/proxy/3000/api/data → localhost:3000/api/data

GET
/api/v1/code/proxy/{port}/{path}Forward to a local port, stripping the /proxy/:port prefix before forwarding
GET
/api/v1/code/absproxy/{port}/{path}Forward to a local port, preserving the full path for path-aware apps

Extensions

{count, plural, =1 {# endpoint} other {# endpoints}'}

POST .../api/v1/code/extensions/install { url: "...vsix" }

GET
/api/v1/code/extensions/listList all installed VS Code extensions in the extensions directory
POST
/api/v1/code/extensions/installDownload and install a VS Code extension from a VSIX URL
home / kit / code / start

Ship the editor, not the install guide

Code is one of 14 Kit services bundled with every Hoody container. Stop writing onboarding docs that say 'first, install Node 20'.

View Documentation