Skip to content

Getting started

Pack. Move. Work.

Desk supports Linux and macOS on x64 and ARM64, including Linux inside WSL. With Node.js 20 or newer and npm installed, run:

Terminal window
npm i -g @centillex/desk
desk --help

On Windows, run the installation command inside your WSL Linux terminal, using Node.js and npm installed in WSL.

Keep npm’s optional dependencies and install scripts enabled. npm installs a native Go executable built with CGO_ENABLED=0. Desk embeds SQLite and needs no Node.js, SQLite installation, or C toolchain at runtime.

Install the agent you want to use separately: Claude, Codex, Qoder, or Bob.

Stop the source agent and other processes writing your project, then run:

Terminal window
cd /path/to/project
desk pack --from=claude

Desk prints a pack ID and its tar archive path. Your original files remain in place. A pack includes the workspace, supported native settings, and the project’s sessions. Known credential filenames are filtered from native agent state; project files are copied in full. Packs can contain secrets and are stored in plaintext.

If exactly one source agent can be detected, desk pack is sufficient.

Install and configure the target agent before launching it. From the same project directory, use its latest saved pack:

Terminal window
desk move --to=codex

Desk keeps the current project directory and restores readable conversation text into Codex’s native session storage. Codex uses your existing HOME, configuration and login. Desk prints the working directory and HOME.

To choose a particular pack, or restore it from another directory, supply its ID:

Terminal window
desk move PACK_ID --to=codex

Without an ID, Desk matches the source directory recorded in the pack metadata. If none exists, run desk pack first. Pack again to include new changes.

--to accepts claude, codex, qoder, and bob. Source and target must differ. Bob launch currently supports version 2.0.2.

Terminal window
desk ls
desk ps

ls shows saved packs. ps shows the sources and targets managed by Desk, including agents that have already exited. It does not list unrelated agents on your machine.

Desk stores data in ~/.desk/store by default. Set DESK_HOME=/path/to/desk to use /path/to/desk/store. Use the same setting across Desk commands. Capture individual projects that do not contain the active store.

desk ls uses short IDs, relative creation times and readable archive sizes. Use desk ls --no-trunc for full IDs; move accepts unique ID prefixes. See storage and archives for the directory layout.

Use your agent’s native continue or resume command in the moved workspace with your normal HOME. Follow the examples for Claude, Codex, Qoder, or Bob.