@marketsizer-gtm/cli
v0.5.9
Published
MarketSizer internal ops CLI — query BigQuery, Azure PG, Supabase, and Enrich API from one command
Readme
Iggy — MarketSizer SignalOps CLI
,-.___,-. Iggy v0.4
\_/_ _\_/ MarketSizer SignalOps CLI
)O_O( Type ? for commands, ?? for examples
{ (_) }
`-^-'Query all four MarketSizer data layers from one terminal. 33 commands across GTM, RevOps, Marketing, Credits, Data, and Ops — plus an animated Tamagotchi pet.
iggy status # system health at a glance
iggy prospect stripe.com # full company brief with signals
iggy discover --country US --icp-tier "Tier 1" --limit 10
iggy compete shopify hubspot # head-to-head vendor comparison
iggy pet feed # feed Iggy, earn creditsInstall (Team)
Prerequisites: Node.js 18+, Git, GitHub org access to marketsizer-gtm
Works on: macOS, Linux, Windows Git Bash, WSL. Not Windows cmd.exe / PowerShell — use Git Bash.
One-liner (recommended)
curl -fsSL https://raw.githubusercontent.com/marketsizer-gtm/ms-cli/master/install.sh | bashClones to ~/tools/ms-cli, installs deps, runs npm link, prints next steps. Custom path: IGGY_INSTALL_DIR=/other/path curl ... | bash.
Pick your auth path
A) External user (most team members — no DB passwords, auth via browser):
iggy login # opens browser → Clerk → paste token backYour Clerk role (admin/member) gates which commands work. All data flows through https://app.marketsizer.io.
B) Internal MS staff (direct DB access — ~100× faster, all 34 commands including onboard-prospect):
cd ~/tools/ms-cli
cp .env.example .env
# Edit: fill in AZURE_PG_PASSWORD, SUPABASE_PASSWORD, GOOGLE_APPLICATION_CREDENTIALS
# (ask Niall for 1Password links)Manual install (fallback)
If the one-liner fails (corporate proxy, firewall, etc.):
git clone https://github.com/marketsizer-gtm/ms-cli.git ~/tools/ms-cli
cd ~/tools/ms-cli
npm install
npm link # may need sudo on Linux, admin terminal on Windows
iggy healthThat's it. iggy now works from any directory.
Agent VM
ssh [email protected]
cd ~/tools/ms-cli
git pull && npm install
chmod +x bin/ms.js
sudo npm link
iggy healthUpdating
iggy upgrade # pulls latest + installs deps if changedCredentials (.env)
Copy .env.example to .env and fill in these 3 values:
| Variable | Where to get it |
|----------|----------------|
| AZURE_PG_PASSWORD | az webapp config appsettings list --name marketsizer-enrich-api --resource-group rg-marketsizer-api → DB_PASSWORD |
| SUPABASE_PASSWORD | ~/.supabase_credentials or Supabase dashboard → Settings → Database |
| GOOGLE_APPLICATION_CREDENTIALS | Path to GCP service account JSON (e.g. ~/tools/acquired-cargo-*.json) |
Everything else has working defaults. Hosts, ports, and API URLs are pre-configured.
Usage
Interactive REPL
$ iggy
,-.___,-. Iggy v0.4
\_/_ _\_/ MarketSizer SignalOps CLI
)O_O( Type ? for commands, ?? for examples
{ (_) }
`-^-'
Iggy> status
PLATFORM HEALTH: 5/6
...
Iggy> pet rub
🤲 Tail wagging intensifies!
+2 credits
─────────────────────────────────────
🐕 happy | ❤️ 85 | ⚡ 72 | 🧹 90 | 💊 100
Iggy> exit
Iggy out! woof- Tab completion — type a few letters + Tab
?— compact command list grouped by persona??— expanded help with examples and plain English descriptions- Animated Iggy — lives in the bottom-right corner, blinks and reacts to mood
One-shot
iggy status
iggy lookup stripe.com --json
iggy discover --country Ireland --jsonl | iggy pipe lookupCommands (33)
GTM / Sales
| Command | Description | Access |
|---------|-------------|--------|
| prospect <domain> | Full company brief — ICP, signals, leads, competitors | org-scoped |
| signals | Buying signals by urgency | org-scoped |
| pipeline [org] | Lead funnel — new, qualified, contacted, won | org-scoped |
| discover [filters] | Find companies (country, ICP, traffic, vendor) | all |
| territory [name] | Territory assignments and members | admin |
RevOps
| Command | Description | Access |
|---------|-------------|--------|
| health | Platform health score (6 checks) | all |
| billing | Plans, org breakdown, usage trends | admin |
| churn-risk | Orgs at risk — inactive, low credits | admin |
| onboard <org> | Onboarding checklist | admin |
Credits
| Command | Description | Access |
|---------|-------------|--------|
| credits balance | Credit balances | org-scoped |
| credits usage [org] | Usage breakdown by day | org-scoped |
| credits low [-t N] | Orgs below threshold | admin |
Marketing / Intel
| Command | Description | Access |
|---------|-------------|--------|
| market <vendor> | Vendor market data + battlecards | all |
| compete <a> <b> | Head-to-head vendor comparison | all |
| segment [filters] | Segment sizing by country, ICP, traffic | all |
Core
| Command | Description | Access |
|---------|-------------|--------|
| status | System health dashboard | admin |
| lookup <domain> | Cross-layer company lookup + drift | org-scoped |
| orgs | All organizations overview | admin |
| debug <org> | Deep org debug | admin |
Data / Pipeline (admin)
| Command | Description |
|---------|-------------|
| data counts | BQ vs PG row comparison |
| data freshness | Sync status across layers |
| data nulls [--bq] | Null rate analysis |
| data drift [-s N] | Field-level BQ vs PG diff |
| data query <sql> [--bq] | Ad-hoc SQL |
API (admin)
| Command | Description |
|---------|-------------|
| api test <domain> | Enrich API smoke test |
| api health | Endpoint health checks |
Ops (admin)
| Command | Description |
|---------|-------------|
| crm <org> | CRM connection status |
| deploy [api\|web] | Deployment status |
| logs [--tail] | Azure App Service logs |
| pipe <cmd> [sql] | JSONL pipe mode (lookup, enrich, score, query) |
Iggy Pet
| Command | Effect | Credits |
|---------|--------|---------|
| pet rub | +15 happiness | +2 |
| pet feed | +10 happiness, +15 energy | +2 |
| pet fetch | +20 happiness, -10 energy | +3 |
| pet clean | +20 cleanliness | +2 |
| pet sleep | +30 energy | +1 |
| pet vet | Full health restore | -10 |
| pet status | Full stats + mood | — |
Stats decay over time. Iggy gets sad if ignored, sick if health < 20. State syncs with the web app in real-time.
Auth / System
| Command | Description |
|---------|-------------|
| login [--force] | Login via MarketSizer (opens browser) |
| logout | Clear credentials |
| whoami | Show auth context, token expiry, rate limit |
| upgrade | Self-update (git pull or npm update) |
Pipe (composability)
# Discover → lookup → filter
iggy discover --country US --icp-tier "Tier 1" --limit 100 --jsonl \
| iggy pipe lookup \
| jq 'select(.traffic_tier == "10M+")'
# Ad-hoc query → lookup
iggy pipe query "SELECT domain FROM company_history WHERE country='Ireland' LIMIT 10" \
| iggy pipe lookupGlobal flags
Every command supports --json for machine-readable output.
MCP Server
Expose Iggy as native tools for Claude Code, Codex, or any MCP client:
claude mcp add ms-ops node ~/tools/ms-cli/mcp/server.js11 tools: ms_status, ms_lookup, ms_orgs, ms_debug, ms_credits_balance, ms_credits_low, ms_data_counts, ms_data_nulls, ms_discover, ms_query, ms_deploy
Architecture
ms-cli/
├── bin/ms.js # Entry point, REPL, animated mascot, command registration
├── lib/
│ ├── config.js # Env config loader (no hardcoded secrets)
│ ├── db.js # Lazy DB pools (Azure PG, Supabase, BigQuery)
│ ├── format.js # Terminal formatting (chalk)
│ ├── auth.js # CLI token auth + credential storage
│ ├── scope.js # Org-scoping + role-based access control
│ └── ratelimit.js # Sliding window rate limiter
├── commands/ # 33 command files
│ └── pet.js # Iggy pet system + status bar
├── mcp/server.js # MCP server (11 tools, stdio transport)
├── .env # Credentials (gitignored)
└── .env.example # Template with all hostnamesData sources
| Layer | Purpose | Connection | |-------|---------|-----------| | BigQuery | Source of truth (43M+ companies) | GCP service account | | Azure PG | Operational DB (synced daily from BQ) | Direct TCP, SSL | | Supabase | App layer (orgs, credits, leads, CRM, Iggy pets) | Direct TCP, SSL | | Enrich API | Live enrichment endpoint | HTTPS (Azure App Service) |
Access control
| Mode | How it works |
|------|-------------|
| Internal (has .env) | Admin — all 33 commands, no login needed |
| External admin (iggy login) | Org-scoped commands, 90-day token, 120 req/min |
| External member (iggy login) | Read-only org-scoped commands, 30 req/min |
| Unauthenticated | login, help only |
External users (future)
External customer CLI access is planned but not yet available. Most commands require direct database access which external users don't have. The pet system and auth commands work externally via the web app API. Full external support requires an API gateway layer (tracked in backlog).
