cli
npx machina-cli add skill andrmaz/spec-driven-architecture/cli --openclawTambo CLI
Agent-friendly CLI for project setup and component management.
Quick Start
npx tambo init --api-key=sk_... # Initialize with API key
npx tambo add message-thread-full --yes # Add a component
npx tambo create-app my-app --template=standard # New app from template
Non-Interactive Mode
The CLI detects non-interactive environments and returns guidance instead of hanging:
# In CI or piped environments, this returns guidance (exit 2) instead of prompting
npx tambo init
# Error: Project name required.
# Run one of:
# tambo init --project-name=myapp # Create new project
# tambo init --project-id=abc123 # Use existing project
Detection Logic
Non-interactive when ANY of these are true:
process.stdin.isTTYis false (piped input)process.stdout.isTTYis false (piped output)CIenvironment variable is setGITHUB_ACTIONS=true
Override with FORCE_INTERACTIVE=1 (requires real TTY).
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Error (network, invalid args, etc.) |
| 2 | User action required - check stderr for exact command |
Commands for Agents
Initialize Project
# Option 1: Direct API key (simplest for agents)
npx tambo init --api-key=sk_...
# Option 2: Create new project (requires prior auth)
npx tambo init --project-name=myapp
# Option 3: Use existing project
npx tambo init --project-id=abc123
# Skip all prompts with defaults
npx tambo init --yes --project-name=myapp
Add Components
npx tambo add form --yes # Skip confirmation
npx tambo add form graph --yes # Multiple components
npx tambo add form --prefix=src/components # Custom directory
npx tambo add form --dry-run # Preview changes
npx tambo add form --legacy-peer-deps # For dependency conflicts
Component Library
Browse and preview all components at ui.tambo.co.
Available Components
| Component | Description |
|---|---|
message-thread-full | Complete message thread with all content and interactions |
message-thread-panel | Message thread in a side panel or modal context |
message-thread-collapsible | Message threads that can be expanded or collapsed |
message | Individual messages with markdown support |
message-input | Composes and sends messages in a conversation |
message-suggestions | AI-generated suggestions to help users compose responses |
control-bar | Controls and actions in the interface |
input-fields | Reusable input fields with styles and validation |
graph | Visualizes graph-based data structures |
form | Collects user input with validation support |
map | Interactive map with clustering and heatmap support |
canvas-space | Displays rendered components from chat messages |
thread-history | Chronological history of a conversation thread |
thread-dropdown | Dropdown menu for collapsible chat threads |
thread-content | Displays messages within a thread |
scrollable-message-container | Container that auto-scrolls to new messages |
edit-with-tambo-button | Inline AI editor button for interactable components |
elicitation-ui | MCP elicitation UI for user input requests |
mcp-components | MCP prompt and resource picker buttons |
What You Get
Each component includes:
- Source code copied to your project (not a dependency)
- Tambo integration pre-configured with hooks
- Styling via Tailwind CSS (customizable)
- TypeScript with full type definitions
Example: Full Chat Interface
npx tambo add message-thread-full control-bar --yes
This adds a complete chat UI with:
- Message history display
- AI-generated component rendering
- Input bar with send button
- Streaming status indicators
List Components (No Prompts)
npx tambo list --yes
Create New App
npx tambo create-app my-app --template=standard
Authentication
npx tambo auth login --no-browser # Prints URL instead of opening browser
npx tambo auth status # Check current auth (no prompts)
Full Setup (One Command)
npx tambo full-send # Complete setup with components
Agent Docs
The CLI auto-creates/updates AGENTS.md with Tambo documentation:
npx tambo add form --yes # Also updates AGENTS.md
The generated section includes CLI commands formatted for non-interactive use.
Key Flags Summary
| Flag | Commands | Purpose |
|---|---|---|
--yes, -y | init, add, list | Skip all prompts |
--api-key | init | Direct API key input |
--project-name | init | Create new project |
--project-id | init | Use existing project |
--no-browser | auth login | Output URL instead of opening |
--dry-run | add | Preview without installing |
--prefix | add, list | Custom component directory |
Source
git clone https://github.com/andrmaz/spec-driven-architecture/blob/develop/.agents/skills/cli/SKILL.mdView on GitHub Overview
Tambo CLI provides agent-friendly commands for initializing projects, adding components, and browsing the component library. It supports non-interactive mode for CI and returns explicit exit codes to guide automation. Use it for tambo init, tambo add, npx tambo commands, or exploring ui.tambo.co.
How This Skill Works
The CLI detects non-interactive environments via stdin/stdout TTY checks, CI flags, or GITHUB_ACTIONS, and prints guidance with an exit code of 2 rather than prompting. Commands like npx tambo init, npx tambo add, and npx tambo create-app perform actions, while the Component Library is browsed at ui.tambo.co.
When to Use It
- Starting a new project with tambo init in automated environments
- Adding components to a project with tambo add
- Creating an app from a template with tambo create-app
- Browsing or validating available components in the library
- Running in CI/CD or other non-interactive scenarios to receive guidance
Quick Start
- Step 1: npx tambo init --api-key=sk_...
- Step 2: npx tambo add message-thread-full --yes
- Step 3: npx tambo create-app my-app --template=standard
Best Practices
- Use non-interactive mode in CI and automation with --yes or explicit flags
- Keep authentication credentials secure and avoid logging API keys
- Verify exit codes in scripts and handle 0/1/2 accordingly
- Use --dry-run to preview changes before applying
- Prefer explicit project identifiers (--project-id or --project-name) to avoid ambiguity
Example Use Cases
- Initialize a new project with an API key: npx tambo init --api-key=sk_...
- Add a component without prompts: npx tambo add message-thread-full --yes
- Create a new app from the standard template: npx tambo create-app my-app --template=standard
- In CI, run tambo init to receive guidance (exit code 2) when prompts would hang
- Browse the component library at ui.tambo.co to discover available components