Skip to content
latent-spacesPublic

About

An interface your agent can rebuild while you work. A browser desktop for Claude Code, Codex, and any agent that speaks ACP.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Codesk

A desktop you can reshape just by asking.

Codesk is a desktop for your coding agents, running locally in your browser, where you can change ANYTHING you see.

Ask your agent to add a window, wire up a control, or reskin the whole desktop. Changes appear live, without interrupting the conversation.

Keep an app preview beside the conversation, watch your token usage, or play solitaire while your agent works. Create anything, change anything, and share what you make with friends or teammates.

Works with Claude Code, Codex, and any other agent that supports the Agent Client Protocol (ACP).

One desk changing skin from Codesk to Synthwave, Stardew Valley and High Seas, while Claude works and a game of solitaire waits

Get started

You need Node 22.18+ and an agent to chat with. Claude Code and Codex are ready to pick; any other ACP agent can be added from the Chat window.

git clone https://github.com/latent-spaces/codesk ~/codesk
node ~/codesk/install.mjs

Then open any project:

cd path/to/project
codesk

Your browser opens the desk. Pick an agent to connect and open your desk. Try asking:

“Run this project and put the preview next to our chat.”

Other agents and sign-in

Using another agent? Choose Add another agent… to pick one from the ACP registry (such as Gemini CLI, OpenCode, goose and Copilot), or Run a command… to add any program that speaks the Agent Client Protocol. Codesk says what it will download and run, and asks before it does. Right-click an agent you added to remove it.

Claude or Codex not signed in yet? Codesk offers to sign you in through your browser. You can also set ANTHROPIC_API_KEY / OPENAI_API_KEY.

Shape the desk in the conversation

Keep shaping the interface as the task unfolds. Add a control when you find yourself repeating a command, open a window for something you want to watch, or give the whole desk a different feel. Ask in the chat, even mid-task:

“Show me how the site looks in a window here.”
“Put the product images side by side.”
“Open the diff and walk me through what you changed.”
“Lay out the ideas we could explore next.”
“Make it look like Starry Night.”

  • Add the tools you need. Dashboards, galleries, control panels, and games live in windows beside your chat. Windows can run local commands, so a button can do real work.
  • Give the desk a new look. Skins change colours, fonts, artwork, even a moving scene. Eight are built in (codesk skin midnight). Describe a mood, a game, or a painting and ask your agent to make another.
  • Edit it yourself. The interface is HTML, CSS, and JavaScript. You can edit it yourself or have your agent do it, then share a window or skin as a ZIP.
Synthwave skin: solitaire mid-game while Claude migrates photos, with a progress checklist and plan usage Starry Night skin: a window Claude built on request, a plant that grows a leaf each time the tests pass
Solitaire while Claude works A plant that grows when tests pass
Midnight skin: Claude and Codex in two chat tabs reviewing a branch, with the app preview, review notes and changed files High Seas skin: Codex drafting three book covers in a gallery, with a build log, as a ship sails behind the windows
Claude and Codex, sharing a desk Three book covers, ready to compare

Share windows and skins

Made a useful tool or a skin you love? Share it with friends or teammates as a ZIP they can drop onto their own Codesk desktop.

Sharing a window, then a skin. Each time: click share, download the ZIP and send it, the friend drags it onto their desk, and their agent says what it found and asks before installing. Solitaire opens on their desk, then the whole desk turns phosphor green on black

  • Share: hover a window's title bar and click ⇪, or hover a skin in Skins and click ⇪. Download the ZIP and copy the ready-made message to send with it.
  • Install: drop the ZIP anywhere on the desk, or use + → Add from file…. Nothing is installed straight away: the chat agent looks at what the window or skin does, tells you about anything unusual, asks what to do if you already have one by that name, and whether to put it on the desk.

A ZIP holds the component's code, styles, and bundled images, never your notes, chats, or layout.

Share and install from the command line
codesk export window notepad --out notepad.zip
codesk import notepad.zip            # --project for this project only, --replace to update
codesk import chat.zip --as my-chat  # a name that's taken needs a new one

Work with your agents

  • Chat. Replies stream in, with tool activity and permission requests. Switch models, stop a reply, or resume an earlier conversation.
  • Run several chats at once. + opens another tab: Claude in one, Codex in the next. A dot marks a tab with a new reply.
  • Queue messages. Anything you send while the agent is busy waits its turn.
  • Arrange the desk. Drag, resize, and close windows; tidy lines them up.
  • Give each project its own look. Skin, windows and layout are saved per project, so every desk can feel different.

Everyday commands

Command What it does
codesk Open the desk for this folder
codesk stop Stop this folder's desk
codesk status Show whether it's running and what's on it
codesk --help Every command

The agent drives the desk with the same CLI, and you can too:

codesk panel build --kind stream --title Build --source build.log
codesk icon editor --label "Open repo" --url https://github.com/you/repo

Updating

git -C ~/codesk pull
node ~/codesk/install.mjs

When a newer version of an agent Codesk installed is out (Claude, Codex, or one you added from the registry), Update agents in the menu bar installs it and reconnects your chats. Agents you installed yourself are yours to update.

To remove Codesk: node ~/codesk/install.mjs --uninstall.

Good to know

  • Local only. The server listens on 127.0.0.1, from port 4830 (codesk start --port N changes it).
  • Per-project state lives in the project's .codesk/ folder. Codesk keeps it out of git by adding it to the repo's local .git/info/exclude.
  • Windows can do anything you can. They're local code with full access to your machine, including running commands. Install ones you trust.
  • Platforms. Tested on macOS. Windows and Linux should work but are not yet verified end to end.

Contribute

Make Codesk better, or make something fun to put on it. Bug fixes, new features, better docs, useful windows, tiny games, and wild skins are all welcome. Open an issue or a pull request, whichever suits.

Want to get into the code? It's HTML, CSS, and JavaScript all the way down. Edit it yourself, or have your agent do it with you.

There's no build step. Edit the shell's CSS and it swaps in at once; edit its scripts and the page reloads once. Edit src/ and the server restarts by itself as soon as no chat is replying; the page reconnects without reloading and chats reopen where they were. npm run check type-checks the server.

More

License

MIT

About

An interface your agent can rebuild while you work. A browser desktop for Claude Code, Codex, and any agent that speaks ACP.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages