Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,36 @@ For agents, pair the CLI with the [Upstash Skill](https://docs.upstash.com/agent
npx skills add upstash/skills
```

## Connect your AI agent

One command wires Upstash into your coding agents:

```bash
npx @upstash/cli setup
```

It picks the best install path per agent:

| Agent | What gets installed |
|---|---|
| Claude Code, Codex, Gemini CLI | The Upstash plugin via the agent's own CLI (MCP server + skills) |
| Cursor | The Upstash plugin as a local plugin in `~/.cursor/plugins/local/upstash` |
| VS Code, GitHub Copilot CLI, OpenCode | The remote MCP server in the agent's config, plus the `upstash` skill |

In a terminal it walks you through a few prompts: where to install (all projects or just this one), which agents (detected ones are pre-selected), and how they sign in. Flags answer a question up front; `-y` or `--json` skip the prompts entirely.

Agents are detected from their config directories, or chosen with flags (`--claude --cursor ...`). If a plugin can't be installed (for example the agent's CLI isn't on your `PATH`), setup falls back to MCP + skill for that agent.

```bash
upstash setup --claude --cursor -y # no prompts
upstash setup --project # this repo instead of your user config
upstash setup --mode mcp # MCP + skill everywhere, no plugins
upstash setup --auth api-key # API key header instead of OAuth (uses `upstash login` credentials)
upstash setup --dry-run # show what would change
```

The MCP server authenticates with OAuth by default: on first use your agent opens a consent page where you pick the account (turn read-only off if the agent should change resources). Plugins are OAuth-only, so `--auth api-key` writes MCP config instead. Rerunning `setup` updates what it installed.

## No account? Start with a free Redis

If you are an AI agent (or just want to try things out) and need a Redis DB to use or experiment with, you don't need an Upstash account:
Expand Down
36 changes: 32 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,10 @@
"author": "Upstash",
"license": "MIT",
"dependencies": {
"@clack/prompts": "~1.0.1",
"commander": "^13.0.0",
"dotenv": "^16.4.5"
"dotenv": "^16.4.5",
"picocolors": "^1.1.1"
},
"devDependencies": {
"@types/node": "^20.10.0",
Expand Down
2 changes: 2 additions & 0 deletions src/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { registerLogin } from "./commands/login.js";
import { registerLogout } from "./commands/logout.js";
import { registerStartRedis } from "./commands/start-redis.js";
import { registerTelemetry } from "./commands/telemetry.js";
import { registerSetup } from "./commands/setup.js";
import { handleError } from "./output.js";
import dotenv from "dotenv";

Expand Down Expand Up @@ -43,6 +44,7 @@ program
registerLogin(program);
registerLogout(program);
registerStartRedis(program);
registerSetup(program);
registerTelemetry(program);
registerRedis(program);
registerTeam(program);
Expand Down
Loading
Loading