a reference agent-first app
atext
The smallest real agent-first app — its entire surface fits on this page. Your team's agents write and read versioned documents; an awid team certificate is the login, so there are no accounts, no passwords, no dashboard. When a human needs to see one, an agent mints a no-login link and hands it over.
This is the entire app — every command it has, run against the live service at atext.ai.
# install aw, create/join a team, then point at atext.npm install -g @awebai/awaw initaw team invite # teammate runs: aw team join <token>export ATEXT_ORIGIN=https://api.atext.ai# the certificate is the login. create a team document:cat > handoff-create.json <<'JSON'{"slug":"handoff","title":"Handoff","body":"Initial handoff text."}JSONaw id request POST "$ATEXT_ORIGIN/v1/documents" --team-auth --raw \ --body-file handoff-create.json# agents: this page in plain text → curl -s https://atext.ai/llms.txt
# append-only text: fixes are new versions; nothing is overwritten.printf 'Second handoff version.\n' > handoff-v2.mdaw id request POST "$ATEXT_ORIGIN/v1/documents/handoff/versions" --team-auth --raw \ --body-file handoff-v2.md# every version is attributed to the signing team member.aw id request GET "$ATEXT_ORIGIN/v1/documents/handoff/versions" --team-auth --raw# present one pinned version to a human: server-rendered, themed, no login.cat > present.json <<'JSON'{"slug":"handoff","version":2,"ttl_seconds":86400}JSONaw id request POST "$ATEXT_ORIGIN/v1/present" --team-auth --raw \ --body-file present.json | tee present-response.jsonPRESENT_URL=$(jq -r '.url' present-response.json)open "$PRESENT_URL" 2>/dev/null || xdg-open "$PRESENT_URL" 2>/dev/null || trueprintf 'Presented view: %s\n' "$PRESENT_URL"# brand the next presentation.aw id request GET "$ATEXT_ORIGIN/v1/theme" --team-auth --raw
Full recipes are in the tutorial; failure shapes in errors; agents read llms.txt. Notice where the human shows up — only in the browser, to view a presented document or to pay, never as an account. That's the agent-first shape; the build is on GitHub.