Kedge's command line runs over SSH. Install the optional shortcut to use
kedge in place of ssh kedge.dev:
ssh kedge.dev setup | sh
Your SSH key signs you in. The installer also adds shell completion and the Kedge skill to detected agent environments.
deploy a project
From a project directory:
kedge up --dry-run
kedge up
kedge up --volume /data --machines 1
The first command previews the app name and Git push. The second deploys the current branch, initializing the repository and remote when needed. Later runs update the same app. See deploy workflows for branches, previews, GitHub, and rollback.
The optional volume and machine flags are deployment settings. Kedge carries them through the Git push and stores them on the app; they do not create a config file. See the configuration reference.
work with an app
kedge apps
kedge status myapp
kedge logs myapp
kedge env myapp LOG_LEVEL=debug
kedge shell myapp
Commands accept an app name or ID. Inside a project directory with a Kedge Git
remote, commands can usually infer the app, so kedge logs is enough.
Logs & metrics covers the streaming and query options.
start an agent task
Build a new app or continue an existing one with the built-in agent:
kedge agent "build a small status page"
kedge agent --app myapp "add a leaderboard"
With a terminal, each command stays open for follow-up turns. kedge agent --app myapp opens directly at the prompt. make, build, and create are
unquoted aliases: kedge make me a status page.
See coding agents & workspaces for follow-ups, browser sessions, project boundaries, and named-workspace commands.
use SSH directly
The shortcut is optional. These are equivalent:
kedge apps
ssh kedge.dev apps
Open an app shell directly by using its name as the SSH user:
ssh myapp@kedge.run
Raw SSH also accepts direct content, exact input on stdin, Git pushes, and directory uploads:
ssh kedge.dev publish '# Hello'
ssh kedge.dev agent 'make me a status page'
scp -r public/ kedge.dev:my-site/
git push ssh://kedge.dev/$(kedge whoami)/myapp.git main
One-shot publishes reserve stdout for the full app URL. Use an explicit
publish --verbose to add file, data-model, and timing details on stderr; agent
one-shots put sparse progress and failures there. Pass --verbose after the
agent verb for the full tool trace. Pipe a file to publish when its bytes need
to remain exact. Only kedge up is local; it packages the Git steps behind a
single command.
command reference
Run kedge with no command to see the same list in your terminal.
deploy and run
kedge up [--name <name>] [--dry-run] [--<property> <value>]— Deploy the current directorykedge publish [--app <name>] [content] [--verbose] [options]— Deploy content or a prebuilt imagekedge import <git-url> [name]— Deploy a public Git repositorykedge connect— Connect a GitHub repository for automatic deployskedge eval <runtime> [-no-network]— Run stdin once in a disposable runtimekedge sandbox <runtime> [-no-network]— Open a disposable runtime shellkedge agent [--app <name>] [--verbose|--claude|--codex] [prompt...]— Build or continue an app with an interactive agent (also: make, build, create)
manage apps
kedge apps— List your appskedge status <app>— Inspect an appkedge logs <app> [filter] [options]— Stream an app's logskedge metrics <app> [options]— Show an app's service metricskedge shell [app|-] [ordinal]— Open an app shell or a disposable shell with -kedge machines <app> [migrate <ordinal> <region>]— List or migrate an app's machineskedge workspace <create|list|run|ps|stop|archive> [workspace] [args]— Create workspaces and dispatch agent taskskedge volumes [status <volume>|rm <volume>]— List, inspect, or delete retained machine volumeskedge fork <app> [new-name]— Copy an app and its current statekedge rollback <app>— Return to the previous deploykedge delete <app-or-glob>...— Delete one or more appskedge expire <app> <deadline|clear>— Schedule or cancel automatic deletion
configure apps
kedge env <app> [KEY=VALUE ...] [options]— View or change environment variableskedge domain <add|list|check|remove> <app> [domain] [options]— Manage an app's custom domainskedge domains <search|buy|list|renew|autorenew> [options]— Search, register, and renew domainskedge db [app-or-database|create|rename|attach|detach|rm] [args]— Open a SQL console or manage named databaseskedge runners [status|enable|disable] [organization|owner/repository]— Manage GitHub Actions runners
account
kedge whoami— Print your account namespacekedge login— Keep guest apps and link this SSH keykedge token [name] [-apps a,b] [-actions read,deploy] [-expires 30d] | list | revoke <id> | show <token> | restrict <token> [flags]— Create, inspect, narrow, and revoke API tokenskedge billing— View usage and balancekedge version— Show the server versionkedge setup— Install or update the CLI, completion, and agent skill