The kodeo CLI 2.0

Your terminal.Your team.One room.

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/cli

Free on every plan · Node 20+ · Windows, macOS, Linux. Create a free account →

New in 2.0

Everything KODEO does,in a terminal.

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.

In the room, as “· CLI”

kodeo who, kodeo chat --follow, kodeo summon — present for everyone, never taking an editing seat.

Notifications, even on your desktop

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.

Assist and Help, here

kodeo ask streams answers with their sources; kodeo docs searches the Help Center as you type — offline too.

Git and pull requests

Stage, commit with co-authors, switch branches for everyone, merge, the commit graph, blame by age — and review PRs line by line.

Teammates’ terminals

Watch a terminal shared from the browser, full screen. Enter asks for the keyboard — redrawn safely, so nothing in it can touch yours.

Your theme, in your terminal

KODEO’s 20 themes in truecolor, 256 or 16 colours — automatically your own. --plain for screen readers; NO_COLOR honoured.

Made for VS Code too

One sync engine per folder, kodeo code at a file and line, kodeo login --vscode — and VS Code can open the dashboard.

Sixty seconds

Install, sign in,you’re in.

In PowerShell or Windows Terminal:

  1. winget install OpenJS.NodeJS.LTS
  2. npm i -g @kodeohq/cli
  3. kodeo login
  4. kodeo

In Terminal or iTerm2:

  1. brew install node
  2. npm i -g @kodeohq/cli
  3. kodeo login
  4. kodeo

In any terminal — or over SSH:

  1. # Node 20+ from your package manager or nodejs.org
  2. npm i -g @kodeohq/cli
  3. kodeo login --device
  4. kodeo

Already signed in to VS Code? kodeo login --vscode. Then kodeo opens HOME, kodeo ui the dashboard, kodeo tips the rest.

The dashboard

Seven panes,one keystroke apart.

  1. Project

    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.

  2. Files

    The tree with teammates’ initials on the files they have open. Enter opens one in your editor at that file.

  3. Activity

    Notifications by day — open, mark read or unread, all read.

  4. Chat

    The project’s chat, live, with @mention completion. Anything that looks like a secret is masked before it’s sent.

  5. Comments

    Threads by file — reply, resolve, reopen, or open the line in your editor.

  6. Git

    Stage, unstage and commit; switch branches; pull and push; the commit graph with l.

  7. Terminals

    Teammates’ shared terminals — Enter watches one full screen.

  • TabNext pane
  • 1…7Jump to a pane
  • :Run any kodeo command
  • CtrlKThe command bar, too
  • ?Every key
  • []Narrower / wider
  • tTabs or side by side
  • qLeave — your shell as it was

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

Two tools,one computer.

  1. One sync engine per folder

    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.

  2. Notifications once

    Shown by the CLI or by VS Code on your computer — never both.

  3. Sign-ins both ways

    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.

  4. Straight to the line

    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

One project,wherever you type.

The kodeo CLI

A folder that syncs itself

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/storefront
kodeo watch

KODEO for VS Code

Live in your editor

VS Code, Cursor, Windsurf or vscode.dev in the room — straight from KODEO or in a linked folder.

ext install kodeohq.kodeo

KODEO as a Git remote

Plain git, no plugin

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/storefront

CI and scripts

Tokens that can’t be misread

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 --json

Safe by default

It never guesseswith your work.

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.

--dry-run on every write

See exactly what would move, in both directions, before it does.

Real three-way merges

Changed on both sides? Merged. Real conflicts get markers — or press c in watch to keep yours or KODEO’s.

All or nothing

A push is one transaction. If any file moved on KODEO since your pull, nothing lands — and you’re told who changed what.

Nothing can hijack your terminal

Chat, comments, Help and Assist are stripped of escape sequences; a teammate’s terminal is redrawn from an emulator, never piped raw.

Secrets ask first

.env files, keys and credential-looking text ask before their first push, are masked in chat, and are refused in CI.

Binary by the bytes

Decided by content, not extension. Binary files never get conflict markers: KODEO’s copy is saved beside yours.

Presence, never a seat

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.

Opt-in, and it says so

Desktop notifications and speed numbers are off until you turn them on; Assist gets state words only, never your code.

Signing in

A token isa session.

How KODEO protects you

Reference

Every command,every flag.

Open any command for what it does, its options and examples you can copy. The same help is in your terminal: kodeo help ui.

Sign in & your account

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
Print a code to enter at kodeo.website/device instead — for SSH, containers and machines without a browser.
--vscode
Use KODEO for VS Code’s sign-in on this computer (2.1+): VS Code asks you to confirm, and the CLI gets a new sign-in of its own — never wider than VS Code’s, never with the Git remote.
--read-only
Ask for read-only access (clone, pull, status; no push).
--no-git
Don’t set git up for git.kodeo.website.
--no-browser
Print the sign-in link instead of opening a browser.
kodeo login
kodeo login --deviceon a server over SSH
kodeo login --vscodealready signed in to VS Code
kodeo logoutSign this computer out — on KODEO too.
kodeo logout

Ends the session on KODEO (it disappears from Settings → Local access) and deletes it from this computer.

kodeo logout
kodeo whoamiWho you’re signed in as, and what this sign-in can do.
kodeo whoami

Shows the account, the computer, its access (read or write, which workspaces, Git) and when it expires.

kodeo whoami
kodeo whoami --jsonfor scripts
kodeo 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 tokens
kodeo tokens create
kodeo tokens revoke 3f9a1c2e
kodeo 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.

--all
Include sign-ins that have ended recently.
kodeo signins
kodeo signins revoke 4b2f
kodeo 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>
Only this workspace.
kodeo usage
kodeo usage --workspace acme --json
kodeo 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.

--reset
Put every setting back to its default (your sign-in is untouched).
kodeo config
kodeo config theme aurora
kodeo config desktop on
kodeo config plain onfor screen readers
kodeo 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-folders
Leave linked folders linked.
kodeo reset
kodeo reset --yeswithout asking

Projects & folders

Get 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
Print only workspace/project, one per line (for scripts).
--workspace <slug>
Only this workspace.
kodeo projects
kodeo projects --names
kodeo 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.

--clear
Forget the switched project.
kodeo switch
kodeo switch acme/storefront
kodeo 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>
Where to create it (asked when you can create in several).
--template <id>
blank, nextjs, react-vite, node-express, python-fastapi, go, rust or static.
--clone [folder]
Clone it straight away (into ./<project> by default).
--open
Open it in the browser.
kodeo new
kodeo new "Landing page" --template nextjs --clone
kodeo 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/storefront
kodeo clone acme/storefront shopinto ./shop
kodeo 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>
The workspace to create it in.
--name <name>
The project’s name (default: the folder’s name).
--allow-secrets <path>
Upload a file that looks like a secret (repeatable).
kodeo init
kodeo init --workspace acme --name "Landing page" --yes

Syncing

See 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.

--offline
Only look at this folder (no network).
kodeo status
kodeo status --json
kodeo 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
Side by side, whatever the width.
--unified
One column, whatever the width.
kodeo diff
kodeo diff src/app.ts --side
kodeo 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
Resolve every conflict with your version.
--theirs
Resolve every conflict with KODEO’s version.
--diff3
Conflict markers include the common base.
--switch
Follow the project to the branch it switched to.
--dry-run
Show what would change, change nothing.
kodeo pull
kodeo pull --theirs
kodeo pull --dry-run
kodeo 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
Show exactly what would be pushed, push nothing.
--allow-secrets <path>
Push a file that looks like a secret (repeatable; required under CI).
--force
Push files that still contain conflict markers, as they are.
kodeo push --dry-run
kodeo push
kodeo 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
Conflict markers include the common base.
--poll <seconds>
How often to double-check KODEO as a backup to the live connection (default 15).
--keep-mine
Settle a file changed on both sides with your version (no markers).
--use-kodeo
Settle a file changed on both sides with KODEO’s version.
--no-popups
Don’t show notifications or chat above the status line.
kodeo watch

The room: dashboard, people, chat, comments, notifications

Be 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>
Which project (default: this folder’s, or the switched one).
--watch
Also keep this linked folder in sync while the dashboard is open.
kodeo ui
kodeo ui --watchin a linked folder
kodeo 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>
Which project.
--follow
Keep the list live until Ctrl+C.
kodeo who
kodeo who --follow
kodeo 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
Keep printing new messages until Ctrl+C.
--limit <n>
How many recent messages to show (default 30).
--project <workspace>/<project>
Which project.
kodeo chat
kodeo chat "deploy is green @asha"
kodeo chat --follow --jsonfor a bot
kodeo 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>
A short note with it (140 characters).
--project <workspace>/<project>
Which 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
Unresolved threads (the default).
--resolved
Resolved threads.
--mine
Threads you started or replied to.
--mentions
Threads that @mention you.
--project <workspace>/<project>
Which project.
kodeo comments
kodeo comments src/app.ts --resolved
kodeo 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>
Which project.
kodeo comment src/app.ts:42 "should this be async?"
kodeo comment reply 7c2e "done"
kodeo comment resolve 7c2e
kodeo comment apply 7c2e
kodeo inboxYour notifications, by day.
kodeo inbox [--unread] [--follow] [--limit <n>] · kodeo inbox read|unread|open <id> · kodeo inbox read --all

open 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
Only unread notifications.
--follow
Keep printing new notifications until Ctrl+C.
--limit <n>
How many to show (default 30, at most 50).
--all
With read: mark everything read.
kodeo inbox
kodeo inbox open 3fa1
kodeo inbox --follow
kodeo 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>
Which project.
kodeo terminals
kodeo 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>
Which project.
kodeo terminal watch 9b1c
kodeo shareShare an app running on this computer through KODEO’s preview server.
kodeo share <port> [--team | --link | --public | --password <pw> | --webhook [path]] [--expires 1h] [--keep] [--no-qr]

Gives the app on localhost:<port> its own address on KODEO’s preview domain — the same links, access rules and viewers list as the browser editor — with a QR code and a live log of every request. It only ever talks to this computer (127.0.0.1 or ::1) on that port; no host name is resolved and no redirect followed. Viewers of a link anyone can open see a one-time notice that it isn’t a KODEO page. Ctrl+C stops sharing and ends the link (--keep leaves it, paused, until it expires). Pro and Team; a Team policy can turn it off.

--team
Workspace members only (the default).
--link
Anyone signed in to KODEO (a Team policy may limit it to some email domains).
--public
Anyone with the link.
--password <pw>
Anyone with the link and this password (6+ characters).
--webhook [path]
A URL for test webhooks — POSTs from GitHub, Cashfree, Stripe… reach your app (only under the path).
--expires <time>
How long the link lasts: 15m, 1h (default), 24h, 7d — up to your plan’s or the workspace’s longest.
--keep
Leave the link when you stop (paused until you share again).
--no-qr
Don’t print the QR code.
--name <label>
A label for the link, shown in the Share menu (e.g. “API demo”).
--project <workspace>/<project>
Which project it belongs to.
kodeo share 3000
kodeo share 5173 --public --expires 24h
kodeo share 8080 --webhook /api/webhooks
kodeo 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>
With open or qr: the page to open, e.g. /dashboard.
--project <workspace>/<project>
Which project.
kodeo preview
kodeo preview open 3fa1
kodeo preview qr 3fa1 --path /checkout

KODEO Assist, Help & support

Ask, 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
Start a new conversation.
--resume <id>
Carry on a past conversation.
--history
List your conversations of the last 30 days.
--delete <id>
Forget a conversation.
kodeo ask "why was my push refused?"
kodeo aska conversation
kodeo ask --history
kodeo 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>
List one category’s articles (getting-started, account, workspaces, billing, editor, collaboration, runtime, git, troubleshooting).
kodeo docs
kodeo docs two-factor
kodeo docs work-locally-with-the-cli
kodeo 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>
With new: the subject (otherwise asked).
--category <id>
With new: account, billing, editor, collaboration, runtime, git, bug, feature, security or other.
--message <text>
With new: what happened (otherwise asked).
kodeo support
kodeo support new
kodeo support K-7QF2M reply "that fixed it, thanks"
kodeo tipsA few things worth knowing.
kodeo tips
kodeo tips

The project’s Git & pull requests

KODEO’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>
The commit (or stash, or tag) message (also -m).
--all
stage/unstage/discard everything · commit everything · branch: include GitHub’s · log: every branch.
--amend
commit: replace the last commit.
--graph
log: draw the commit graph.
--limit <n>
log: how many commits (default 60).
--create <name>
branch: create it and switch everyone to it.
--delete <name>
branch/tag: delete it.
--rename <from> <to>
branch: rename it.
--abort
merge: give the merge up.
--ours
merge: settle every conflict in these files with the project’s side, then stage them.
--theirs
merge: settle them with the merged branch’s side.
--both
merge: keep both sides, ours first.
--unshallow
fetch: the full history of a shallow clone.
--private
publish: a private GitHub repository (the default).
--public
publish: a public GitHub repository.
--force
stage: files that look secret · push: force-push · branch --delete: unmerged.
--staged
diff: what you’ve staged.
--with-secrets
commit: even though the secret scan found something.
--project <workspace>/<project>
Which project.
kodeo git status
kodeo git stage --all && kodeo git commit -m "Fix the header"
kodeo git branch --create feature/login
kodeo git log --graph
kodeo git merge --theirs src/app.ts
kodeo git push
kodeo 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
review: approve it.
--request-changes
review: ask for changes.
--comment
review: comment without approving.
--message <text>
review: the review’s comment (also -m).
--line "<file>:<line> <text>"
review: a comment on a line of the new code (repeatable).
--squash
merge: squash and merge.
--rebase
merge: rebase and merge (a merge commit by default).
--title <text>
create: the title (merge: the commit title).
--body <text>
create: the description.
--base <branch>
create: the branch to merge into (the repository’s default).
--head <branch>
create: the branch with the changes (the current one).
--draft
create: as a draft.
--state <open|closed|all>
list: which ones (open by default).
--project <workspace>/<project>
Which project.
kodeo pr list
kodeo pr view 12
kodeo pr review 12 --approve
kodeo pr review 12 --request-changes --line "src/app.ts:40 handle the error"
kodeo pr create --title "Login page"

The browser, editors, history & trash

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
Open in VS Code (KODEO for VS Code).
--insiders
Open in VS Code Insiders.
--cursor
Open in Cursor.
--windsurf
Open in Windsurf.
--vscodium
Open in VSCodium.
kodeo open
kodeo open src/app.ts:42
kodeo open src/app.ts:42 --vscodethe same line in VS Code
kodeo 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>
Which project (default: this folder’s, or the switched one).
--insiders
VS Code Insiders.
--cursor
Cursor.
--windsurf
Windsurf.
--vscodium
VSCodium.
--web
vscode.dev in the browser.
kodeo code
kodeo code src/app.ts:42
kodeo code src/app.ts:42 --cursor
kodeo 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.ts
kodeo checkpoint diff 8c1e22
kodeo 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 8c1e22
kodeo 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 trash
kodeo trash restore 51d0aa

Git, diagnostics & your shell

Let 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-credential

kodeo 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 1
git config --global --add credential.https://git.kodeo.website.helper "!kodeo git-credential"step 2
kodeo 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.

--fix
Fix what can be fixed here: install or update KODEO for VS Code in your editor, repair the git helper.
kodeo doctor
kodeo doctor --fix
kodeo doctor --json
kodeo 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
The extension’s PKCE challenge (base64url SHA-256 of its secret).
--key
The extension’s own public device key.
kodeo auth handoff --challenge=… --key=… --jsonwhat the extension runs
kodeo completionTab completion for your shell.
kodeo completion <bash | zsh | fish | powershell>
kodeo completion powershell >> $PROFILEPowerShell
kodeo completion bash >> ~/.bashrcbash
kodeo completion zsh > "${fpath[1]}/_kodeo"zsh
kodeo completion fish > ~/.config/fish/completions/kodeo.fishfish
kodeo helpHelp for every command, one command, or the exit codes.
kodeo help [command] · kodeo help exit-codes
kodeo help
kodeo help push
kodeo help exit-codes

Every command also takes

--json
Machine-readable output with a versioned schema (kodeo.<command>/1).
--quiet
Only errors.
--verbose
Show every request KODEO answers — method, path, status, size and time (on stderr, never a token).
--no-color
No colours (also NO_COLOR=1).
--plain
Linear text for screen readers — no boxes, no cursor movement, no animation (also KODEO_PLAIN=1).
--ascii
Plain ASCII symbols instead of Unicode (old consoles).
--yes
Answer yes to questions (they’re never asked under CI=true).
--server <url>
Another KODEO server (also KODEO_URL).
--version
Print the version.
--help
Help for the command.

Environment

KODEO_TOKEN
A personal access token (kdo_p_…). Used instead of kodeo login; no prompts, no keychain. Remove it from your shell to use your sign-in again.
CI=true
Never prompt — a flag is needed instead (e.g. --yes, --allow-secrets).
KODEO_URL
Another KODEO server (default https://www.kodeo.website).
HTTPS_PROXY / NO_PROXY
Go through a proxy, or skip it for some hosts.
NODE_EXTRA_CA_CERTS / KODEO_CA_FILE
Trust a company certificate (TLS inspection).
NO_COLOR
Plain text.
KODEO_NO_UPDATE_CHECK
Don’t mention newer versions.
KODEO_CONFIG_DIR
Where settings and sign-ins are kept (default: your user config folder).
KODEO_PLAIN
Plain mode, like --plain.
KODEO_REDUCED_MOTION
No spinners or transitions.
KODEO_BACKGROUND
dark or light — when your terminal can’t say.
KODEO_NERD_FONT
Use Nerd Font icons (your terminal’s font must have them).
KODEO_ASCII
ASCII symbols, like --ascii.
KODEO_NO_DESKTOP
Never show desktop notifications on this machine.

KODEO as a Git remote

Plain 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 clone
git 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 needed
git pushto the project’s branch: the project’s files change for everyone
git push -u origin my-branchanother branch: it just moves
git fetch --unshallowturn a shallow clone into a full one
git clone https://kodeo:$KODEO_TOKEN@git.kodeo.website/acme/storefrontin CI, with a token that has Git access

A push is refused, with the reason, when:

  • A teammate has unsaved or uncommitted changes to a file the push changes (you’re told who).
  • Rewriting the project’s branch (no force-push to the branch everyone is on).
  • A secret in the new commits, a branch policy, a Viewer’s role, maintenance, or the plan’s repository size.

Exit codes · the same in every command · kodeo help exit-codes

0 Success1 Something went wrong (see the message)2 The command was used incorrectly3 Not signed in, or the token was rejected4 Conflicts were written into files5 Push refused: files changed on KODEO since your last pull6 A plan limit was reached7 KODEO could not be reached8 Not found, or you have no access9 Blocked by a workspace policy

Start to finish

First time

  1. npm i -g @kodeohq/cli
  2. kodeo login
  3. kodeo projects
  4. kodeo clone acme/storefront
  5. cd storefront

A day’s work

  1. kodeo pull

    start from the latest

  2. kodeo status
  3. kodeo diff
  4. kodeo push

Hands-free

  1. kodeo watch

    leave it running; Ctrl+C to stop

Resolving a conflict

  1. kodeo pull

    writes <<<<<<< markers where both sides changed the same lines

  2. kodeo status

    lists the conflicted files

  3. kodeo push

    after you edit the markers out

A server with no browser (SSH)

  1. npm i -g @kodeohq/cli
  2. kodeo login --device

    approve the code on your phone at kodeo.website/device

  3. kodeo clone acme/storefront

CI (GitHub Actions and others)

  1. export KODEO_TOKEN=kdo_p_…

    from Settings → Local access, kept in your CI’s secrets

  2. npx @kodeohq/cli clone acme/storefront --json
  3. cd storefront && npx @kodeohq/cli push --json

Plain git

  1. kodeo login

    once — sets git up

  2. git clone https://git.kodeo.website/acme/storefront
  3. git commit -am "…" && git push

From the CLI to VS Code

  1. kodeo code src/app.ts:42

    the same line in VS Code (or Cursor, Windsurf…)

The dashboard

  1. kodeo switch

    pick a project (or cd into a linked folder)

  2. kodeo ui

    Tab moves between panes · : runs a command · ? shows the keys

With the team, from the terminal

  1. kodeo who
  2. kodeo chat --follow
  3. kodeo comment src/app.ts:42 "why?"
  4. kodeo inbox --follow

    notifications as they arrive

Already signed in to VS Code

  1. kodeo login --vscode

    confirm in VS Code — a new CLI sign-in, nothing copied

KODEO for VS Code — all 83 commands

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

Asked, andanswered plainly.

What’s new in 2.0?
kodeo ui (a full-screen dashboard), HOME when you type kodeo, the room from the terminal (who, chat, summon, comments, inbox), KODEO Assist and the Help Center, support tickets, the project’s Git and pull requests, teammates’ terminals, a watch with a live status line, your KODEO theme in the terminal, plain mode, and VS Code integration. Every 1.x command works as before.
Do teammates see me when I use the CLI?
In the room you appear as “· CLI” while kodeo who, chat or ui is open — present, not editing, with no cursor to follow. kodeo watch shows as “syncing from a local folder”.
Can I run my project locally?
Yes — it’s real files on your disk, so npm run dev, tests and builds work in any terminal. That run is yours: teammates don’t see it, and it uses no runtime hours.
Is the dashboard heavy?
No. It draws only the rows that change, nothing when nothing changes, and updates from the room’s events — it never polls. Each command loads only its own code, so kodeo --version and kodeo status stay instant.
Does it work with a screen reader?
Use --plain (or kodeo config plain on, or KODEO_PLAIN=1): linear text, full words, no boxes, no cursor movement, no animation. Every colour is also a word or a symbol, and NO_COLOR is honoured.
Which terminals and systems?
Windows Terminal, PowerShell, cmd, VS Code’s terminal, macOS Terminal and iTerm2, Linux terminals, tmux, screen and SSH — anywhere Node 20 runs. Old consoles get ASCII and 16 colours automatically.
Does KODEO Assist read my code?
No. From the CLI it’s told a few state words — kodeo’s version, your OS family, whether the folder is linked and syncing — checked one by one on the server. With your OK it can look at your plan and sign-ins; never files, code or terminal output.
How is signing in protected?
kodeo login uses your browser (PKCE, returning only to 127.0.0.1), a device code approved with a passkey or your password, or VS Code’s sign-in. Each sign-in is bound to a key in your computer’s keychain and appears in Settings → Local access, where one click ends it. kodeo reset removes everything from this computer.

Ready whenyou are.

A workspace, a project and a live editor in under a minute. Free, no card.