Repository navigation
feat: add agent setup prompt at /setup/prompt.md - #122
Merged
Merged
Conversation
A user pastes one sentence into their coding agent, pointing it at /setup/prompt.md. The agent then installs datumctl with every plugin from the official catalog, installs datum-mcp, connects both MCP servers and the Datum skills for its own agent type, signs in, checks the result and reports back. /setup shows the same content to people. Also correct the skills manifest, MCP server card, llms.txt and home page, which listed skills that no longer exist and a datumctl ai command that was replaced by the assistant plugin.
mattdjenkinson
requested review from
felixwidjaja,
jacobsmith928,
kevwilliams and
yahyafakhroji
November 6, 2026 15:08
This was referenced Nov 6, 2026
3.8.0 makes motion a required peer dependency in the range >=13 <14. The site's own code doesn't import motion, and the datum-ui entries it uses (utils, theme, styles) don't either, so motion moves from ^14 to ^13.5.1 to satisfy datum-ui's range, in line with cloud-portal.
Rely on datum-cloud/datumctl#358: - Install plugins with `datumctl plugin install --all-available` instead of parsing `plugin search` output and installing one at a time. - Run `datumctl login --project <org>/<project>` from the agent, so the user only approves the sign-in in their browser. Without a project, login signs in and the agent picks the context with `ctx use`. - Always upgrade an existing datumctl, and fall back to the old flow when a flag is missing.
mattdjenkinson
marked this pull request as draft
November 6, 2026 17:15
- Ask the user once, before anything is installed, whether they want all datumctl plugins, a chosen few or none, and whether to add the line to their global agent instructions. datumctl, datum-mcp, the MCP config and the skills stay automatic. - Install datumctl and datum-mcp straight from GitHub releases into ~/.local/bin (or %LOCALAPPDATA%\Programs\Datum) with curl and tar or PowerShell, so nothing needs to be installed first and no sudo is needed. The agent adds the folder to PATH and registers datum-mcp by its full path, since editors started from the Dock or Start menu don't see the shell's PATH. - Fall back to curl and tar for the skills when npx isn't available. - Drop the Homebrew install from the MCP server card.
mattdjenkinson
marked this pull request as ready for review
November 6, 2026 17:24
# Conflicts: # app/lib/page-content.ts # public/.well-known/agent-skills/index.json
The Datum skills moved to the datum-claude-code-plugins marketplace (datum-cloud/claude-code-plugins): datum-cloud for sign-in and the MCP servers, plus one plugin per product. The setup prompt now installs datum-cloud and milo-activity always, and the compute, DNS, networking and observe plugins to match the datumctl plugins the user chose. Claude Code installs them from the marketplace and drops the old datum-cloud@datum-cloud plugin so the MCP servers aren't registered twice. Other agents run npx skills add per product repository, or fall back to the commit-pinned skill index and check each digest. Point the MCP server card, llms.txt and the home page at the new marketplace too.
…at/agent-setup-prompt
Ask in step 0 whether the user also uses Claude Code, so an agent like Cursor or Codex sets up Datum's marketplace and plugins there too. Install at user scope, refresh the marketplace first, and turn on auto-update in settings.json, since Claude Code leaves it off for third-party marketplaces. Drop milo-activity: it needs the separate activity MCP server and a kubeconfig, and the marketplace leaves it out of its own one-line install.
scotwells
approved these changes
Nov 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a Datum version of Cloudflare's "Onboard your agent" flow. The cloud portal dashboard will copy this sentence for the user to paste into their coding agent (datum-cloud/cloud-portal#1797):
The portal will also add the user's org and project to the end of the sentence, so the agent switches to the right context.
What the prompt has the agent do
datumctlanddatum-mcpfrom GitHub releases into~/.local/bin(or%LOCALAPPDATA%\Programs\Datumon Windows) with curl and tar or PowerShell. Nothing needs to be installed first, and there's no sudo. The agent adds the folder toPATHif it isn't there already.datumctl plugin install --all-available.datum-cloud(both MCP servers and sign-in) always comes;datum-compute,datum-dns,datum-networkingandmilo-observefollow the user's datumctl plugin choice. The agent turns on auto-update for the marketplace ("autoUpdate": trueon itsextraKnownMarketplacesentry in~/.claude/settings.json), which Claude Code leaves off for third-party marketplaces. The olddatum-cloud@datum-cloudplugin is removed if present, so the MCP servers aren't registered twice.milo-activityis left out, as in the marketplace's own one-line install, because it needs the separateactivityMCP server and a kubeconfig.npx skills addfor each product repo, or, without Node, from the commit-pinned skill index with each digest checked. Plus the MCP config each one expects.datum-mcpis registered by its full path, because editors started from the Dock or Start menu don't see the shell'sPATH.CLAUDE.md/AGENTS.md.datumctl login --project <org>/<project>itself, and the user only approves the sign-in in their browser. With no project named, login signs in and the agent sets the context withdatumctl ctx use.datumctl version,datumctl plugin list,datumctl whoamianddatumctl ctx, plus the agent's MCP list.Changes
app/content/setup/prompt.md: the instructions./setup/prompt.md: a resource route that serves the instructions as raw markdown, the same pattern as the recipe.mdroutes./setup: an HTML page that shows the sentence to paste above the rendered instructions.llms.txt,sitemap.xmland the home page content now link to the setup page.Out-of-date listings fixed:
npx datum-mcpandbrew install datum-cloud/tap/desktop. It now points to the setup prompt, the GitHub releases and thedatum-cloudplugin in the new marketplace.llms.txtand the home page described adatumctl aiMCP mode. That command was replaced by the assistant plugin, so they now point todatum-mcp.Dependency bump:
@datum-cloud/datum-uigoes from 3.4.0 to 3.8.0. 3.8.0 makesmotiona required peer in the range>=13 <14. The site doesn't importmotionitself, so it moves from^14to^13.5.1to fit that range, in line with cloud-portal. The rest of the lockfile diff is datum-ui's own dependencies.Depends on datum-cloud/datumctl#358
The prompt now uses two flags from that PR:
datumctl plugin install --all-availableanddatumctl login --project. A datumctl release with #358 has to ship before this site goes out. With an older datumctl, the prompt tells the agent to upgrade, and if it can't, to fall back to the user runningdatumctl loginthemselves.Test plan
npm run typecheck,npm run lint,npm run format:checkandnpm run buildpass./setup/prompt.mdreturns 200 astext/markdown./setup,/index.md,/llms.txt,/sitemap.xmland/.well-known/agent-skills/index.jsonreturn 200./setuprenders: the sentence wraps, the table renders and there's no horizontal scroll. Its two console errors also appear on/recipes, so they come from existing code.SKILL.mdURL in the skills manifest returns 200.npx skills add <repo> --listfinds the same skills as the generated index for all six repos (3, 7, 10, 10, 22, 3), andnpm run skills:checkpasses on the merged branch.datumctlanddatum-mcpbinaries on macOS (arm64) and in a Debian container. The skills curl-and-tar fallback extracts all three skills.marketplace addtwice,marketplace update,plugin install --scope user) work against an empty config folder.addwrites theextraKnownMarketplacesentry, and the plugins stay enabled withautoUpdateadded to it.claude plugin marketplace listdoesn't show the flag, so auto-update itself is checked against the docs only.code --add-mcp) and Windsurf commands haven't been run. Their formats come from those tools' docs.