- Add rate limiting to the payments API.
- Read 14 files. The limiter belongs in the gateway, not the handler — one place, every route.
- Wrote gateway/limit.go and a test at 100 req/min per key. Tests pass.
- Open in the console
Native Desktop Client
Example project. Every name in it is one you would give your own. Open in the console
What you can build in it
Free and open source. Download it, and the first agent is a few minutes of clicking.
>Add rate limiting to the payments API.
Read 14 files. The limiter belongs in the gateway, not the handler — one place, every route.
Wrote gateway/limit.go and a test at 100 req/min per key. Tests pass.
$cat gateway/limit.go
package gateway
// 100 req/min per key
func Limit(h http.Handler) http.Handler {
return rate.PerKey(100, time.Minute, h)
}
$go test ./gateway
ok gateway 100 req/min per key
Tests pass.
- 01
Nothing to scaffold
An agent is made in the window: give it a job, some tools, and a model. There is no project to create first and no file to check in before it exists.
- 02
Local model or cloud model, per agent
Point one agent at a model running on your machine and another at one on Hanzo Cloud. It is a setting on the agent, not a decision about the whole install.
- 03
They work together
Agents share context and hand steps to each other, so a job that needs several of them is one workflow instead of you copying between three chat windows.
Cut the network
With a local model pinned, an agent keeps running when the connection goes. Nothing has to be uploaded for it to do its job.
Keys and the data an agent touches stay local. An agent that has to pay for something spends from a key you hold, on hardware you own.
Agents speak the Model Context Protocol, so a tool you have already connected elsewhere works here without a second integration written for this app.
Running
Add rate limiting to the payments API.
- Model
- Running on your machine
- Keys and data
- Keys and the data an agent touches stay local.
With a local model pinned, an agent keeps running when the connection goes. Nothing has to be uploaded for it to do its job.
Available everywhere you work
Native installers for macOS (Apple Silicon + Intel), Windows, and Linux.
Hanzo Desktop
Native Desktop Client
- Systems
- macOS arm64 + intelWindows x64 + arm64Linux deb + rpm + AppImage
- Installers
- Native installers for macOS (Apple Silicon + Intel), Windows, and Linux.
- Version
- v1.1.52 · Every build
- Models
- Point one agent at a model running on your machine and another at one on Hanzo Cloud.
- Offline
- With a local model pinned, an agent keeps running when the connection goes.
- Account
- If the model is a local one, the whole thing runs without an account.
- Tools
- Agents speak the Model Context Protocol, so a tool you have already connected elsewhere works here without a second integration written for this app.
- License:
- Apache-2.0
- Source
- hanzoai
- Docs
- Desktop docs →
Paste and ship
Paste this into any agent. It reads the skill manifest and calls Desktop from there.
Read https://hanzo.ai/skill.md and use Hanzo Desktop in my project.Pick a model, describe the job, hand it the tools. If the model is a local one, the whole thing runs without an account.