Agent Picker is a repo-first UI selection bridge for coding agents. Clone or subtree this repository into your app, wire a small set of tsconfig aliases, and mount the provider to capture DOM selections directly in the host app, sync shared agent notes through agent-pickerd, and optionally render a design lab for comparing UI pieces.
packages/picker/: app-shell provider and devtools overlaypackages/design-lab/: design-lab board UI and item typespackages/server/:agent-pickerdentrypoint shimweb/: shared UI primitives, scene hooks, and devtools internalstools/agent-pickerd/: local state daemon implementation
npm install
npm run devnpm run dev starts both the example web host and agent-pickerd, and automatically keeps the web app pointed at the daemon even when the default ports are occupied.
Then open the printed web URL and append /design-lab. If 3000 is free, it will usually be http://127.0.0.1:3000/design-lab.
The example host stores local state in example/next-host/.agent-picker/.
Agent Picker is currently designed to be vendored into a host repo. It is not currently published as installable npm packages. Use Node.js 20 or newer when working in this repository or wiring the vendored CLI into a host app.
- add this repo under a stable path such as
apps/web/vendor/agent-picker - add
tsconfigaliases that map@agent-picker/pickerand@agent-picker/design-labto that vendored source - add a provider near the app shell
- make sure your host dev/build uses a bundler setup that resolves those aliases; the current Next.js example uses webpack mode
- run
agent-pickerdfrom the vendored CLI path - set
NEXT_PUBLIC_AGENT_PICKER_DAEMON_URLonly if the daemon is not running athttp://127.0.0.1:4312 - render a
design-labclient route if you want the board
Detailed integration notes: docs/install-next-app-router.md
If your host uses Tailwind CSS v4, remember to add an @source entry for the vendored Agent Picker source so overlay classes are included in the generated CSS.
The picker sends selections straight to agent-pickerd, so you do not need a separate app route just for selection capture.
packages/picker/: picker-facing exports for host appspackages/design-lab/: design-lab-facing exports for host appspackages/server/: CLI shim kept close to the repo rootweb/: internal implementation shared by those domainstools/agent-pickerd/: daemon implementation and local-state rulesscripts/: standalone example runtime wiringexample/next-host/: smoke-test host app using the same alias model as consumers
Agent Picker has a shared selection and note model so multiple coding agents can coordinate.
- latest selection:
npm run agent-pickerd:get-selection - latest note:
npm run agent-pickerd:get-agent-note - update note:
npm run agent-pickerd:set-agent-note -- --author codex --status in_progress --message "..."
Agent-specific guidance lives here:
npm run dev: start the bundled example host and daemon togethernpm run dev:web: start only the example hostnpm run dev:daemon: start only the daemonnpm run build: build the bundled example hostnpm run lint: typecheck the example hostnpm run typecheck: typecheck the example hostnpm run test: run daemon unit testsnpm run agent-pickerd:serve: start the local daemon for the example host