@blinkdotnew/cli
v0.3.7
Published
Blink platform CLI — deploy apps, manage databases, generate AI content
Downloads
2,376
Keywords
Readme
@blinkdotnew/cli
The Blink platform CLI. Deploy apps, query databases, generate AI content, manage storage, and control Blink Claw agents — all from your terminal or agent scripts.
npm install -g @blinkdotnew/cli
blink --helpQuick Start
# Install
npm install -g @blinkdotnew/cli
# Authenticate (enter your blnk_ak_... API key from blink.new → Settings → API Keys)
blink login --interactive
# See full context: agent + project + auth
blink status
# Manage Claw agents
blink agent list
eval $(blink agent use clw_xxx --export)
blink secrets set GITHUB_TOKEN ghp_xxx
blink secrets list
# Deploy an app
npm run build && blink deploy ./dist --prod
# Query your database
blink db query "SELECT count(*) FROM users"
# Generate AI content
blink ai image "a glowing blink logo on dark background"
blink ai text "Summarize this article: ..."
# Scrape websites
blink scrape https://lovable.dev --extract "pricing tiers and costs"
blink scrape https://example.com --textAuthentication
The CLI resolves credentials in this order (highest priority first):
| Source | How |
|---|---|
| --token <key> flag | One-off override per command |
| BLINK_API_KEY env var | CI/CD and Claw agents (set automatically) |
| ~/.config/blink/config.toml | Stored after blink login |
# Interactive login (saves to ~/.config/blink/config.toml)
blink login --interactive
# One-off with token flag
blink deploy --token blnk_ak_xxx ./dist
# CI / GitHub Actions
BLINK_API_KEY=blnk_ak_xxx blink deploy ./dist --prodYour API key lives at blink.new → Settings → API Keys (blnk_ak_...).
Multiple accounts
# ~/.config/blink/config.toml
[default]
api_key = "blnk_ak_personal"
[work]
api_key = "blnk_ak_work"blink --profile work deploy ./distCommands
blink deploy — Deploy to Blink hosting
blink deploy # Deploy CWD, use linked project
blink deploy ./dist # Deploy specific build dir
blink deploy proj_xxx ./dist # Explicit project + dir
blink deploy ./dist --prod # Production (live domain)
blink deploy ./dist --preview # Preview URL (default)
blink deploy ./dist --name "v2 beta" # Label this deployment
blink deployments # List deployments
blink rollback # Rollback production to previous deployThe CLI packages your pre-built output directory and uploads it. Run your build first:
npm run build && blink deploy ./dist --prodPreview deploys get a URL like preview-a1b2c3d4.sites.blink.new.
Production deploys go to your custom domain or {id}.sites.blink.new.
blink project — Project management
blink project list # List all workspace projects
blink project create "My App" # Create a new project
blink project delete proj_xxx # Delete a project (confirms first)
blink link # Link current dir to a project (interactive picker)
blink link proj_xxx # Link to specific project
blink unlink # Remove .blink/project.json
blink status # Show linked project + auth sourceOnce linked, commands that need a project ID use .blink/project.json automatically.
blink use — Set active project for a shell session
blink use proj_xxx # Prints the export command
eval $(blink use proj_xxx --export) # Actually sets it in your shell
export BLINK_ACTIVE_PROJECT=proj_xxx # Or set manuallyAfter this, omit proj_xxx from any command — it's inferred from the env var.
blink db — Database (Turso/SQLite per project)
# Query (two forms)
blink db query "SELECT * FROM users LIMIT 10"
blink db query proj_xxx "SELECT * FROM users LIMIT 10"
# Execute a SQL file
blink db exec schema.sql
blink db exec proj_xxx migrations/001.sql
# List tables
blink db list
# List rows in a table
blink db list users
blink db list proj_xxx users --limit 50
# Machine-readable output
blink db query "SELECT id, email FROM users" --jsonblink storage — File storage
# Upload
blink storage upload ./logo.png
blink storage upload proj_xxx ./logo.png --path images/logo.png
# List
blink storage list
blink storage list images/
# Download
blink storage download images/logo.png ./local-logo.png
# Get public URL
blink storage url images/logo.png
# Delete
blink storage delete images/old-logo.pngblink ai — AI generation
# Text
blink ai text "Summarize this in 3 bullets: ..."
blink ai text "Write a product description" --model anthropic/claude-sonnet-4.5
# Image
blink ai image "a futuristic city at sunset"
blink ai image "a futuristic city" --model fal-ai/nano-banana-pro --n 4
blink ai image "a city at sunset" --output ./city.jpg
# Image editing
blink ai image-edit "make it night time" https://example.com/city.jpg
# Video (text-to-video)
blink ai video "a drone flyover of a neon city"
blink ai video "timelapse of clouds" --model fal-ai/veo3.1 --duration 10s --aspect 9:16
# Video (image-to-video) — local file or URL
blink ai animate "make it come alive" ./photo.jpg
blink ai animate "pan slowly to the right" https://example.com/photo.jpg
# Speech (text-to-speech)
blink ai speech "Hello, welcome to Blink."
blink ai speech "Hello world" --voice nova --output ./greeting.mp3
# Voices: alloy, echo, fable, onyx, nova, shimmer
# Transcription
blink ai transcribe ./meeting.mp3
blink ai transcribe https://example.com/audio.mp3 --language enblink fetch, blink search, blink scrape — Web & data
# Fetch any URL via Blink proxy (handles CORS, auth headers)
blink fetch https://api.github.com/users/octocat
blink fetch https://api.example.com/data --method POST --body '{"key":"val"}'
blink fetch https://api.example.com --header "X-API-Key: secret"
# Web search
blink search "latest AI news"
blink search "React Server Components" --count 10 --json
# Scrape web pages
blink scrape https://example.com # Raw response
blink scrape https://example.com --text # Clean text (strips HTML)
blink scrape https://example.com --extract "all prices" # AI-extract specific data
blink scrape https://news.ycombinator.com --extract "top 10 story titles and URLs"
blink scrape https://example.com --extract "contact email" --jsonNo project key needed — blink scrape uses your workspace key only.
--text— strips all HTML tags, returns readable text--extract <instructions>— uses AI (Gemini Flash) to extract exactly what you ask for- Combine with
--jsonfor{ url, content }or{ url, extracted }output
blink realtime — Pub/sub
# Publish an event to a channel
blink realtime publish updates '{"type":"refresh"}'
blink realtime publish proj_xxx updates '{"type":"refresh","data":{"count":42}}'blink rag — Knowledge base / RAG
# Search
blink rag search "how does billing work"
blink rag search "billing" --ai # AI-enhanced search
blink rag search proj_xxx "billing" --limit 10
# Upload a document
blink rag upload ./docs/faq.md
blink rag upload proj_xxx ./docs/faq.md --collection coll_xxx
# List collections
blink rag collectionsblink notify — Email
blink notify email [email protected] "Welcome!" "Thanks for signing up."
blink notify email [email protected] "Newsletter" --file ./email.html
blink notify email proj_xxx [email protected] "Subject" "Body"blink connector — OAuth connectors
# Execute a connector action (Notion, Google, Slack, HubSpot, etc.)
blink connector exec notion search_pages '{"query":"meeting notes"}'
blink connector exec google_calendar list_events '{}'
blink connector exec slack post_message '{"channel":"C123","text":"Hello"}' --method POST
blink connector exec notion create_page '{"title":"New Page"}' --account acct_xxxGlobal Flags
Available on every command:
| Flag | Description |
|---|---|
| --token <key> | Override API key for this command only |
| --json | Output raw JSON (no colors, no spinners — great for scripting) |
| --yes | Skip confirmation prompts |
| --profile <name> | Use a named profile from config.toml |
| --debug | Print full request/response details |
| --version | Print CLI version |
| --help | Show help for any command |
Scripting & CI/CD
The --json flag makes every command machine-readable:
# Get deployment URL from a deploy
URL=$(blink deploy ./dist --prod --json | jq -r '.url')
echo "Deployed to: $URL"
# Query database and pipe to jq
blink db query "SELECT id, email FROM users" --json | jq '.[].email'
# Generate image and get URL
IMG=$(blink ai image "a logo" --json | jq -r '.url')
blink storage upload ./banner.png --json | jq -r '.url'GitHub Actions example
- name: Deploy to Blink
env:
BLINK_API_KEY: ${{ secrets.BLINK_API_KEY }}
run: |
npm install -g @blinkdotnew/cli
blink deploy ./dist --prod --jsonConfig Files
| File | Purpose |
|---|---|
| ~/.config/blink/config.toml | Auth tokens, workspace ID, named profiles |
| .blink/project.json | Per-directory project link (like .vercel/project.json) |
.blink/project.json is created by blink link — add it to .gitignore.
Blink Claw Agents
The CLI is pre-installed in every Blink Claw agent (Fly.io Firecracker VM). These env vars are already injected — no login needed:
BLINK_API_KEY auth token (workspace-scoped)
BLINK_AGENT_ID this agent's ID — auto-used by blink agent/secrets commands
BLINK_APIS_URL https://core.blink.new
BLINK_APP_URL https://blink.newAgents use the CLI directly in skill scripts:
# In openclaw/skills/blink-image/scripts/generate.sh
blink ai image "$PROMPT" --model "$MODEL" --jsonblink agent — Manage agents
blink agent list # List all agents in workspace
blink agent use clw_xxx # Show how to set active agent
eval $(blink agent use clw_xxx --export) # Set active agent for this session
blink agent status # Show current agent details
blink agent status clw_xxx # Show specific agent detailsOn Claw machines, BLINK_AGENT_ID is already set — blink agent status works with zero config.
blink secrets — Agent encrypted vault
# All commands auto-use BLINK_AGENT_ID on Claw machines
blink secrets list # List secret key names (values never shown)
blink secrets set GITHUB_TOKEN ghp_xxx # Add or update a secret
blink secrets delete OLD_KEY # Remove a secret (--yes to skip prompt)
# Cross-agent management (agent manager pattern)
blink secrets list --agent clw_other # Another agent's keys
blink secrets set --agent clw_other OPENAI_KEY sk-xxx # Set on another agentSecrets are stored encrypted and available as $KEY_NAME in all agent shell commands.
Agent ID resolution for blink agent and blink secrets:
--agent <id>flagBLINK_AGENT_IDenv var ← always set on Claw Fly machinesBLINK_ACTIVE_AGENTenv var ← fromeval $(blink agent use clw_xxx --export)
blink status — Full context at a glance
$ BLINK_AGENT_ID=clw_xxx blink status
Agent clw_xxx (BLINK_AGENT_ID env)
Project proj_yyy (.blink/project.json)
Auth ~/.config/blink/config.tomlLinks
- npm: https://www.npmjs.com/package/@blinkdotnew/cli
- Blink platform: https://blink.new
- Docs: https://blink.new/docs
- Source:
blink-sdk/packages/cli/in theblink-new/blink-sdkrepo
