Getting Started¶
Prerequisites¶
Only mise needs to be on your PATH. It manages everything else.
Once mise is installed, mise install pulls down all tools declared in .mise.toml — currently Python and uv for the scaffold itself, then stack-specific tooling after init.
Install the CLIs for existing repos¶
If you want to use hk / harness-kit from any repository, install Harness
Toolkit as a uv tool:
For a pinned release tag:
For local development from a checkout:
Verify:
Use hk for portable planning in existing repos. Use harness-scaffold when
initializing a new repo from the template.
Initialize a project¶
Interactive¶
git clone https://github.com/safurrier/harness-toolkit.git my-project
cd my-project
mise install
mise run init
The interactive flow prompts for:
- Project name — lowercase, hyphens allowed (e.g.
my-service) - Description — one-line project description
- Shape —
single(one language) orapps(workspace with multiple apps) - Stack —
python,go,rust, orweb - Author name and email
- Options — pre-commit hooks, example code
Non-interactive¶
Full flag reference:
| Flag | Required | Default | Description |
|---|---|---|---|
--name |
Yes | — | Project name (lowercase, hyphens) |
--description |
No | A <name> project |
One-line description |
--shape |
No | single |
single or apps |
--stack |
No | python |
python, go, rust, or web |
--modules |
For apps | — | Comma-separated module names |
--go-module |
For Go | github.com/your-org/<name> |
Go module path |
--web-ui |
For Web | plain |
Web UI variant: plain, tailwind, or shadcn |
--web-db |
For Web | d1 |
Cloudflare D1 access layer: d1 or drizzle-d1 |
--author-name |
No | — | Author name |
--author-email |
No | — | Author email |
--no-hooks |
No | hooks enabled | Skip pre-commit installation |
--no-examples |
No | examples kept | Remove example source files |
For a Cloudflare-ready web app:
For the more opinionated app starter with Tailwind, shadcn/ui, and Drizzle over Cloudflare D1:
mise run init -- \
--non-interactive \
--name my-dashboard \
--shape single \
--stack web \
--web-ui shadcn \
--web-db drizzle-d1
After init¶
mise run setup # install dependencies
mise run check # verify everything passes
mise run dev # start developing
What init does
See Init System for a detailed walkthrough of everything mise run init does to transform the scaffold into your project.