npm package: @ktmcp-cli/apideck
Description: Production-ready CLI for Apideck unified CRM API
Author: KTMCP
Latest version: 1.0.0

> "Six months ago, everyone was talking about MCPs. And I was like, screw MCPs. Every MCP would be better as a CLI."
>
> — [Peter Steinberger](https://twitter.com/steipete), Founder of OpenClaw
> [Watch on YouTube (~2:39:00)](https://www.youtube.com/@lexfridman) | [Lex Fridman Podcast #491](https://lexfridman.com/peter-steinberger/)

# Apideck CRM CLI

A production-ready command-line interface for the [Apideck](https://apideck.com) unified CRM API. Manage contacts, companies, leads, notes, and activities across all your CRM integrations from your terminal.

> **Disclaimer**: This is an unofficial CLI tool and is not affiliated with, endorsed by, or supported by Apideck.

## Features

- **Contacts** — List, get, create, and delete CRM contacts
- **Companies** — Manage company records
- **Leads** — Track and manage sales leads
- **Notes** — Create and retrieve notes
- **Activities** — Log calls, meetings, emails, and tasks
- **JSON output** — All commands support `--json` for scripting
- **Colorized output** — Clean, readable terminal output

## Why CLI > MCP

MCP servers are complex, stateful, and require a running server process. A CLI is:

- **Simpler** — Just a binary you call directly
- **Composable** — Pipe output to `jq`, `grep`, `awk`, and other tools
- **Scriptable** — Use in shell scripts, CI/CD pipelines, cron jobs
- **Debuggable** — See exactly what's happening with `--json` flag
- **AI-friendly** — AI agents can call CLIs just as easily as MCPs, with less overhead

## Installation

```bash
npm install -g @ktmcp-cli/apideck
```

## Configuration

```bash
apideck config set --api-key YOUR_API_KEY --app-id YOUR_APP_ID
apideck config set --consumer-id YOUR_CONSUMER_ID
apideck config set --service-id hubspot  # Optional: target specific CRM
apideck config show
```

Get your API credentials from [app.apideck.com](https://app.apideck.com).

## Commands

### Contacts

```bash
apideck contacts list
apideck contacts list --limit 50
apideck contacts get <id>
apideck contacts create --first-name John --last-name Doe --email john@example.com
apideck contacts create --first-name Jane --company "Acme Corp" --phone "+1234567890"
apideck contacts delete <id>
```

### Companies

```bash
apideck companies list
apideck companies get <id>
apideck companies create --name "Acme Corp" --industry Technology --website https://acme.com
```

### Leads

```bash
apideck leads list
apideck leads get <id>
apideck leads create --name "John Doe" --email john@example.com --company "Acme Corp"
apideck leads create --name "Jane Smith" --status "New" --source "Website"
```

### Notes

```bash
apideck notes list
apideck notes get <id>
apideck notes create --content "Spoke with customer about renewal" --contact-id <id>
```

### Activities

```bash
apideck activities list
apideck activities get <id>
apideck activities create --subject "Follow-up call" --type call --contact-id <id>
apideck activities create --subject "Demo meeting" --type meeting --start "2024-03-15T10:00:00Z"
```

## JSON Output

```bash
apideck contacts list --json | jq '.[] | {id, name: (.first_name + " " + .last_name)}'
apideck leads list --json | jq '.[] | select(.status == "New")'
```

## Contributing

Issues and pull requests are welcome at [github.com/ktmcp-cli/apideck](https://github.com/ktmcp-cli/apideck).

## License

MIT — see [LICENSE](LICENSE) for details.

---

Part of the [KTMCP CLI](https://killthemcp.com) project — replacing MCPs with simple, composable CLIs.