SpikeMe
Documentation

CLI reference

Install the SpikeMe CLI and use it to analyze your stack and generate spike documents from the terminal.

The SpikeMe CLI analyzes your repo locally and generates spike documents from the terminal, where your code already lives. Analysis is free and never leaves your machine. Generation runs through the SpikeMe backend and is metered by your plan.

Install

The CLI needs Node.js 18 or newer. Run it once without installing:

npx spikeme

Or install it globally so spikeme is on your PATH:

npm install -g spikeme
spikeme

Commands

CommandWhat it does
spikemeAnalyze the current repo's stack. Free, local, nothing uploaded.
spikeme gen "<topic>"Generate a full spike document for a decision.
spikeme implement "<library>"Generate an implementation guide for a library you've chosen.
spikeme loginSign in via a device-flow browser login.
spikeme --helpShow help. Aliases: -h, help.
spikeme --versionShow the installed version. Alias: -v.

spikeme

Run with no arguments to analyze the current repo. It parses your manifest, prints your stack and its categories, and lists the gaps that make good spike topics. This is free, runs locally, and uploads nothing.

Supported manifests are package.json (npm), pyproject.toml and requirements.txt (Python), and go.mod (Go). In a polyglot repo, the CLI detects more than one.

spikeme

spikeme gen "<topic>"

Generate a full spike document for a decision: options analyzed, a comparison table, a recommendation, a proof-of-concept plan, and risks. This runs through the SpikeMe backend, so it needs spikeme login and an active plan.

spikeme gen "state management for our React app"

See gen options for the flags that control depth, number of options, language, and output.

spikeme implement "<library>"

Once the spike has decided which library to adopt, implement generates an actionable implementation guide for it: the version-pinned install command (from live facts), a minimal working example in your project's stack, timeboxed integration steps, a proof-of-concept checklist, and a rollback plan. SpikeMe generates the plan; it does not execute anything — you, or your coding agent under your confirmation, run the commands. Like gen, it runs through the backend, so it needs spikeme login and an active plan.

spikeme implement "zustand"

Use --topic <text> to pass the context of the decision the library came from. implement also takes the same --lang, -o, and --path flags as gen:

spikeme implement "zustand" --topic "state management for our React app" --lang en -o impl-zustand.md

spikeme login

Sign in from the terminal via a device-flow browser login. See Login below for the full flow and the CI-friendly --token option.

spikeme login

gen options

FlagValuesDefaultDescription
--depthquick | fullfullquick produces a smaller, cheaper doc.
--options2 | 3 | 43How many options to analyze.
--langen | ptenLanguage of the generated document.
-o, --out <file>file pathstdoutWrite the document to a file instead of stdout.
--path <dir>directorycurrent dirWhich repo directory to read the manifest from.
spikeme gen "which ORM for our Node service" --depth quick --options 4 --lang en -o spike-orm.md

Login

spikeme login starts a device flow. The terminal shows a one-time code and opens your browser to https://spikeme.io/cli-login. You type that code there and approve it. You must be signed in to spikeme.io for this to work, and you should only enter a code from a login you started yourself.

spikeme login

On success, the token is saved to ~/.spikeme/credentials.json (mode 0600) and refreshes automatically, so you stay signed in.

For CI or headless environments where no browser is available, pass a token directly or set it in the environment:

spikeme login --token "<token>"

spikeme gen and spikeme implement require an active plan (Starter or Pro). Free accounts generate on the web instead. See Plans and billing for what each plan includes.

Environment variables

VariableDescription
SPIKEME_TOKENAn auth token used instead of spikeme login. Useful in CI and headless setups.
export SPIKEME_TOKEN="<token>"
spikeme gen "background jobs for our Python API"

Examples

Analyze the current repo and see suggested spike topics:

npx spikeme

Generate a quick, four-option spike and write it to a file:

spikeme gen "testing setup for our monorepo" --depth quick --options 4 -o spike-testing.md

Generate a spike in Portuguese from another directory:

spikeme gen "fila de mensagens" --lang pt --path ../api

Generate in CI with a token from the environment:

export SPIKEME_TOKEN="<token>"
spikeme gen "which HTTP client" -o spike-http.md