← Back to Skills Marketplace
taylorhou

CRM-in-a-Box

by taylorhou · GitHub ↗ · v0.1.0
cross-platform ⚠ suspicious
1002
Downloads
0
Stars
3
Active Installs
1
Versions
Install in OpenClaw
/install crm-in-a-box
Description
Bootstrap and manage an open, file-based CRM using the CRM-in-a-Box protocol (contacts, pipeline, interactions as NDJSON). Use when setting up a new CRM for...
README (SKILL.md)

CRM-in-a-Box Skill

An open, agent-native CRM protocol. One directory = one CRM. No vendor lock-in.

Files

  • contacts.ndjson — one JSON object per line, each a contact/company record
  • pipeline.ndjson — deal/opportunity tracking with stages
  • interactions.ndjson — append-only log of emails, calls, notes, meetings
  • config.yaml — pipeline stages and labels

Bootstrap a New CRM

Copy the baseline files into a company directory:

mkdir -p ./mycompany/crm
cp /path/to/crm-in-a-box/{config.yaml,contacts.ndjson,pipeline.ndjson,interactions.ndjson} ./mycompany/crm/

Or start fresh with empty NDJSON files and the default config.

Contact Schema

{
  "id": "c001",
  "name": "Jane Smith",
  "email": "[email protected]",
  "company": "Acme Corp",
  "phone": "+1-555-0100",
  "stage": "new",
  "labels": ["hot-lead"],
  "notes": "Referred by John.",
  "created_at": "2026-01-01T00:00:00Z"
}

Pipeline Schema

{
  "id": "p001",
  "contact_id": "c001",
  "stage": "proposal_sent",
  "deal": "Enterprise License",
  "value": 12000,
  "updated_at": "2026-01-15T00:00:00Z"
}

Interaction Schema

{
  "id": "i001",
  "contact_id": "c001",
  "type": "email",
  "summary": "Sent intro email about Denver market sale.",
  "at": "2026-01-15T10:00:00Z"
}

Pipeline Stages (default)

newcontactedmeeting_scheduledproposal_sentnegotiatingwon / lost

Default Labels

hot-lead, warm-lead, cold-lead, referral, conference, inbound, outbound

Agent Instructions

  • Log a contact: append a JSON line to contacts.ndjson
  • Update a stage: append an updated entry to pipeline.ndjson (keep old entries — append-only)
  • Log an interaction: append to interactions.ndjson
  • Search contacts: grep -i "name" contacts.ndjson | python3 -m json.tool
  • List pipeline: cat pipeline.ndjson | python3 -c "import sys,json; [print(json.dumps(json.loads(l), indent=2)) for l in sys.stdin]"

Forks / Verticals

Fork config.yaml to customize stages and labels for your vertical:

  • pm-crm — Property management (tenants, owners, vendors)
  • saas-crm — SaaS sales
  • realestate-crm — Buyers, sellers, listings
  • recruiting-crm — Candidates, jobs, placements

Part of the biz-in-a-box family of open protocols.

Usage Guidance
This is an instruction-only skill that manipulates local NDJSON/YAML files (append/search) and is coherent with its CRM purpose. Before installing: confirm you trust the registry owner/source (homepage is missing), ensure the agent will only be allowed to access the intended CRM directory (to avoid accidental exposure of other files), and be aware that contacts stored as plain NDJSON contain PII—use appropriate repository controls, backups, or encryption if needed. Also verify your runtime has grep and python3 if you plan to use the provided one-liners.
Capability Analysis
Type: OpenClaw Skill Name: crm-in-a-box Version: 0.1.0 The `SKILL.md` file contains agent instructions that execute shell commands, specifically `grep` and `cat` piped to `python3`. The `grep` command, `grep -i "name" contacts.ndjson | python3 -m json.tool`, presents a significant shell injection vulnerability (RCE risk) if the `name` parameter is derived from unsanitized user input. While these commands are intended for legitimate data processing within the CRM skill, the lack of explicit input sanitization instructions for the agent makes this a high-risk capability, classifying it as suspicious rather than benign due to the potential for exploitation.
Capability Assessment
Purpose & Capability
Name/description describe a file-based CRM protocol and the skill only requires creating/reading/writing NDJSON and a YAML config; all declared and included files align with that purpose.
Instruction Scope
Runtime instructions are limited to creating/copying files, appending JSON lines, and simple local searches using grep/python; they do not request reading unrelated system files, environment variables, or sending data to external endpoints.
Install Mechanism
No install spec or code is present (instruction-only), so nothing is written to disk by an installer and no external archives or unknown URLs are fetched by the skill itself.
Credentials
The skill declares no required environment variables, credentials, or config paths. The simple use of grep and python is proportionate to the described functionality.
Persistence & Privilege
always is false, the skill has no install-time persistence, and its instructions operate on local files within the CRM directory only — no modifications to other skills or system-wide settings are requested.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install crm-in-a-box
  3. After installation, invoke the skill by name or use /crm-in-a-box
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial release — open file-based CRM protocol with contacts, pipeline, and interactions
Metadata
Slug crm-in-a-box
Version 0.1.0
License
All-time Installs 4
Active Installs 3
Total Versions 1
Frequently Asked Questions

What is CRM-in-a-Box?

Bootstrap and manage an open, file-based CRM using the CRM-in-a-Box protocol (contacts, pipeline, interactions as NDJSON). Use when setting up a new CRM for... It is an AI Agent Skill for Claude Code / OpenClaw, with 1002 downloads so far.

How do I install CRM-in-a-Box?

Run "/install crm-in-a-box" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is CRM-in-a-Box free?

Yes, CRM-in-a-Box is completely free (open-source). You can download, install and use it at no cost.

Which platforms does CRM-in-a-Box support?

CRM-in-a-Box is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created CRM-in-a-Box?

It is built and maintained by taylorhou (@taylorhou); the current version is v0.1.0.

💬 Comments