Get the FREE Ultimate OpenClaw Setup Guide →

cli

npx machina-cli add skill andrmaz/spec-driven-architecture/cli --openclaw
Files (1)
SKILL.md
6.3 KB

Tambo 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.isTTY is false (piped input)
  • process.stdout.isTTY is false (piped output)
  • CI environment variable is set
  • GITHUB_ACTIONS=true

Override with FORCE_INTERACTIVE=1 (requires real TTY).

Exit Codes

CodeMeaning
0Success
1Error (network, invalid args, etc.)
2User 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

ComponentDescription
message-thread-fullComplete message thread with all content and interactions
message-thread-panelMessage thread in a side panel or modal context
message-thread-collapsibleMessage threads that can be expanded or collapsed
messageIndividual messages with markdown support
message-inputComposes and sends messages in a conversation
message-suggestionsAI-generated suggestions to help users compose responses
control-barControls and actions in the interface
input-fieldsReusable input fields with styles and validation
graphVisualizes graph-based data structures
formCollects user input with validation support
mapInteractive map with clustering and heatmap support
canvas-spaceDisplays rendered components from chat messages
thread-historyChronological history of a conversation thread
thread-dropdownDropdown menu for collapsible chat threads
thread-contentDisplays messages within a thread
scrollable-message-containerContainer that auto-scrolls to new messages
edit-with-tambo-buttonInline AI editor button for interactable components
elicitation-uiMCP elicitation UI for user input requests
mcp-componentsMCP 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

FlagCommandsPurpose
--yes, -yinit, add, listSkip all prompts
--api-keyinitDirect API key input
--project-nameinitCreate new project
--project-idinitUse existing project
--no-browserauth loginOutput URL instead of opening
--dry-runaddPreview without installing
--prefixadd, listCustom 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

  1. Step 1: npx tambo init --api-key=sk_...
  2. Step 2: npx tambo add message-thread-full --yes
  3. 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

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers