Ask AI

Developers: start here

For developers building Remy or an app on it: shared authentication for Remy apps, Better Auth on Cloudflare Workers, the shared remy-ui package, and where to start.

For developers building Remy, or an app on its shared UI package. Using the app? Read the product guide. Calling the API? The API reference.

https://github.com/joeblew999/remy-auth

Shared authentication for Remy apps, using Better Auth on Cloudflare Workers with D1 as the identity and session store, and relationship-based permissions every app gets from the shared package (sign-in and permissions).

Status: the GUI foundation is live on Cloudflare in two apps built on TanStack Start, from the shared @joeblew999/remy-ui package. remy-auth signs people in with an emailed code, guards its API by policy, and decides who may do what by relations, shown in its own notes demo. How another app learns who is signed in is the next piece; open work is listed in .plans/now.md.

Where to look

Two live sites, each with site pages for Google and app pages under /app; paths.js defines both kinds. Swap /en for /es or /ar anywhere.

SiteRenderingOpen
remy-authserver-rendered on every requesthttps://remy-auth.gedw99.workers.dev/en
remy-auth-appprerendered static pageshttps://remy-auth-app.gedw99.workers.dev/en

Get started

Node as .node-version says (26), then from this checkout:

npm install          # once, for the lockfile and the remy bin
npm run setup        # the pinned skills, MCP, the flow's guard, the installation's checks
npm run dev          # http://127.0.0.1:5173/en

Open localhost

/en; switch to Spanish or try the demo. Setup installs dependencies and skills, registers MCP, then runs the installation's checks (no browser).

Setup installs the pinned Codex CLI; authenticate when prompted. Claude Code is optional and installed separately. Install Google Chrome before setup; browser checks use the installed Chrome.

Work with an agent

Starting, resuming and reloading Codex or Claude Code, in VS Code or a terminal, is in developer tooling.

Everyday commands

The everyday commands, the same in every app on the platform (package.json's scripts, run by the package's remy bin):

TaskCommand
See what is going onnpm run dev:status
Start a piece of work, in a worktree of its ownnpm run dev:start -- <name>
Check, after every changenpm run dev:change
Land finished work: main, GitHub's checks, stagingnpm run dev:land -- "<what changed>"
List the scriptsnpm run
Run the local GUInpm run dev
Try the production build locallynpm run preview
The tooling's versionsnpx remy verify doctor
Check for package updatesnpm run packages -- check
Upgrade packages, including major versionsnpm run packages -- upgrade
Better Auth CLI helpnpm run auth -- --help
Cloudflare CLI helpnpm run wrangler -- --help
Inspect browser toolingnpm run browser -- --help
Inspect MCP status in both clientsnpx remy mcp status

The first four are the flow, which also says who runs production and a release. The heavy checks are not everyday commands: GitHub runs them after every landing, and the tooling refuses them outside the flow.

Local preview and remote deployment use the same build and Wrangler configuration. See local/remote commands for deployment and running the same tests against a deployed URL.

Review dependency changes after upgrading. Node is pinned in .node-version and package.json's engines; the skill-source commits are in the package (packages/ui/src/cli/skills.ts), which every app installs (the command line).

Project documentation

On this page