Repository navigation
v0.36.0
A new console. 0.36.0 brings the redesigned console to self-hosted instances, with the setup flow of HarnessRouter Cloud: describe what an agent should do for your users, and the instance builds it.
Set up an agent in one sentence
- Write what the agent should do for your users in New setup. A builder reads your workspace and writes the setup for you:
- a name and standing instructions for serving each request;
- the agent harness and model, when you leave them on Auto;
- the skills, plugins, MCP servers and environment the job needs;
- one example request, written the way your app would send it.
- The build plays on the setup's own page. One line says which step it is on, the save card puts the setup together brick by brick, and the example request waits in the box until you send it. Nothing runs before then.
- The builder runs on your own model keys. It picks the best model you have connected; it was tested with OpenAI, Anthropic, Google AI Studio, OpenRouter and Vercel AI Gateway keys. With no key connected, New setup says to connect one first.
- After the first test, the Next card shows the way to your own app: Set up the app gives your coding agent what it needs to call the setup.
Start in HarnessRouter
- Start has three example jobs: a product image, a contract review and a safety check. Each is a real recorded run. Saved unchanged, its request plays the recording back without spending tokens.
- Write under a recorded run to carry on: your message starts a task of your own with the recording as its history.
Where things are now
- Start: the example jobs, a box to describe your own, and guides that connect a coding agent to the instance.
- Studio: your setups. Each one has its tasks (the conversation, its files, a share link) and its settings: model, instructions, skills, plugins, tools, environment and limits.
- Shop: the starter kits, each with a page to try it.
- Add-ons: plugins, skills, tools (MCP servers) and environments.
- API Keys: create, rename, rotate and revoke.
- Bring your own key (account menu): your model connections.
- Profile (account menu): the instance's sign-in name and password.
- Workspaces: switch, create and manage them from the top of the rail, including cloud upload.
API
POST /v1/responsescan bring a task's earlier turns. With noprevious_response_idand no session named, the user and assistant messages before the last user message become the task's first turn. That turn is markedimported, has no model and costs nothing.GET /v1/basesandGET /v1/uhpsaycapabilities.input_history: true. See Tasks §2.1.- The builder's routes,
POST /v1/harnesses/buildsandGET /v1/harnesses/builds/{key}, are for the console signed in as a person. An API key cannot call them. - Everything else is the same as 0.35.17.
Upgrading
- Old addresses redirect to their new places, query strings included, so bookmarks and sign-in callbacks keep working:
/harnesses,/tasks,/kits,/plugins,/environments,/integrations,/quickstart,/dashboard. - To run a built-in base, make a setup from it on Start (one step). Studio lists your setups.
- Duplicate copies a setup's instructions, skills, plugins, environment, tool switches, limits and headers. It does not copy MCP servers or variables, because their stored secrets belong to the original.
- The in-console API reference page is gone. The menu links to the documentation.
Fixes
- A starter kit's page uses the setups of the workspace you are in. It used to pick a kit setup from another workspace, so Super Mario opened another kit's order desk.
- A kit setup whose stored package is missing gets it back before its next task, instead of losing the kit's tools.
- The share page says when a task's files could not be loaded, instead of showing the task with no files. (#549, thanks @rudycelekli)
- The environment sheet accepts an apt version with its epoch (
ffmpeg=7:7.1.5-0+deb13u1), the pin the package check recommends. A test now holds the console's rule equal to the server's.
Checked on the test VM against a copy of a real instance before release
- New setup end to end. A one-sentence job in Chinese built a setup with its own instructions, harness, model, plugin and environment. Its example request waited unsent, then ran.
- The three examples. Each recording played back with no task on the server, then the Next card showed, and a follow-up ran live with the recording as its history.
- Browser flows: a share link opened signed out; an API key created, renamed and revoked; workspaces created, switched and managed; every Add-ons tab; Super Mario playing; signing out.
- Every page at 1440, 1024, 768 and 390 pixels wide.
- The support matrix through the new console on codex, opencode, hermes, aider and goose.
- 1427 server tests, the type check, 863 console tests and the production build.
Image: harnessrouter/harnessrouter:0.36.0 (also latest), linux/amd64 and linux/arm64, sha256:42223fddfb1dcad128d1943ab4f8306ec905eeaf282da64417c995d814af24d7.
Thanks to @rudycelekli for #549.
Full Changelog: v0.35.17...v0.36.0