Build with an agent

Discover the contract before you design the experience.

Read the owner's brief and existing project instructions first. Inspect the package manager, relay.json, login, and hosting before selecting a workflow.

Work through the integration

Confirm the direction before implementation

For a new project or first Domino integration, use the Domino skill to research the brand and campaign context before building. Inspect the supplied website, assets, existing app, and brief. Extract the visual style and voice, then propose:

  • A brand direction with a small visual sample.
  • A campaign brief covering the goal, success measure, participants, actions, motivation, and journey.

Ask only about consequential gaps and offer recommendations. Separate facts from assumptions, and keep unconfirmed rewards, budgets, dates, and eligibility out of participant promises. Present the proposal and wait for the owner's confirmation before implementation.

Save the confirmed direction, sources, confirmation evidence, and open decisions in CAMPAIGN.md or the app's established brief document. Later sessions reuse those decisions; material changes reopen only the affected parts. This is an agent instruction, not a CLI enforcement mechanism.

For a project that already has work, such as published quests or staging builds, skip this discovery. Read the project's agent instructions, README, and CAMPAIGN.md, review its quests, releases, and builds, summarize what exists, and ask the owner what to change next. Treat the saved brief as confirmed unless the owner says otherwise.

Establish the connection

Use the project's installed CLI. Run domino doctor --json, then domino doctor --remote --json when remote access is needed. Outside a project, doctor reports setup health only. Its agents field lists the Domino skill loaders installed in the project, not which agent is running. Confirm the effective organization, project, and environment before publication.

Starting pointRule
New hosted appCheck out the existing project rather than creating it again.
Existing appPreserve its repository, framework, login, and hosting.

Discover supported behavior

domino capabilities --json
domino capabilities referrals --json
domino reference participant-api
domino reference troubleshooting

The capability map is generated from the same catalog bundled with the CLI. A capability's reference names a topic for domino reference; run domino reference without a topic to list every reference the installed CLI ships.

  • It is release guidance, not a live probe. Command output includes provenance with the CLI version and serverVerified: false: this is release guidance, not a live server or project capability probe. Scope flags do not change that.
  • Unlisted means unknown. Treat unlisted behavior and disagreements with the deployed API as unknown, and inspect the applicable contract before changing the architecture.
  • Check some features separately. Check daily recurrence, social verification, and prize fulfillment separately from points and leaderboards.
  • It names the commands. A capability's cli lists the domino commands that reach it, such as points award or trackers ingest. Operator reads and changes have typed domino <noun> list|get|… commands; use them instead of domino api. See resource commands.
  • Quote project analytics. To answer how a project is doing, run domino analytics get --range 7d|30d|90d|all and quote its numbers instead of computing your own. See project analytics. To split or narrow a number, read one metric from the closed catalog with domino analytics query --metric ID; domino analytics metrics lists them. See metric catalog.
  • Measure the project's goals. To choose metrics for what a project is for, or to build, check and explain a dashboard, read measuring a project (domino reference analytics).
  • Read the referral reference first. For invitations, qualification, and inviter bonuses, read it before choosing the authoring and participant APIs.
  • Check on-chain actions. To reward what a member's linked wallet did on chain, an EVM contract event or a Solana transaction that called a program, read on-chain actions (domino reference onchain).
  • Reward X posts only for approved creators. X does not allow apps that reward users for posting. When asked to reward people for posting on X, gate each quest that pays for X posts with an inGroup(group) prerequisite on a group the operator manages. See rewarding X posts.

Find a quest snippet

Before authoring a new quest, follow the snippet workflow. Fetch the live catalog, inspect a matching recipe, then install and adapt its source. New catalog entries are available without updating the agent instructions.

Run the project-local domino agents install to register the Domino skill for Codex and Claude in an existing project. Distributed starters already include the loaders and project instruction pointers. The full skill and its references live in node_modules/@domino-sdk/relay-cli/cli/skills/domino, so guidance stays matched to the CLI version installed in that checkout. domino reference authoring prints the release-specific instructions in the terminal.

Install dependencies before reading the bundled skill. Keep project-specific rules in AGENTS.md. After a CLI upgrade, ask the agent to re-read the bundled skill; routine skill reinstallation is unnecessary. Existing conversations may still contain instructions read before the upgrade.

For older checkouts, run domino agents install once after upgrading the CLI. It migrates known copied guidance, preserves project instructions, and adds marked pointers in AGENTS.md and CLAUDE.md. Customized files are reported before any changes; follow the migration procedure. Commit the loader and instruction changes for the rest of the team.

Finish with evidence

Run the app's checks and exercise the requested action through the running app. Verify persisted progress, not only a build or doctor result. If participant sign-in is waiting for the user, report that verification as unfinished.

For a campaign, simulate it in the test environment with test members over several simulated days, then fix what breaks: follow campaign testing, or run domino reference campaign-testing.

Return:

  • The working preview URL.
  • The action verified.
  • Any remaining launch dependency.

Label simulated provider results explicitly. Live publication requires human review in Console.

Report tooling issues

Report each distinct issue you encounter with Domino tooling, including issues you worked around. Use domino feedback --reporter agent --title "Short summary" --body-file report.md --json and follow the feedback instructions. Include the returned Linear issue link in your handoff. Humans can use the same command without --reporter agent.

Before every completed task's final handoff, also review difficulties that better SDK or CLI support could address, even if no command failed. Report unreported friction such as missing helpers, repetitive manual steps, confusing APIs, or workarounds. Describe the extra work and the concrete tooling improvement that would have helped. Submit only observed difficulties, without repeating earlier reports or sending a general task summary. If there were no such difficulties, skip the completion report.

Unattended runs

To run an agent with nobody present, such as in CI, a scheduled job, or a sandbox, set DOMINO_AGENT_MODE=unattended in its environment. Setting it is your consent for the agent to build from your brief without asking you anything; the agent can't turn it on itself. domino doctor --json and domino whoami --json report the mode as agentMode.

The Domino skill normallyIn an unattended run
Interviews you and waits for you to confirmTreats your brief as confirmed and never waits.
Asks about consequential gapsPicks the most conservative reasonable option and lists it in CAMPAIGN.md under "Assumed in an unattended run".
Sends you a sign-in codeUses RELAY_MANAGEMENT_TOKEN. Browser login refuses with UNATTENDED_LOGIN_UNAVAILABLE.
Submits tooling feedback to DominoSaves it to ./domino-feedback.jsonl, or DOMINO_FEEDBACK_FILE. --submit or DOMINO_FEEDBACK=submit sends it.
Hands over and asks about open decisionsEnds with a written report and asks no questions.

Live publication still needs your review in Console.

A personal API key can't create projects, so create the project in Console first; an organization automation key with Create projects can. Then, in the project's Test environment, create an API key with the Read and Publish permissions under Settings → API keys and give it to the agent as RELAY_MANAGEMENT_TOKEN. Start the agent with a prompt like this:

Build a Domino campaign from the brief below on a staging site. Nobody is available to answer questions. Run npx -y @domino-sdk/relay-cli@latest checkout PROJECT_ID, work in the directory it creates, and install dependencies with the command it prints. Then read and follow the Domino skill at node_modules/@domino-sdk/relay-cli/cli/skills/domino/SKILL.md, including its unattended runs section. Stage the result, and end with a report of what you built, the staging link, what you tested, and what you assumed.

Brief: <your campaign brief>

Read only what the task needs

SourceContains
Every docs pageA Markdown copy.
/docs/llms.txtAn index of the site.
/docs/llms-full.txtThe complete public reference.
The CLIRelease-specific guidance bundled for offline use.

Build achievements

Ask your agent to define badges with defineBadge, include their definitions in relay.json, and attach badge(...) to quest rewards. The CLI publishes the definitions and quest rewards together. Participant clients read the catalog and member awards; your app composes any tiers or levels. See badge authoring.

On this page