From 85a7c8ef4d7f14b92fffe6db67c3d8d3041617ae Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 5 Oct 2026 09:43:46 +0000 Subject: [PATCH 1/4] DX-3074: lead agent setup with `npx upstash setup` The "Set up your agent" prompt now asks the agent to run `npx -y upstash setup --yes` with its own agent flag, which installs the Upstash plugin where the agent supports one and otherwise the remote MCP server plus the Upstash skills. The hand-written commands stay as the fallback for agents the CLI does not cover. The prompt is identical to the docs landing page and the console. The button menu gets a "Copy setup command" row for `npx upstash setup`, and the home page CLI card installs `upstash` instead of `@upstash/cli`. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01LWUubWwYWp1dZTK1S9Ek95 --- src/components/agent-setup-button.tsx | 12 +++++++++--- src/components/home/agents/index.tsx | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/components/agent-setup-button.tsx b/src/components/agent-setup-button.tsx index d26c3fe65..9a129cf8d 100644 --- a/src/components/agent-setup-button.tsx +++ b/src/components/agent-setup-button.tsx @@ -15,11 +15,12 @@ import { createPortal } from "react-dom"; /** * Kept in sync with the copy-prompt on the docs landing page - * (upstash/docs → introduction.mdx). It tells the agent to install the plugin - * itself rather than hand the reader a command to run. + * (upstash/docs → introduction.mdx) and the console's agent setup menu. It + * tells the agent to run `upstash setup` itself rather than hand the reader a + * command to run. */ export const AGENT_SETUP_PROMPT = - "Set up Upstash in my coding agent using the official Upstash instructions, and run the commands yourself instead of asking me to. If you are Claude Code, install the Upstash plugin — it bundles the Upstash skills (https://upstash.com/docs/agent-resources/skills) and the remote MCP server over OAuth — by running `claude plugin marketplace add upstash/skills` then `claude plugin install upstash@upstash`, and tell me to run `/reload-plugins`. If you are OpenAI Codex, install the same plugin with `codex plugin marketplace add upstash/skills` then `codex plugin add upstash@upstash`. For any other agent, install the skills with `npx -y skills add upstash/skills --global`, then add the remote MCP server https://mcp.upstash.com/mcp to your MCP config (it authenticates over OAuth on first use); see https://upstash.com/docs/agent-resources/clients for the exact location. When done, verify the skills and MCP server are installed and tell me whether a restart is needed."; + "Set up Upstash in my coding agent using the official Upstash instructions, and run the commands yourself instead of asking me to. Run `npx -y upstash setup --yes` with the flag for the agent you are (`--claude`, `--codex`, `--cursor`, `--gemini`, `--vscode`, `--copilot` or `--opencode`). It installs the Upstash plugin where your agent supports plugins, and otherwise adds the remote MCP server https://mcp.upstash.com/mcp plus the Upstash skills (https://upstash.com/docs/agent-resources/skills); the MCP server authenticates over OAuth on first use. If you are not one of those agents, install the skills with `npx -y skills add upstash/skills --global` and add the remote MCP server to your MCP config; see https://upstash.com/docs/agent-resources/clients for the exact location. When done, tell me what was installed and whether I need to restart or reload (in Claude Code, `/reload-plugins`)."; type SetupOption = { id: string; @@ -38,6 +39,11 @@ const SETUP_OPTIONS: SetupOption[] = [ label: "Copy setup prompt", value: AGENT_SETUP_PROMPT, }, + { + id: "command", + label: "Copy setup command", + value: "npx upstash setup", + }, ]; const PRIMARY_OPTION = SETUP_OPTIONS[0]; diff --git a/src/components/home/agents/index.tsx b/src/components/home/agents/index.tsx index 600dc743f..220fbc7a6 100644 --- a/src/components/home/agents/index.tsx +++ b/src/components/home/agents/index.tsx @@ -13,7 +13,7 @@ import { ReactNode } from "react"; const UPSTASH_SKILL_COMMAND = "npx skills add https://github.com/upstash/skills --skill upstash"; -const CLI_COMMAND = "npm i -g @upstash/cli"; +const CLI_COMMAND = "npm i -g upstash"; const SKILL_AGENTS = ["Claude Code", "OpenAI Codex", "Cursor"]; From f0a2b60a892ef586796fbe00b7d541d5959517f0 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 5 Oct 2026 12:15:03 +0000 Subject: [PATCH 2/4] DX-3074: setup command is `npx upstash` Run in a terminal with no arguments, `upstash` starts `upstash setup`. The setup prompt keeps the explicit `setup --yes` form for agents. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01LWUubWwYWp1dZTK1S9Ek95 --- src/components/agent-setup-button.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/agent-setup-button.tsx b/src/components/agent-setup-button.tsx index 9a129cf8d..856fc3d19 100644 --- a/src/components/agent-setup-button.tsx +++ b/src/components/agent-setup-button.tsx @@ -42,7 +42,7 @@ const SETUP_OPTIONS: SetupOption[] = [ { id: "command", label: "Copy setup command", - value: "npx upstash setup", + value: "npx upstash", }, ]; From 5727ebe0b9f4b5db82ec24e2247ba7fc11367bb1 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 6 Oct 2026 08:50:42 +0000 Subject: [PATCH 3/4] DX-3074: the setup button copies `npx upstash` by default Clicking the agent setup button now copies the setup command; the setup prompt moves to the second menu row. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01LWUubWwYWp1dZTK1S9Ek95 --- src/components/agent-setup-button.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/agent-setup-button.tsx b/src/components/agent-setup-button.tsx index 856fc3d19..f4d00a7f3 100644 --- a/src/components/agent-setup-button.tsx +++ b/src/components/agent-setup-button.tsx @@ -34,16 +34,16 @@ type SetupOption = { * last menu row links to. */ const SETUP_OPTIONS: SetupOption[] = [ - { - id: "prompt", - label: "Copy setup prompt", - value: AGENT_SETUP_PROMPT, - }, { id: "command", label: "Copy setup command", value: "npx upstash", }, + { + id: "prompt", + label: "Copy setup prompt", + value: AGENT_SETUP_PROMPT, + }, ]; const PRIMARY_OPTION = SETUP_OPTIONS[0]; From c1eadb76f1c998a50acf3e609accda964bbee633 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 6 Oct 2026 09:14:27 +0000 Subject: [PATCH 4/4] DX-3074: the setup menu shows `npx upstash` instead of "Copy setup command" The row label is the command itself, in monospace, so it is clear what gets copied. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01LWUubWwYWp1dZTK1S9Ek95 --- src/components/agent-setup-button.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/agent-setup-button.tsx b/src/components/agent-setup-button.tsx index f4d00a7f3..cdcce657c 100644 --- a/src/components/agent-setup-button.tsx +++ b/src/components/agent-setup-button.tsx @@ -24,7 +24,7 @@ export const AGENT_SETUP_PROMPT = type SetupOption = { id: string; - label: string; + label: React.ReactNode; value: string; }; @@ -36,7 +36,8 @@ type SetupOption = { const SETUP_OPTIONS: SetupOption[] = [ { id: "command", - label: "Copy setup command", + // The command itself, so the reader sees what they are copying. + label: npx upstash, value: "npx upstash", }, {