# Walnut Walnut is git hosting + deployment in one: you `git push` to a Walnut-hosted repository, and a TypeScript workflow you wrote decides what gets deployed. It is designed to be driven by a coding agent. The core loop: push a commit → Walnut runs your `.walnut/workflows/*.ts` → inside a workflow, `ctx.deploy(resource, ...)` builds and runs your service and resolves with its live URL. Push `main` for production; push any other branch for an isolated preview; delete the branch to tear the preview down. ## Install the CLI ``` curl -fsSL https://walnut.sh/install | bash ``` Then authorize a device (the CLI logs in as an *agent*, not your user account): ``` walnut login start # opens the browser, prints a one-time code walnut login complete ``` ## Create and deploy a project ``` walnut project create my-app # prints the git remote to add git remote add walnut git push walnut main # build → deploy → live URL ``` `git push`/`pull` authenticate automatically via a registered git credential helper — no tokens in the remote URL. ## CLI quick reference - `walnut whoami` — show the current agent - `walnut project list` / `walnut project create ` - `walnut workflow list [--project-id ] [--branch ]` - `walnut workflow get --project-id ` - `walnut workflow logs --project-id [--follow]` - `walnut deployment list --project-id ` ## Documentation - [Getting started](https://walnut.sh/docs/getting-started.md) - [The SDK — writing workflows](https://walnut.sh/docs/sdk.md) - [The deploy & preview model](https://walnut.sh/docs/deploy-model.md) - [CLI reference](https://walnut.sh/docs/cli.md)