Command-line interface for the Teardrop AI agent platform
Project description
teardrop-cli
The fastest way to publish a tool, run an agent, and earn USDC — straight from your terminal.
Teardrop is the crypto-native AI agent platform. Tool authors publish webhooks, get paid per call in USDC, and never touch a dashboard. Agent users run prompts that automatically discover and pay for the right tools.
pip install teardrop-cli
teardrop quickstart # 60-second guided onboarding
Already onboarded? Jump to Run an Agent or Publish a Tool.
Install
pip install teardrop-cli
teardrop --version
Requires Python ≥ 3.11.
60-Second Quickstart
The wizard walks you through sign-in, BYOK LLM setup, and your first agent run or scaffolded tool:
teardrop quickstart
Prefer the manual path? Pick a sign-in method:
# Wallet-first (no email needed) — generates a wallet on first run if you don't have one
teardrop auth login --siwe --generate-wallet
# Email + password
teardrop auth signup --email you@example.com --org-name acme
# Already have an account
teardrop auth login --email you@example.com
Then run your first agent:
teardrop run "Summarize the latest ETH gas trends"
Sign In
| Goal | Command |
|---|---|
| Create account & org | teardrop auth signup |
| Generate a new wallet & sign in | teardrop auth login --siwe --generate-wallet [--save-key] |
| Sign in with wallet (existing key) | teardrop auth login --siwe --key-file wallet.key [--save-key] |
| Email + password | teardrop auth login --email you@example.com |
| Pre-issued JWT | teardrop auth login --token <jwt> |
| Invite a team member | teardrop auth invite colleague@example.com |
| Show identity | teardrop auth status |
| Sign out | teardrop auth logout |
Private keys are never persisted by the CLI unless you pass --save-key.
When saved, the key is stored in your OS keyring (never in a config file)
and can be used for automatic re-authentication when the session token
expires. An encrypted keyring backend is required — plaintext fallbacks
are refused.
For machine-to-machine credentials, env-var precedence, and CI patterns, see docs/cli-reference.md.
Publish a Tool
Scaffold a starter spec, edit it, and publish:
teardrop tools init my_scraper # writes ./tool.json
$EDITOR tool.json # set webhook_url, schema, price
teardrop tools probe my_scraper # test webhook health before publishing
teardrop tools publish --from-file tool.json \
--settlement-wallet 0xYourChecksumAddress
Or run the interactive wizard:
teardrop tools publish
Tool name rules: ^[a-z][a-z0-9_]*$, ≤ 64 chars. Prices are in atomic USDC (6 decimals): 5000 = $0.005 per call. Settlement wallet is required once before your first payout.
Test your webhook before publishing with teardrop tools probe <tool-name>. Optionally pass --auth-header-name and --auth-header-value if your webhook requires auth, or use --method and --payload to customize the probe request.
Manage existing tools: teardrop tools list | info | update | pause | delete | probe. Full reference: docs/cli-reference.md.
Earn
teardrop earnings balance # marketplace balance
teardrop earnings history # per-call history
teardrop earnings withdraw 10.00 # to your settlement wallet
teardrop earnings withdrawals # past payouts
On-chain withdrawals typically settle in 1–5 minutes.
Run an Agent
teardrop run "What is the current ETH gas price?"
# Continue a thread
teardrop run "Follow up" --thread <thread-id>
# Pass structured context
teardrop run "Process this order" --context '{"order_id":"ord_123"}'
# Exclude specific tools
teardrop run "Summarize news" --exclude platform/web_search
# Estimate cost based on current pricing & config (no run performed)
teardrop run "Analyze this data" --estimate-cost
# Apply a tool policy from a file
teardrop run "Execute workflow" --policy-file policy.json
# Machine-readable output
teardrop run "..." --json --no-stream
# Include UI component data for dashboard export (adds ~60s overhead)
teardrop run "..." --json --with-ui
Streaming output renders Markdown live with inline tool calls and structured UI components. A token + cost summary prints at the end. By default, CLI output is optimized for scripting and automation (emit_ui=false); use --with-ui only if you need structured UI component data in the JSON output.
Automate Runs
Use interval schedules for recurring prompts and event triggers for inbound webhooks:
teardrop schedules create \
--name hourly-briefing \
--prompt "Summarize open incidents" \
--interval-seconds 3600
teardrop schedules list
teardrop schedules runs <schedule-id>
teardrop event-triggers create \
--name inbound-orders \
--prompt "Validate and process this order payload"
teardrop event-triggers runs <trigger-id>
teardrop event-triggers rotate-secret <trigger-id>
event-triggers create and event-triggers rotate-secret print the signing secret once. Store it immediately.
Full reference: docs/cli-reference.md and docs/cli-reference.md.
Chat with an Agent
A stateful chat mode that automatically continues the same thread across invocations:
teardrop chat "What is the current ETH gas price?" # auto-creates a thread
teardrop chat "Follow up on that" # continues the same thread
teardrop chat "Start fresh" --new # starts a new conversation
teardrop chat "Specific thread" --thread thr_abc123 # explicit thread by id
teardrop chat "..." --json # machine-readable output
The active thread id is stored in ~/.teardrop/config.toml and reused on your next teardrop chat call. The thread id is printed after every turn for copy/paste. All run flags (--context, --exclude, --policy-file, --estimate-cost, --with-ui, --no-stream) are supported.
Use teardrop run for one-shot, script-friendly calls — use teardrop chat for conversational interaction.
If a run fails on credit, check your balance and history:
teardrop balance # current credits
teardrop balance credit-history # past charges and top-ups
To add credits, visit teardrop.dev.
Agent Tools
List all tools visible to your agent (platform, marketplace subscriptions, and your own tools):
teardrop agent-tools list
Configure Your LLM
One-shot bring-your-own-key wizard:
teardrop llm-config byok
Or set explicitly:
# Quality tier (default)
teardrop llm-config set --provider anthropic --model claude-sonnet-4-6 --routing quality
# Cost tier
teardrop llm-config set --provider openrouter --model deepseek-chat --routing cost
# Speed tier
teardrop llm-config set --provider google --model gemini-3-flash --routing speed
Pipe a key from stdin to keep it out of shell history: --byok-key -. See docs/cli-reference.md for advanced tuning, BYOK details, and benchmarks.
Browse the Marketplace
teardrop marketplace list
teardrop marketplace search "weather"
teardrop marketplace info acme/weather
teardrop marketplace subscribe acme/weather
teardrop marketplace subscriptions
Browsing requires no authentication. Subscribed tools become immediately available to your agents.
Where to Go Next
- Full CLI reference — every flag, env-var precedence, exit codes, M2M auth, MCP servers, models benchmarks, config file, development.
- End-to-end test guide — running tests against a live API.
- teardrop.dev — platform docs and dashboard.
License
MIT. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file teardrop_cli-0.3.0.tar.gz.
File metadata
- Download URL: teardrop_cli-0.3.0.tar.gz
- Upload date:
- Size: 92.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd72fed056471fc8d42b9cf4fb015f61b4de9997159b50155097cbbdfc577235
|
|
| MD5 |
4486b7b593d4a2741d9d020b9a650710
|
|
| BLAKE2b-256 |
c564b08845e6f9ccd81f1964608635875e5ff79e86957244b3123f5d50394fac
|
Provenance
The following attestation bundles were made for teardrop_cli-0.3.0.tar.gz:
Publisher:
publish.yml on teardrop-ai/teardrop-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
teardrop_cli-0.3.0.tar.gz -
Subject digest:
dd72fed056471fc8d42b9cf4fb015f61b4de9997159b50155097cbbdfc577235 - Sigstore transparency entry: 2016047613
- Sigstore integration time:
-
Permalink:
teardrop-ai/teardrop-cli@5fdbed76cbc24dc0719119bb1bbdcf4605a7af85 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/teardrop-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5fdbed76cbc24dc0719119bb1bbdcf4605a7af85 -
Trigger Event:
push
-
Statement type:
File details
Details for the file teardrop_cli-0.3.0-py3-none-any.whl.
File metadata
- Download URL: teardrop_cli-0.3.0-py3-none-any.whl
- Upload date:
- Size: 68.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eedc002008a783faccc81f6e9409154ef2a55afc39e406a0f4c06ad29cc58a6a
|
|
| MD5 |
307f533d767f540c7f9b55558cf3d40a
|
|
| BLAKE2b-256 |
82fd5394ebb265de9ee8a170a6eab10430c9d3adb40228fef7612a1e38563fc9
|
Provenance
The following attestation bundles were made for teardrop_cli-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on teardrop-ai/teardrop-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
teardrop_cli-0.3.0-py3-none-any.whl -
Subject digest:
eedc002008a783faccc81f6e9409154ef2a55afc39e406a0f4c06ad29cc58a6a - Sigstore transparency entry: 2016047682
- Sigstore integration time:
-
Permalink:
teardrop-ai/teardrop-cli@5fdbed76cbc24dc0719119bb1bbdcf4605a7af85 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/teardrop-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5fdbed76cbc24dc0719119bb1bbdcf4605a7af85 -
Trigger Event:
push
-
Statement type: