kodeo ui — the whole project, one screen
People, files with teammates’ initials, activity, chat, comments, the project’s Git and shared terminals, live. `:` runs any command; the mouse works too.
The kodeo CLI 2.0
KODEO from your terminal: a full-screen dashboard, live chat and comments, notifications, KODEO Assist, the project’s Git and pull requests, teammates’ terminals — and a folder that stays in sync while your team works in the browser and VS Code.
npm i -g @kodeohq/cliFree on every plan · Node 20+ · Windows, macOS, Linux. Create a free account →
New in 2.0
People, files with teammates’ initials, activity, chat, comments, the project’s Git and shared terminals, live. `:` runs any command; the mouse works too.
kodeo who, kodeo chat --follow, kodeo summon — present for everyone, never taking an editing seat.
kodeo inbox by day; new ones pop up in watch and the dashboard — and, if you want, on your desktop. Never twice with VS Code.
kodeo ask streams answers with their sources; kodeo docs searches the Help Center as you type — offline too.
Stage, commit with co-authors, switch branches for everyone, merge, the commit graph, blame by age — and review PRs line by line.
Watch a terminal shared from the browser, full screen. Enter asks for the keyboard — redrawn safely, so nothing in it can touch yours.
KODEO’s 20 themes in truecolor, 256 or 16 colours — automatically your own. --plain for screen readers; NO_COLOR honoured.
One sync engine per folder, kodeo code at a file and line, kodeo login --vscode — and VS Code can open the dashboard.
Sixty seconds
In PowerShell or Windows Terminal:
winget install OpenJS.NodeJS.LTSnpm i -g @kodeohq/clikodeo loginkodeoIn Terminal or iTerm2:
brew install nodenpm i -g @kodeohq/clikodeo loginkodeoIn any terminal — or over SSH:
# Node 20+ from your package manager or nodejs.orgnpm i -g @kodeohq/clikodeo login --devicekodeoAlready signed in to VS Code? kodeo login --vscode. Then kodeo opens HOME, kodeo ui the dashboard, kodeo tips the rest.
The dashboard
Who’s here and with which client, who’s typing, who follows whom, who’s running what — and your plan’s storage and runtime hours. F stops everyone following you.
The tree with teammates’ initials on the files they have open. Enter opens one in your editor at that file.
Notifications by day — open, mark read or unread, all read.
The project’s chat, live, with @mention completion. Anything that looks like a secret is masked before it’s sent.
Threads by file — reply, resolve, reopen, or open the line in your editor.
Stage, unstage and commit; switch branches; pull and push; the commit graph with l.
Teammates’ shared terminals — Enter watches one full screen.
Side by side on wide terminals, tabs on narrow ones; the layout is remembered on each computer. Everything updates from the room’s events — it never polls — and leaving restores your terminal exactly.
The CLI and VS Code
kodeo watch and VS Code’s linked folder see each other: only one sends, the other says who is syncing — and takes over when it stops.
Shown by the CLI or by VS Code on your computer — never both.
VS Code can use your CLI’s sign-in, and kodeo login --vscode uses VS Code’s — each a new sign-in of its own, nothing copied.
kodeo code src/app.ts:42 opens VS Code, Cursor, Windsurf or vscode.dev right there; VS Code’s “Open KODEO Dashboard in Terminal” runs kodeo ui.
Four ways in
The kodeo CLI
Clone into a real folder, edit in JetBrains, Neovim, Zed or anything else, and leave kodeo watch running — or push when you choose.
kodeo clone acme/storefrontkodeo watchKODEO for VS Code
VS Code, Cursor, Windsurf or vscode.dev in the room — straight from KODEO or in a linked folder.
ext install kodeohq.kodeoKODEO as a Git remote
git clone, fetch and push against git.kodeo.website. Pushing to the project’s branch moves the files everyone sees.
git clone https://git.kodeo.website/acme/storefrontCI and scripts
Scoped, expiring tokens; no prompts under CI=true; versioned --json and documented exit codes in every command.
export KODEO_TOKEN=kdo_p_…npx @kodeohq/cli clone acme/storefront --jsonSafe by default
The server decides; the CLI explains. Every refusal comes back with a reason, the next step, and an exit code a script can rely on.
See exactly what would move, in both directions, before it does.
Changed on both sides? Merged. Real conflicts get markers — or press c in watch to keep yours or KODEO’s.
A push is one transaction. If any file moved on KODEO since your pull, nothing lands — and you’re told who changed what.
Chat, comments, Help and Assist are stripped of escape sequences; a teammate’s terminal is redrawn from an emulator, never piped raw.
.env files, keys and credential-looking text ask before their first push, are masked in chat, and are refused in CI.
Decided by content, not extension. Binary files never get conflict markers: KODEO’s copy is saved beside yours.
In the room the CLI is present but can’t edit or take an editing seat — the collab server drops anything else it might send.
Desktop notifications and speed numbers are off until you turn them on; Assist gets state words only, never your code.
Signing in
Browser, code or VS Code
kodeo login opens KODEO (PKCE, returning to 127.0.0.1 only); --device prints a code for SSH; --vscode uses VS Code’s sign-in — a new one, nothing copied.Bound to your computer
Every refresh is signed by a key in your keychain. A refresh token copied to another machine is refused — and ends the session.Ends when it should
Signed out in one click from Settings or kodeo signins, and by “This wasn’t me” or a password change — a running watch or dashboard stops and says why.Recognisable when leaked
Tokens look like kdo_p_… with a checksum, so scanners can spot one with no lookup. Report one and it’s revoked on the spot.Reference
Open any command for what it does, its options and examples you can copy. The same help is in your terminal: kodeo help ui.
47 commands
Sign a computer in, see what it may do, sign it out — and manage the tokens CI uses.
kodeo loginSign this computer in to KODEO.kodeo login [--device | --vscode] [--read-only] [--no-git] [--no-browser]Opens KODEO in your browser; you choose what the CLI may do (read or write, Git, all or some workspaces) and approve. The sign-in is kept in your OS keychain and bound to this computer — a copy of it doesn’t work anywhere else. It also offers to set git up for git.kodeo.website.
--device--vscode--read-only--no-git--no-browserkodeo loginkodeo login --deviceon a server over SSHkodeo login --vscodealready signed in to VS Codekodeo logoutSign this computer out — on KODEO too.kodeo logoutEnds the session on KODEO (it disappears from Settings → Local access) and deletes it from this computer.
kodeo logoutkodeo whoamiWho you’re signed in as, and what this sign-in can do.kodeo whoamiShows the account, the computer, its access (read or write, which workspaces, Git) and when it expires.
kodeo whoamikodeo whoami --jsonfor scriptskodeo tokensPersonal access tokens for CI and scripts.kodeo tokens [list | create | revoke <id>]Lists your tokens (name, prefix, access, expiry, last use). create opens Settings → Local access, because tokens are made in the browser behind “Confirm it’s you” — a token can never make more tokens. revoke takes the id or the token’s prefix and stops it at once.
kodeo tokenskodeo tokens createkodeo tokens revoke 3f9a1c2ekodeo signinsYour signed-in computers and tokens — sign one out.kodeo signins [revoke <id>]Every computer signed in to the CLI, VS Code or Git (with the client’s version, what it may do and when it was last active) and your personal access tokens. revoke ends one at once; with no id it asks which. Never shows an IP address or a place — Settings → Local access, behind your browser sign-in, does.
--allkodeo signinskodeo signins revoke 4b2fkodeo usageStorage, runtime hours and live editors — with warnings near the limits.kodeo usage [--workspace <slug>]Per workspace: storage used of the plan’s, runtime hours used and left this period (add-ons included), projects of the plan’s allowance and how many people can edit live at once. Near a limit it says so, with the billing link.
--workspace <slug>kodeo usagekodeo usage --workspace acme --jsonkodeo configThe CLI’s settings on this computer.kodeo config [<key> [<value>]]theme (auto follows your KODEO theme, or one of the 20), background (dark/light, when the terminal can’t say), popups (important/all/off), desktop (off by default; on shows titles only, full adds the text), telemetry (off by default; anonymous speed numbers), editor (what kodeo code opens), plain (screen-reader mode), motion (on/reduced) and icons (unicode/ascii/nerd). With a key and no value it asks (or shows it); with nothing it lists them all. Theme and pop-ups are shared with KODEO for VS Code on this computer; telemetry never is.
--resetkodeo configkodeo config theme aurorakodeo config desktop onkodeo config plain onfor screen readerskodeo resetRemove this computer’s KODEO state.kodeo reset [--keep-folders]Ends this computer’s sign-in on KODEO and deletes it from the keychain, removes the CLI’s settings, caches and history, takes kodeo out of your global Git config, and unlinks linked folders (their .kodeo/local state — your files are never touched). Nothing on KODEO is deleted.
--keep-folderskodeo resetkodeo reset --yeswithout askingGet a project into a folder, start one from a folder, or attach an existing folder.
kodeo projectsThe projects this sign-in can reach, by workspace — with who’s live.kodeo projects [--names] [--workspace <slug>]Each with your role, branch, file count, size, last change and who is live in it right now (browser, VS Code and CLI counts), or that it’s on this computer.
--names--workspace <slug>kodeo projectskodeo projects --nameskodeo switchPick a project — recent first — for project commands anywhere.kodeo switch [<workspace>/<project> | search]Like VS Code’s Switch Project (Alt+K): your recent projects first, then the rest, searchable. Outside a linked folder, who, chat, comments, git, pr, terminals and ui then use it; inside one, the folder’s project wins. Tells you where the project lives on this computer, if it does.
--clearkodeo switchkodeo switch acme/storefrontkodeo newCreate a project from a template, then clone or open it.kodeo new [name] [--workspace <slug>] [--template <id>] [--clone [folder]] [--open]The browser’s templates (Blank, Next.js, React + Vite, Node + Express, FastAPI, Go, Rust, HTML/CSS/JS) — their starter files written in the same transaction. Then clone it into a folder, open it in the browser or the dashboard.
--workspace <slug>--template <id>--clone [folder]--openkodeo newkodeo new "Landing page" --template nextjs --clonekodeo cloneDownload a project into a new linked folder.kodeo clone <workspace>/<project> [folder]Byte-identical, binary files and empty folders included. Writes a starter .kodeoignore for your framework (build output and caches stay on your machine). Refuses a folder that isn’t empty.
kodeo clone acme/storefrontkodeo clone acme/storefront shopinto ./shopkodeo initTurn this folder into a new KODEO project and upload it.kodeo init [--workspace <slug>] [--name <name>] [--yes]Asks which workspace (or takes --workspace), creates the project and pushes the folder — ignore rules, secret checks and plan limits apply.
--workspace <slug>--name <name>--allow-secrets <path>kodeo initkodeo init --workspace acme --name "Landing page" --yeskodeo linkAttach this folder to an existing project.kodeo link <workspace>/<project> [--diff3]Nothing is overwritten: files on both sides that differ are merged, or marked as conflicts. Then kodeo status shows what differs and kodeo push sends your side.
--diff3kodeo link acme/storefrontkodeo unlinkDetach this folder.kodeo unlinkRemoves .kodeo/local. Your files and the project on KODEO are untouched.
kodeo unlinkSee what changed, bring KODEO’s changes down, send yours up — or keep both in step automatically.
kodeo statusWhat changed here, on KODEO, or both.kodeo status [--offline]Lists your changes (A added, M modified, D deleted, renames), KODEO’s changes and files changed on both sides. Only files whose size or time changed are hashed, so it’s fast on big folders.
--offlinekodeo statuskodeo status --jsonkodeo diffDiffs between this folder and KODEO — side by side on a wide terminal.kodeo diff [path] [--side | --unified]Coloured and numbered; side by side from 160 columns. --json gives each file’s unified patch.
--side--unifiedkodeo diffkodeo diff src/app.ts --sidekodeo pullGet KODEO’s changes, merged with yours.kodeo pull [--ours | --theirs] [--diff3] [--switch] [--dry-run]A file changed on both sides is merged three-way; if the same lines changed, conflict markers (<<<<<<<) are written and the file isn’t pushed until you fix it. Binary files never get markers: yours stays and KODEO’s is saved beside it as name.kodeo.ext. An interrupted pull is finished next time, never left half-applied.
--ours--theirs--diff3--switch--dry-runkodeo pullkodeo pull --theirskodeo pull --dry-runkodeo pushSend your changes as one all-or-nothing transaction.kodeo push [--dry-run] [--allow-secrets <path>] [--force]Refused as a whole if any file you’re pushing changed on KODEO since your last pull — you’re told who changed it; run kodeo pull, then push. Plan limits are checked before anything uploads, only new content travels, files open in a teammate’s editor are merged into it live, and deletes go to the 7-day trash. Files that look like secrets (.env, keys) ask first, and are refused under CI unless named with --allow-secrets.
--dry-run--allow-secrets <path>--forcekodeo push --dry-runkodeo pushkodeo watchKeep this folder and KODEO in sync while you work — with a live status line.kodeo watch [--diff3] [--poll <seconds>] [--keep-mine | --use-kodeo] [--no-popups]Pushes each save once the file stops changing, and pulls teammates’ edits within about a second. The status line shows ✓ synced / ↻ sending / ↓ receiving / ☁ offline, who is here and which file each has open; teammates’ changes, chat and summons appear above it, and notifications pop up (and, with kodeo config desktop on, on your desktop). Offline, your saves wait in the folder and go out version-checked when you’re back. A conflict pauses only that file — press c to compare, keep yours or use KODEO’s. Only one sync engine runs per folder: if KODEO for VS Code is syncing it, watch stands by and takes over when VS Code stops. Teammates see you as “syncing from a local folder”.
--diff3--poll <seconds>--keep-mine--use-kodeo--no-popupskodeo watchBe in the project with your team from the terminal — shown to everyone as “· CLI”, present but never editing.
kodeo uiThe full-screen dashboard.kodeo ui [--project <workspace>/<project>] [--watch]One screen: the project (people with their clients, who’s typing and following whom, who’s running what, plan & usage), files with teammates’ initials on the ones they have open, activity, chat (with @mentions), comments (reply, resolve), the project’s Git (stage, commit, branches, the commit graph) and teammates’ shared terminals. Tab or 1–7 switches panes; : (or Ctrl+K) runs any kodeo command; ? shows every key; the mouse works where your terminal sends it. Side by side on wide terminals, tabs on narrow ones (t toggles; [ and ] resize, remembered). Everything updates live from the room; leaving restores your terminal exactly.
--project <workspace>/<project>--watchkodeo uikodeo ui --watchin a linked folderkodeo whoWho’s here: client, file, typing, following, running.kodeo who [--project <workspace>/<project>] [--follow]Everyone in the project now — with browser, VS Code or CLI, the file they’re in, whether they’re typing, whom they follow (and who follows them), who asked not to be followed, who is syncing a folder and who is running the project.
--project <workspace>/<project>--followkodeo whokodeo who --followkodeo chatRead and send the project’s chat.kodeo chat [message] [--follow] [--limit <n>] [--project <workspace>/<project>]With a message, sends it (@username mentions notify people; anything that looks like a secret is masked first). Without one, shows the last week’s messages — and on a terminal opens a chat box with @-completion where new messages arrive live. --follow streams new messages (as JSON lines with --json).
--follow--limit <n>--project <workspace>/<project>kodeo chatkodeo chat "deploy is green @asha"kodeo chat --follow --jsonfor a botkodeo summonBring everyone to a file and line.kodeo summon <file[:line]> [--note <text>]People in the room get a toast with a Go button; teammates who aren’t get a notification that opens that line. Editors and above only.
--note <text>--project <workspace>/<project>kodeo summon src/app.ts:42 --note "this is the bug"kodeo commentsThe project’s comment threads, by file.kodeo comments [file] [--open | --resolved | --mine | --mentions]Open threads by default, grouped by file with the latest replies. Each has an id for kodeo comment reply|resolve|reopen|show.
--open--resolved--mine--mentions--project <workspace>/<project>kodeo commentskodeo comments src/app.ts --resolvedkodeo commentComment on a line — or reply, resolve, reopen, delete or show a thread, or apply its suggested change.kodeo comment <file:line> <text> · kodeo comment reply|resolve|reopen|delete|show|apply <id> [text]The same threads as the editor and VS Code. Ids can be shortened to their first characters; with no id on a terminal you pick from a list. Mentions notify people; secret-looking text is masked before sending. apply (in the project’s linked folder) puts a suggested change into your copy of the file, pushes that one file — merged into the room if someone has it open — and marks the suggestion applied.
--project <workspace>/<project>kodeo comment src/app.ts:42 "should this be async?"kodeo comment reply 7c2e "done"kodeo comment resolve 7c2ekodeo comment apply 7c2ekodeo inboxYour notifications, by day.kodeo inbox [--unread] [--follow] [--limit <n>] · kodeo inbox read|unread|open <id> · kodeo inbox read --allopen goes where the notification points: a file and line opens in your editor (kodeo code), a ticket shows here, a Help article opens here, anything else opens the browser. --follow prints new ones as they arrive over the CLI’s own live channel — and, with kodeo config desktop on, shows them on your desktop, following KODEO’s pause and quiet hours, never twice on one computer with VS Code.
--unread--follow--limit <n>--allread: mark everything read.kodeo inboxkodeo inbox open 3fa1kodeo inbox --followkodeo terminalsTeammates’ shared terminals in the project.kodeo terminals [--project <workspace>/<project>]What’s shared right now — terminals, tasks, Run output and Python — with its owner, status, watchers and who has the keyboard.
--project <workspace>/<project>kodeo terminalskodeo terminalWatch a teammate’s shared terminal, live.kodeo terminal watch <id>Their screen, full screen in yours. It’s read-only until you ask: press Enter to ask for the keyboard; if they hand it over, your keys go to their terminal — checked by the collab server and again in their browser on every keystroke — until the grant lapses or they take it back. Their output is redrawn by kodeo from a terminal emulator, so nothing in it can act on your terminal. Ctrl+] leaves.
--project <workspace>/<project>kodeo terminal watch 9b1ckodeo previewThe project’s live apps and who’s watching — open a teammate’s app, put one on your phone, stop yours.kodeo preview [ls] · kodeo preview open|stop|qr <id> [--path <page>]Lists the project’s live apps — one per person and port, from the browser editor, kodeo share or VS Code — with how many people are watching each right now, and your links underneath (who they open for, when they end). open opens an app in your browser already signed in (a one-time link); qr prints a QR code for your phone — for a team app it carries a one-time pass (no sign-in on the phone, two minutes, once), for an anyone/password link it’s the link itself; stop ends one you shared (workspace admins can stop anyone’s). Ids can be shortened.
--path <page>open or qr: the page to open, e.g. /dashboard.--project <workspace>/<project>kodeo previewkodeo preview open 3fa1kodeo preview qr 3fa1 --path /checkoutAsk, read and get help without leaving the terminal.
kodeo askAsk KODEO Assist — or, with no question, talk to it.kodeo ask [question] [--new] [--resume <id>] [--history] [--delete <id>]Streamed answers rendered from Markdown, with numbered sources from the Help Center, action cards to pick from, 👍/👎, and past conversations (30 days) to resume. Assist answers questions about KODEO (not your code); it’s told a few state words about the CLI — its version, whether the folder is linked and syncing, your OS family — never your code, files, paths or terminal output. The first time, it asks whether it may look at your account when a question needs it.
--new--resume <id>--history--delete <id>kodeo ask "why was my push refused?"kodeo aska conversationkodeo ask --historykodeo docsSearch and read the Help Center in your terminal.kodeo docs [search…] · kodeo docs <article> · kodeo docs --category <id>Searches every article as you type with the Help Center’s own engine — nothing is sent while you type, and it works offline once the index is cached. Articles open in a pager: y/n says whether it helped, a asks Assist about it, o opens it in the browser. Works signed out.
--category <id>kodeo docskodeo docs two-factorkodeo docs work-locally-with-the-clikodeo supportYour support tickets.kodeo support [new | <number> [reply <text> | solve | reopen | rate <good|bad>]]The same tickets as /tickets: list them, open one (a category, a subject and what happened — kodeo attaches only its state words, never files, code or output; screenshots are added in the browser), read the conversation, reply, mark solved, reopen and rate. Staff replies show in kodeo inbox.
--subject <text>new: the subject (otherwise asked).--category <id>new: account, billing, editor, collaboration, runtime, git, bug, feature, security or other.--message <text>new: what happened (otherwise asked).kodeo supportkodeo support newkodeo support K-7QF2M reply "that fixed it, thanks"kodeo tipsA few things worth knowing.kodeo tipskodeo tipsKODEO’s server-side repository — the one Source Control uses in the browser and VS Code — from the terminal. Your GitHub token stays on KODEO’s server.
kodeo gitThe project’s Git on KODEO.kodeo git <status|stage|unstage|discard|commit|branch|switch|merge|stash|tag|log|blame|diff|pull|push|fetch|publish|link|unlink|clone|checks|connect> […]Per-person staging; commits with co-authors from the room, a secret scan and the branch rules said first; branches switched for everyone (changes parked and brought back); merges with conflicts you resolve in your editor or with --ours/--theirs/--both; stashes; tags; log --graph (a coloured commit graph); blame (shaded by age); diffs; GitHub — pull, push, fetch (--unshallow), publish, link, unlink, clone, CI checks — through KODEO’s GitHub App, with “connect GitHub” in your browser when it’s needed. Not the real git in a folder cloned from git.kodeo.website: kodeo git always acts on the project on KODEO.
--message <text>--all--amend--graph--limit <n>--create <name>--delete <name>--rename <from> <to>--abort--ours--theirs--both--unshallow--private--public--force--staged--with-secrets--project <workspace>/<project>kodeo git statuskodeo git stage --all && kodeo git commit -m "Fix the header"kodeo git branch --create feature/loginkodeo git log --graphkodeo git merge --theirs src/app.tskodeo git pushkodeo prPull requests on the linked GitHub repository.kodeo pr <list|view|diff|review|merge|checkout|create> [number] […]view shows the description, files, conversation, reviews and CI; diff the changes; review comments, approves or asks for changes — with comments on lines of the new code; merge merges, squashes or rebases; checkout switches the project to its branch (for everyone); create opens one from the current branch (pushing it first).
--approve--request-changes--comment--message <text>--line "<file>:<line> <text>"--squash--rebase--title <text>--body <text>--base <branch>--head <branch>--draft--state <open|closed|all>--project <workspace>/<project>kodeo pr listkodeo pr view 12kodeo pr review 12 --approvekodeo pr review 12 --request-changes --line "src/app.ts:40 handle the error"kodeo pr create --title "Login page"Jump to the editor, save and restore checkpoints, and bring deleted files back.
kodeo openOpen the project in the browser — or in VS Code — at a file and line if you give one.kodeo open [file[:line]] [--vscode | --insiders | --cursor | --windsurf | --vscodium]With --vscode (or another editor’s flag) the project opens in that editor through KODEO for VS Code: this folder if it’s linked, otherwise straight from KODEO. The extension must be installed there.
--vscode--insiders--cursor--windsurf--vscodiumkodeo openkodeo open src/app.ts:42kodeo open src/app.ts:42 --vscodethe same line in VS Codekodeo codeOpen VS Code (or Cursor, Windsurf, VSCodium, vscode.dev) at a file and line.kodeo code [file[:line]] [--project <workspace>/<project>] [--insiders | --cursor | --windsurf | --vscodium | --web]Through KODEO for VS Code when it’s installed: this folder if the project is linked here, otherwise straight from KODEO, live with your team. Without the extension, a linked folder still opens with the editor’s own link. Which editor: the flag, then kodeo config editor, then KODEO’s “Open code links in”, then whatever is installed. File names are never put on a shell command line.
--project <workspace>/<project>--insiders--cursor--windsurf--vscodium--webkodeo codekodeo code src/app.ts:42kodeo code src/app.ts:42 --cursorkodeo checkpointSave, list or compare checkpoints of a file on KODEO.kodeo checkpoint <file> [name] · kodeo checkpoint list [file] · kodeo checkpoint diff <id>The same checkpoints as the editor’s history panel. diff shows how a checkpoint differs from the file now — before you restore it. Works in any folder (the project comes from --project or kodeo switch too).
kodeo checkpoint src/app.ts "before refactor"kodeo checkpoint list src/app.tskodeo checkpoint diff 8c1e22kodeo restorePut a checkpoint back on KODEO, then pull it here.kodeo restore <checkpoint-id>Takes the id (or its first characters) from kodeo checkpoint list.
kodeo restore 8c1e22kodeo trashKODEO’s 7-day trash — including files a push deleted.kodeo trash · kodeo trash restore <id>A push’s deletes are grouped, so one restore brings them all back.
kodeo trashkodeo trash restore 51d0aaLet git sign in through kodeo, find out what’s wrong, and get tab completion.
kodeo git-credentialGit’s credential helper for git.kodeo.website.kodeo git-credentialkodeo login sets it up for you (for KODEO’s Git host only). Git then gets a one-hour, Git-only credential for each clone or push — nothing long-lived is stored in ~/.git-credentials. You never run it yourself.
git config --global --add credential.https://git.kodeo.website.helper ""what login does, step 1git config --global --add credential.https://git.kodeo.website.helper "!kodeo git-credential"step 2kodeo doctorCheck everything, with the fix for anything wrong.kodeo doctor [--fix]Node.js, proxy, connection and TLS, your clock, the version, the keychain, the sign-in and session, git and the git helper, KODEO for VS Code (installed, up to date, which folder it syncs), your terminal (colours, Unicode, links), desktop notifications, and where the CLI keeps its settings.
--fixkodeo doctorkodeo doctor --fixkodeo doctor --jsonkodeo authHand your sign-in to KODEO for VS Code — as a new sign-in, nothing copied.kodeo auth handoff --challenge=<S256> --key=<ed25519>Used by the extension’s “Use My kodeo CLI Sign-In”: the extension makes its own key and PKCE secret and passes only their public halves; this asks KODEO for a one-minute, single-use code that only the extension can trade — for a new VS Code sign-in (its own row in Settings → Local access, never wider than this one). You don’t normally run it yourself.
--challenge--keykodeo auth handoff --challenge=… --key=… --jsonwhat the extension runskodeo completionTab completion for your shell.kodeo completion <bash | zsh | fish | powershell>kodeo completion powershell >> $PROFILEPowerShellkodeo completion bash >> ~/.bashrcbashkodeo completion zsh > "${fpath[1]}/_kodeo"zshkodeo completion fish > ~/.config/fish/completions/kodeo.fishfishkodeo helpHelp for every command, one command, or the exit codes.kodeo help [command] · kodeo help exit-codeskodeo helpkodeo help pushkodeo help exit-codesNo command matches that. Try a word like push, conflict, token or git.
--json--quiet--verbose--no-color--plain--ascii--yes--server <url>--version--helpKODEO_TOKENkodeo login; no prompts, no keychain. Remove it from your shell to use your sign-in again.CI=trueKODEO_URLHTTPS_PROXY / NO_PROXYNODE_EXTRA_CA_CERTS / KODEO_CA_FILENO_COLORKODEO_NO_UPDATE_CHECKKODEO_CONFIG_DIRKODEO_PLAINKODEO_REDUCED_MOTIONKODEO_BACKGROUNDKODEO_NERD_FONTKODEO_ASCIIKODEO_NO_DESKTOPPlain git, no plugin: after kodeo login has set git up, these just work — git asks kodeo for a one-hour credential behind the scenes.
git clone https://git.kodeo.website/acme/storefronta full clonegit clone --depth 1 https://git.kodeo.website/acme/storefrontonly the latest commit (fast)git clone --filter=blob:none https://git.kodeo.website/acme/storefronthistory now, file contents when neededgit pushto the project’s branch: the project’s files change for everyonegit push -u origin my-branchanother branch: it just movesgit fetch --unshallowturn a shallow clone into a full onegit clone https://kodeo:$KODEO_TOKEN@git.kodeo.website/acme/storefrontin CI, with a token that has Git accessA push is refused, with the reason, when:
Exit codes · the same in every command · kodeo help exit-codes
First time
npm i -g @kodeohq/clikodeo loginkodeo projectskodeo clone acme/storefrontcd storefrontA day’s work
kodeo pullstart from the latest
kodeo statuskodeo diffkodeo pushHands-free
kodeo watchleave it running; Ctrl+C to stop
Resolving a conflict
kodeo pullwrites <<<<<<< markers where both sides changed the same lines
kodeo statuslists the conflicted files
kodeo pushafter you edit the markers out
A server with no browser (SSH)
npm i -g @kodeohq/clikodeo login --deviceapprove the code on your phone at kodeo.website/device
kodeo clone acme/storefrontCI (GitHub Actions and others)
export KODEO_TOKEN=kdo_p_…from Settings → Local access, kept in your CI’s secrets
npx @kodeohq/cli clone acme/storefront --jsoncd storefront && npx @kodeohq/cli push --jsonPlain git
kodeo loginonce — sets git up
git clone https://git.kodeo.website/acme/storefrontgit commit -am "…" && git pushFrom the CLI to VS Code
kodeo code src/app.ts:42the same line in VS Code (or Cursor, Windsurf…)
The dashboard
kodeo switchpick a project (or cd into a linked folder)
kodeo uiTab moves between panes · : runs a command · ? shows the keys
With the team, from the terminal
kodeo whokodeo chat --followkodeo comment src/app.ts:42 "why?"kodeo inbox --follownotifications as they arrive
Already signed in to VS Code
kodeo login --vscodeconfirm in VS Code — a new CLI sign-in, nothing copied
In the Command Palette (Ctrl+Shift+P / ⌘⇧P) under KODEO: and KODEO Git:. Install it from the Visual Studio Marketplace or, for Cursor, Windsurf and VSCodium, Open VSX.
Sign in
KODEO: Sign InApprove in your browser (passkey or two-factor as usual). The code comes back through the extension’s own link and works once.KODEO: Sign In with a CodeFor machines without a browser: approve a short code at kodeo.website/device.KODEO: Use My kodeo CLI Sign-InA new VS Code sign-in from your signed-in kodeo CLI — nothing is copied. Desktop only.KODEO: Sign OutEnds this editor’s sign-in on KODEO too.KODEO: Manage Sign-ins and TokensYour computers signed in to the CLI, VS Code or Git, and your tokens, in Settings → Local access. Project Tools → Sign-ins signs one out from VS Code.Projects
KODEO: Switch Project…Alt+KRecent projects first, then every project you can reach, by workspace — the button on a row opens it in a new window.KODEO: Open Project…Pick a project (or paste acme/storefront:src/app.ts:42): your linked folder if this computer has one, otherwise straight from KODEO.KODEO: New Project…A workspace, a name and a template — KODEO writes the starter files, then it opens here.KODEO: Clone Project into a Folder…Real files that stay in sync — the same folder kodeo clone makes. Desktop only.KODEO: Sync Linked Folder NowPull teammates’ changes and send yours, right now.KODEO: Send Offline Saves NowSaves made while offline wait on this computer and go out by themselves when KODEO is back — this tries at once (version-checked, never over a teammate’s newer save).KODEO: Go to File…Ctrl+P (kodeo://)Every file in the project, with who has it open — also ⌘P / Ctrl+P in a kodeo:// window.KODEO: Search in Project…Ctrl+Shift+F (kodeo://)KODEO’s own project search, results opening at the line — also ⌘⇧F / Ctrl+Shift+F in a kodeo:// window.KODEO: Open in BrowserThis file and line in KODEO’s web editor.KODEO: Copy Link to This LineA link teammates can open in the browser or VS Code.KODEO: Create CheckpointA named checkpoint of this file — the same history as the web editor.KODEO: Checkpoints…Pick one to compare with the file now, and restore it from there (for everyone, undoable).KODEO Trash: Empty TrashProject Tools → Trash lists deleted files for 7 days — Restore brings one back for everyone; this empties it for good.KODEO: Run in KODEOOpens the project’s Run panel in the browser — the shared runtime teammates can watch.KODEO: Open BillingThe workspace’s plan, storage and runtime hours (Project → Plan & usage shows them here).In the room
KODEO: Follow a Teammate…Follow their file, cursor and scrolling. Typing, scrolling or Esc stops.KODEO: Stop FollowingEscStop following.KODEO: Stop Everyone Following MeAnyone following you stops (in the browser too), and nobody can follow you for a minute.KODEO: Bring Everyone HereSend the room to your line, with a note.KODEO: Watch a Teammate’s Terminal…A terminal a teammate shares from the browser, live in a VS Code terminal — read-only; press Enter in it to ask for the keyboard.KODEO: Comment on This LineAlt+CStart a comment thread on the line — teammates see it in the browser at once; @ suggests people to mention.KODEO: Suggest a Change to These LinesA comment that proposes new text for the selected lines: paste the ```suggestion block it copies, edit it, and post. Anyone who can edit applies it with one click — Apply Suggestion on the thread here, or Apply in the browser.KODEO: Filter Comments…The Comments view: open threads, resolved ones, yours, or where you’re mentioned.KODEO: Share Port with KODEO…Desktop: an app running on this computer gets its own link on KODEO’s preview domain — teammates, signed-in people, anyone, a password or a webhook URL. Loopback only; requests are logged to the “KODEO Preview” output. The Previews view lists everything shared in the project — open a teammate’s running app in your browser or beside your code.KODEO: Shared Ports…The ports you’re sharing from this computer: copy a link, open it, see who’s watching, stop.KODEO: Open Preview in VS CodeA live app — yours or a teammate’s — in a VS Code tab: pick the app, reload, phone / tablet / laptop sizes, who’s watching (and from where), copy the link, open in your browser. The Previews view lists the project’s live apps, one per person and port; click one to watch it here.KODEO: Show PeopleCtrl+Shift+J / ⌘⇧JWho’s here (and in which editor), who’s following whom, who’s running the project.KODEO: Keyboard ShortcutsAlt+/Every KODEO shortcut in one list — pick one to run it, or change the keys.KODEO: Undo My Last EditCtrl+Z / ⌘ZUndo in a live file — only your own edits, never a teammate’s.KODEO: Redo My Last EditCtrl+Shift+Z / ⌘⇧ZRedo your own edit.KODEO: Show KODEO MenuEverything you can do from here, grouped (also the status bar item).KODEO: Open KODEO Dashboard in TerminalRuns kodeo ui — the kodeo CLI’s full-screen dashboard — in a terminal tab, for this linked folder or the open project. Needs the CLI (2.0+).KODEO: Install or Update the kodeo CLIRuns npm i -g @kodeohq/cli in a terminal you can see.KODEO: RefreshReload the project’s files, Git state, comments, usage and notifications.Chat, Assist, Help and Support
KODEO: Open ChatAlt+JThe room’s chat, in the KODEO panel — @ suggests teammates.KODEO: Open Chat in an Editor TabThe chat as an editor tab — as wide as you like.KODEO: Ask AssistAlt+AKODEO Assist in the KODEO panel — answers stream in, with the Help articles they come from, and past conversations to resume. It’s told which editor you’re in and whether you’re live — never your code.KODEO: Search Help…The whole Help Center, searched instantly as you type; articles open in the panel.KODEO: Support TicketsYour tickets: follow the replies, mark one solved, rate the help.KODEO: New Support Ticket…A person from KODEO replies. VS Code attaches its state (editor, live or not, version) — never code.Notifications
KODEO: Mark All as ReadYour KODEO notifications (the Activity view), all read.KODEO: Notification Pop-ups…Which notifications pop up in VS Code (important · everything · off), pause them for an hour, unmute a project — or open your KODEO notification settings.Source Control (the project’s Git)
KODEO Git: CommitCommit your staged changes — with co-authors from the room. Live files are settled first, so the commit holds what’s on screen.KODEO Git: Commit & PushCommit, then push to GitHub (on KODEO’s server).KODEO Git: Commit (Amend)Amend the last commit — refused once it’s pushed.KODEO Git: Stage All ChangesYour staging is yours — teammates stage their own.KODEO Git: Unstage All ChangesUnstage everything you staged.KODEO Git: Switch Branch…Your branches and GitHub’s (checked out as a local branch) — switches the project for everyone; your uncommitted changes are parked and come back.KODEO Git: Create Branch…A new branch, optionally switching to it.KODEO Git: PullFrom GitHub, merged on KODEO’s server.KODEO Git: PushTo GitHub — your GitHub token never reaches VS Code. A protected branch says so before anything is refused.KODEO Git: FetchWhat’s new on GitHub.KODEO Git: Fetch the Full HistoryA shallow clone’s whole history, on demand.KODEO Git: Show Branch RulesThis workspace’s rules for the default branch: protected (admins only) and pull requests required.KODEO Git: Publish to GitHub…Create a GitHub repository for this project.KODEO Git: Initialize RepositoryStart Git for this project (for everyone in it), with an optional .gitignore.KODEO Git: Clone from GitHub…Any public repository by link, or one of yours — its files become the project’s (the old ones go to the trash).KODEO Git: Link a GitHub Repository…Point pushes and pulls at an existing GitHub repository.KODEO Git: Unlink GitHub RepositoryStop syncing with GitHub; the history stays.KODEO Git: Merge Branch…Merge another branch into the current one — conflicts show up in Source Control and in the files.KODEO Git: Open in Merge EditorResolve a conflicted file in VS Code’s 3-way merge editor (or with Accept Current / Incoming / Both above each conflict).KODEO Git: Abort MergePut the files back as they were before the merge.KODEO Git: Rename Branch…Rename a branch.KODEO Git: Delete Branch…Delete a branch (asks before dropping unmerged work).KODEO Git: Stash Changes…Put your changes aside; Pop / Apply / Drop Stash… bring them back or discard them.KODEO Git: Pop Stash…Apply a stash and drop it.KODEO Git: Apply Stash…Apply a stash and keep it.KODEO Git: Drop Stash…Delete a stash for good.KODEO Git: Create Tag…Tag the current commit (a message makes it annotated). Right-click a commit in KODEO History to tag that one.KODEO Git: Delete Tag…Delete a tag on KODEO.KODEO Git: File HistoryThe commits that changed this file, in KODEO History (Source Control) — each opens as a diff; right-click to restore that version.KODEO Git: Show Commit GraphEvery branch drawn as lanes, in an editor tab — click a commit for its files and diffs, right-click for branch, tag, copy and GitHub.KODEO Git: Toggle File BlameWho changed every line of this file, and when — shaded by age.KODEO Git: RefreshReload the repository state.KODEO Git: Create Pull Request…From the current branch to the default one.KODEO Git: RefreshReload pull requests and CI checks. Click a pull request to review it in VS Code: files, line comments, approve or request changes, merge, check out.This computer
KODEO: What’s NewThe walkthrough: what KODEO for VS Code does, step by step.KODEO: Reset KODEO on This Computer…Sign out and forget what KODEO keeps here — cached files, recent projects, the Help index, pop-up choices, offline saves (it says how many first). Settings and projects are untouched.Settings
kodeo.serverThe KODEO server (https only; http://localhost for development). Default https://www.kodeo.website. Not synced between computers.kodeo.notifications.popupsWhich KODEO notifications pop up in VS Code: important (default — Push-on types, mentions, replies, reviews, support replies, anything sent to this computer) · all · off. KODEO’s pause and quiet hours apply.kodeo.presence.showNamesShow teammates’ names next to their cursors (initials once they’re still); hover a cursor for who, where and what. Left unset (2.2+), it follows your KODEO editor setting — always, while typing, or on hover only; on or off here overrides it.kodeo.presence.explorerBadgesBadge files teammates have open — explorer, tabs, Go to File — with their initials. Default on.kodeo.roomMessagesPop up teammates’ comments, replies, chat messages and someone starting to follow you. Default on.kodeo.git.inlineBlameWho last changed the line your cursor is on, at the end of the line. Default on.kodeo.linkedFolder.syncOnSaveIn a linked folder, send saved files to KODEO right away. Default on.kodeo.openLinksInWhere Open in VS Code links open a project: linked (default) · remote · ask. Per computer.kodeo.accessibility.announceAnnounce who joins or leaves the room, and the room going offline or back: auto (default — with VS Code’s screen-reader mode) · always · never.kodeo.telemetry.sharePerformanceSend a few anonymous speed numbers (activation, opening a project, joining the room, edit round trips). Off by default, and never while VS Code’s telemetry is off.Questions
A workspace, a project and a live editor in under a minute. Free, no card.