Check out our open source tools to give Claude Code GTM superpowers
All open-source tools

Bison CLI

Full-featured CLI for EmailBison — workspace, leads, campaigns, sequences, variables.

Open source · MIT · Production-tested inside LeadGrow's live pipeline
Quick install
$ pip install -r requirements.txt
What you unlock

A Python CLI that wraps the complete EmailBison REST API. Manage workspaces, bulk upsert leads (500/request), build and QA email sequences, set freeform variables, and orchestrate campaigns from the terminal. Built for Claude Code pipelines that need programmatic access to cold email infrastructure.

OutcomeBuilt at LeadGrow, used in live pipelines, shipped open source so you don't have to build it yourself.
How it works
Bison CLI — how it works
See it in action

4 things you can do right now.

No UI. No clicking. Just commands that execute.

Bulk upsert leads from Clay export
$ bison leads upsert \ --file clay-export.csv \ --workspace "outbound-q2" \ --batch-size 500
✓ 1,247 leads processed → 891 created → 356 patched
OutcomeClay enriches. Bison gets them. Your morning list is ready before coffee.
Launch a campaign in 30 seconds
$ bison campaigns create \ --name "SaaS CFOs Q2" \ --workspace "outbound-q2" \ --sequence "cfos-5step"
✓ Campaign created (camp_01jk3...) ✓ 1,247 leads enrolled
OutcomeSequence wired. Leads enrolled. First email goes out on schedule.
Surface interested replies instantly
$ bison replies list \ --campaign "SaaS CFOs Q2" \ --status interested
3 interested replies → Alice Park — "Let's chat" → Ben Torres — "Send me the deck"
OutcomeHot replies surface in seconds. No inbox archaeology required.
Set a freeform variable — no length limit
$ bison leads variable set \ --email "[email protected]" \ --key "custom_opener" \ --value "$(cat opener.txt)"
✓ Variable set for [email protected]
OutcomeFull email assembled from fields. No character limits. No workarounds.
What's included

Every capability, ready to script.

Bulk lead upsert (500/req) with patch-behavior preservation
v1.1 sequence endpoints with variant + branching support
Freeform variables — no length limits, assemble entire emails from fields
Workspace scoping — switch workspaces without re-auth
Full Postman-verified API coverage
The workflow

End to end. Zero manual steps.

This is the exact pipeline behind 212 leads and $220k revenue in 4 months for one of our clients.

01

Upload leads from any source.

Pipe Clay exports, CSVs, or API payloads directly into Bison. 500 records per request. Patch behavior preserves custom fields already on the lead.

$ bison leads upsert --file pipeline.csv \ --workspace "outbound-q2" --batch-size 500
02

Build and QA the sequence.

Add steps, set delays, configure variants — all from the CLI. QA the full sequence before launch without touching the UI once.

$ bison sequences create --name "cfos-5step" \ --steps steps.json --workspace "outbound-q2"
03

Launch the campaign.

Wire leads to a sequence and go. Bison handles scheduling, inbox rotation, and deliverability automatically. You handle replies.

$ bison campaigns launch --id "camp_01jk3" \ --go-live "2026-05-20T09:00:00"
04

Route interested replies to your CRM.

Poll the reply queue, pull interested signals, push them to Attio. No manual inbox monitoring. The pipeline closes itself.

$ bison replies list --status interested \ | jq '.[] | {email, subject}' \ | attio people upsert
Real scenarios

What teams actually use it for.

Not theoretical. These are the pipelines running at LeadGrow and client stacks today.

01Scripting lead uploads from Clay, CSVs, or custom pipelines
02Programmatic campaign QA before launch
03Claude Code automations that need to touch EmailBison
Included skills

Pre-built automations. Ready to run.

These aren't demos. They're the Claude Code skills we run inside LeadGrow, shipped open source so you don't have to build them yourself.

campaign-launcher

Campaign Launcher

Takes a CSV and a sequence ID. Upserts leads into Bison, creates a campaign, and launches it. Start to fired in under 60 seconds.

Triggers: "launch campaign with [file]"
reply-router

Reply Router

Polls for interested replies. Extracts name, company, and intent. Pushes to Attio. Creates a task with context. You review the task, not the inbox.

Triggers: "check replies" or on a daily cron
sequence-builder

Sequence Builder

Takes a brief — ICP, pain, CTA — and writes a 5-step email sequence. Uploads each step to Bison. Sequence is live in under 3 minutes.

Triggers: "build me a sequence for [ICP]"
Custom build

Want us to build yours?

Custom CLIs, MCP servers, and Claude Code skills wired to your exact GTM stack.

We build these for clients. Then we ship them open.

Book a Strategy Call →