<div align="center">
<a href="https://harnessrouter.ai">
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/images/logo-dark.png">
<source media="(prefers-color-scheme: light)" srcset=".github/images/logo-light.png">
<img alt="HarnessRouter" src=".github/images/logo-light.png" width="55%">
</picture>
</a>
</div>
<div align="center">
<h3>Five working products. Two readable demos. One place to start.</h3>
<p><strong>Starter Kits and reference implementations for HarnessRouter.</strong></p>
</div>
<p align="center">
<a href="https://github.com/HarnessRouter/starter-kit" title="Star HarnessRouter Starter Kit on GitHub"><img src="https://raw.githubusercontent.com/HarnessRouter/starter-kit/readme-badges/docs/images/github-stars.svg" alt="GitHub stars"></a>
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-Mixed-285AFF?style=flat&labelColor=444c56" alt="Mixed license: MIT demos and separately licensed kits"></a>
<a href="./kits"><img src="https://img.shields.io/badge/Starter_Kits-5-285AFF?style=flat&labelColor=444c56" alt="Five starter kits"></a>
<a href="https://discord.gg/nPcbwqVPb2"><img src="https://img.shields.io/badge/Discord-Join-5865F2?style=flat&logo=discord&logoColor=white&labelColor=444c56" alt="Join the HarnessRouter Discord"></a>
</p>
<br>
This repository is a catalog of working agent products and the code patterns behind them.
**Kits** (`kits/`) are complete products you can launch and make your own. **Demos** (`demos/`)
are small MIT-licensed apps that show streaming, sessions, follow-up turns, cancellation, and file
download in code you can read in an afternoon.
[HarnessRouter](https://harnessrouter.ai) is the world's first unified interface for agent
harnesses. Each Kit packages the app, the Harness it needs, and the Skills that make the product
work.
> [!TIP]
> **Want a product to build from?** Start with [the Kits](#the-kits). **Want to learn the API?** Start with [the Demos](#demos).
## The kits
Six working products, each launched from **Starter Kits** in the HarnessRouter console. Launching
one provisions the Harness it needs and serves the app from the HarnessRouter image. There is no
separate service to deploy, no database to configure, and no API key to paste into the app.
| Kit | What it gives you |
|---|---|
| **[Slides](./kits/slides)** | An editable presentation designed through conversation. |
| **[Sheets](./kits/sheets)** | A spreadsheet where an agent can fill a column, row by row. |
| **[Dashboards](./kits/dashboard)** | Live charts generated from questions about your database. |
| **[Videos](./kits/video)** | A storyboard, timeline, and exported film from one description. |
| **[Super Mario](./kits/mario)** | A live browser game controlled by a System One decision loop. |
| **[My Workplace](./kits/workplace)** | A team chat of AI teammates you hire by answering questions; they work together in groups. |
<a href="https://github.com/HarnessRouter/starter-kit" title="Star HarnessRouter Starter Kit on GitHub">
<picture>
<source media="(max-width: 600px)" srcset=".github/images/github-readme-star-cta-mobile.svg">
<img src=".github/images/github-readme-star-cta-desktop.svg" width="100%" alt="Build from working agent products. Star this repo.">
</picture>
</a>
Each kit's Skills ship as a plugin, a package in the
[Agent Plugins](https://agent-plugins.org) format at `kits/<kit>/plugin/`: `plugin.json` names and
versions it, `skills/` holds the Skills. Launching a kit installs that package on the Harness it
provisions, so the Harness shows the kit as a named plugin it can export, and the same package installs
into any other server that speaks the
[Unified Harness Protocol](https://unifiedharnessprotocol.org/spec/2026-09-12/plugins) or any client that
reads the format.
The four document kits share one idea: **a session is a document**. The list of decks, sheets,
dashboards, or films is the Harness's session list, and the document is a file in that session's
workspace. Delete the session and the work goes with it. Super Mario uses the same kit boundary
for a live environment instead of a document editor.
<br>
### Slides: design a deck by talking about it
Ask for a presentation and the agent works the way a designer does: structure first, then a style
system, then slide by slide. Everything it makes is an object on the canvas you can drag, retype,
and restyle. It hands you a deck, not a picture of one.

**[Open the Slides kit →](./kits/slides)**
<br>
### Sheets: a column that is an agent
Rows are your data. An **agent column** runs one of your other agents once per row, builds its
input from the columns to its left, and fills each cell with what that agent said and made. Two
hundred rows is two hundred runs you did not have to orchestrate.

**[Open the Sheets kit →](./kits/sheets)**
<br>
### Dashboards: ask your database a question
Say what you want to understand. The agent reads your schema, decides which charts answer it,
writes the SQL for each and lays them out. Opening the dashboard re-runs every query, so the
numbers are today's. It connects with a **SELECT-only** account and every statement is checked
before it runs.

**[Open the Dashboards kit →](./kits/dashboard)**
<br>
### Videos: describe the film, watch the shots arrive
The agent plans the shots, writes a prompt for each, renders them, and lays them on a canvas while
they land. Cut them on a real timeline with trimming, splitting, layers, a music bed, and a
voice-over, then export one file. Shots can be seeded from a still or continue from the frame the
last one ended on, which is how two clips join without a jump.

**[Open the Videos kit →](./kits/video)**
<br>
### Super Mario: watch a System One model decide
A System One model plays a live platform game several decisions a second while you watch its
browser. The environment reads the game's structured state, presents a finite action space, and
holds each chosen key state until the next decision. The model never sees a pixel and never writes
control text.
<p align="center">
<img src=".github/images/kits/kit-mario-gameplay.gif" width="100%" alt="A System One model uses the Super Mario Starter Kit to play a live browser game by choosing one typed action per step.">
<br>
<sub>Jev plays through typed decisions while the Kit streams its browser. The game is <a href="https://supermarioplay.com/game/mario.html?v=1.0.1">Full Screen Mario</a>. Mario and its characters belong to Nintendo. No game files ship with this repository.</sub>
</p>
**[Open the Super Mario kit →](./kits/mario)**
<br>
### My Workplace: hire a team and put it in a room
A recruiter interviews you with a short questionnaire and installs the teammate it designs as a
Harness of its own, with a face, a role and a package of its own. Message a teammate one to one
in a conversation it remembers, or put several in a group: the mentioned answer first, the rest
judge whether a message needs them, and a plan's pieces go to the teammates whose roles fit. Files
one makes arrive in the next one's working directory, and whichever window has the group open
runs the replies, so nothing is lost when a tab closes.
<p align="center">
<img src=".github/images/kits/workplace-group.png" width="100%" alt="A My Workplace group: four AI teammates finishing a launch campaign for a client, every file they made in the details rail with who made it.">
<br>
<sub>Four teammates on the DeepSeek Harness with Claude Sonnet 5.5 deliver a launch campaign: brief, email, two images, posts and a schedule, then a review round.</sub>
</p>
**[Open the My Workplace kit →](./kits/workplace)**
<br>
All six are launched from one page in the console:

## Licensing at a glance
The kits under `kits/` are **not** MIT. They carry the
[HarnessRouter Starter Kit License Agreement](./kits/LICENSE.md). Individual local use is free.
With HarnessRouter Cloud as the backend, the license comes with your Cloud account: use a kit at
any size inside your organization and to serve your own customers and end users. With a
self-hosted backend, internal use is free for up to three people, and commercial use needs the
[Commercial Use and Deployment Agreement](./kits/COMMERCIAL-DEPLOYMENT-AGREEMENT.md). The full
terms are [below](#licensing).
## Demos
Smaller, MIT-licensed, and meant to be read: these show streaming, sessions, follow-up turns,
cancellation, and file download in as little code as possible.
### 1. Cursor-style coding app
A coding-agent interface that demonstrates project-aware tasks, streamed output, persistent sessions, follow-up work, cancellation, and generated-file downloads. Watch the [55-second build video](https://harnessrouter.ai/example?ref=github-starter) to see it running.
[Open the Cursor-style demo guide](./demos/01-cursor-coding-app/README.md)
```bash
npm install
cp .env.example .env
# Add HR_API_KEY and HR_CURSOR_AGENT_ID to .env
npm run dev:cursor
```
Then open [http://localhost:3000](http://localhost:3000).
### 2. LumaCare
A family-care companion that uses the same secure streaming and session architecture in a healthcare-support experience.
[Open the LumaCare demo guide](./demos/02-lumacare/README.md)
```bash
# Add HR_API_KEY to .env; LumaCare's agent mapping is checked in
npm run dev:lumacare
```
Then open [http://localhost:3000](http://localhost:3000).
Run one demo at a time because both use port `3000` by default.
## Repository structure
```text
.
├── demos/
│ ├── 01-cursor-coding-app/ # Primary demo
│ └── 02-lumacare/ # Secondary reference demo
├── kits/ # Separately licensed production kits (see kits/LICENSE.md)
│ ├── slides/ # Design a deck by conversation
│ ├── sheets/ # A spreadsheet where a column is an agent
│ ├── dashboard/ # Ask your database a question
│ ├── video/ # Describe the film, watch the shots arrive
│ └── mario/ # Watch a System One model play a browser game
├── .env.example # Shared local configuration template
├── package.json # npm workspace commands
└── README.md # Repository and demo index
```
Each demo owns its frontend, server, tests, agent mapping, and documentation. This keeps the two products independent while making their shared HarnessRouter architecture easy to compare.
## Prerequisites
- Node.js 22 or newer
- A HarnessRouter API key, from the [quickstart](https://app.harnessrouter.ai/quickstart?ref=github-starter). The kits need none; only the demos do.
- A HarnessRouter coding-agent ID for the primary demo
## Commands
```bash
npm run dev:cursor # Run the primary coding demo
npm run dev:lumacare # Run the secondary LumaCare demo
npm test # Test both workspaces
npm run build # Build and type-check both workspaces
```
Credentials belong in an ignored `.env` file and never in source control. See each demo's README for its configuration and architecture.
## Resources
- **[HarnessRouter](https://github.com/HarnessRouter/harnessrouter):** the open-source engine these demos and kits run on.
- **[Documentation and Cloud](https://harnessrouter.ai):** hosted service, guides, and pricing.
- **[Unified Harness Protocol](https://unifiedharnessprotocol.org):** the open standard behind it.
- **[Discord](https://discord.gg/nPcbwqVPb2):** community for questions and integrations.
## Licensing
This is a mixed-license repository:
- Files without a more specific directory license, including the reference demos, are available under the [repository MIT License](./LICENSE).
- Everything under `kits/` is governed by the [HarnessRouter Starter Kit License Agreement](./kits/LICENSE.md), not MIT. This covers all current and future contents of `kits/`, including any kit added later.
- Individual local use is free, including learning, evaluation, personal projects, and the individual's own business operations.
- **On HarnessRouter Cloud, the license comes with your account.** With HarnessRouter Cloud as the backend, you may use a kit inside your organization and to serve your own customers and end users, paid deliverables included, with no separate kit fee, Direct User limit or commercial agreement. Cloud plan and usage charges apply. This holds when you host the app yourself, as long as the Harness runs on HarnessRouter Cloud.
- Self-hosted internal use is free for up to three Direct Users. A paid entitlement is required before a fourth Direct User begins use or for separately metered automation.
- **With a self-hosted backend, commercial use needs a paid agreement.** Selling, deploying, hosting or providing an End Product to an external customer, and creating paid Client Deliverables, require the [Commercial Use and Deployment Agreement](./kits/COMMERCIAL-DEPLOYMENT-AGREEMENT.md) and an [Order Form](./kits/ORDER-FORM-TEMPLATE.md).
- Handing Kit source code or continued development rights to a customer requires that agreement on any backend.
- Sharing materials about your own business with investors, customers, advisers, and other counterparties is not Commercial Use merely because an external person receives them.
- Generated presentations and exported files remain usable subject to the applicable Internal or Commercial Use rights.
- Third-party components remain governed by their own licenses and notices.
The license included with a particular copy controls that copy. The current license structure does not revoke rights validly granted for an earlier copy under the license distributed with that earlier copy.
## Learn more
- [HarnessRouter website](https://harnessrouter.ai?ref=github-starter)
- [Documentation](https://harnessrouter.ai/docs?ref=github-starter)
- [Pricing](https://harnessrouter.ai/pricing?ref=github-starter)