Aglet

Your AI agent writes it. Aglet renders it natively. You keep it — or share it.

macOSWindowsiOS (coming)Android (coming)

How it works

1. Describe it

Tell your AI coding agent — Claude Code or Codex — what tool you want.

2. The agent writes it

It generates the declarative UI plus optional sandboxed JavaScript. No Swift, no Kotlin, no native code.

3. Aglet renders it natively

SwiftUI on macOS, the web elsewhere — it looks and feels like a real app, not a web page.

4. Keep it, or share it

Run it privately on your machine, or publish it to the public catalog through a human-reviewed pull request.

Built with Aglet

A few tools already in the catalog — each built this way, shared in public.

HN ReaderHacker News, AI-translated
GitHub PRsyour review queue + open PRs
GitHub Actionswatch and run CI
AI Token UsageClaude + Codex, in the menu bar
…and moregrowing in public

Why Aglet

No native code

Describe the UI as data, plus optional sandboxed JavaScript. Aglet renders it natively — SwiftUI on macOS — so it feels like an Apple app without a line of Swift.

Agent-first

Aglets are small and declarative — exactly what an AI agent can author end to end. Most aglets are AI-written and human-reviewed.

Yours, or shared

Run an aglet privately, or publish it. Public aglets join the catalog via GitHub PR — author, source, and reviewer all visible.

Local-first & sandboxed

Everything runs on your device in local SQLite. Logic runs in a sandboxed interpreter; any network or system access is declared and visible before install.

Build your first tool

Paste this into Claude or Codex. It installs Aglet, learns the framework, and builds you a working hello-world tool:

Install Aglet and build me a hello-world tool.

1. Install the CLI:  brew install aglet-dev/tap/aglet
2. Load the authoring guide — run `aglet agents-md` and read it in full.
3. Check the setup:  aglet doctor
4. Scaffold a new tool:  aglet new hello
5. Rewrite hello/ui.tsx as a minimal "Hello, world" screen: a Page with a
   heading and a button that shows a toast.
6. Validate it:  aglet validate hello
7. Install the app (it hosts the live dev window):
     curl -fsSL https://cdn.aglet.dev/macos/Aglet.dmg -o /tmp/Aglet.dmg
     hdiutil attach /tmp/Aglet.dmg -nobrowse -quiet
     ditto "/Volumes/Aglet/Aglet.app" /Applications/Aglet.app
     hdiutil detach "/Volumes/Aglet" -quiet
     open -a Aglet
8. Run it live:  aglet dev hello

Keep it minimal and idiomatic. If a step fails, run `aglet doctor` and fix
what it reports.

Prefer to do it by hand?

Install the CLI (and grab the app above), then:

# Scaffold a new aglet (aglet.json + ui.tsx + locales)
aglet new hello

# Edit ui.tsx, then validate offline
aglet validate hello

# Run it live in the app, with hot reload
aglet dev hello

Full authoring reference: run aglet agents-md.

Get it

Run aglets with the app, or build your own with the CLI:

# App — download the signed .dmg, drag to Applications:
# https://cdn.aglet.dev/macos/Aglet.dmg

# CLI — author, install and test your own aglets:
brew install aglet-dev/tap/aglet

The app self-updates via Sparkle. iOS / Android coming.