wealthbox-cli 1.1.6__tar.gz → 1.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. wealthbox_cli-1.2.0/.claude-plugin/marketplace.json +25 -0
  2. wealthbox_cli-1.2.0/.codex-plugin/plugin.json +16 -0
  3. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/PKG-INFO +53 -14
  4. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/README.md +52 -13
  5. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/SKILL.md +31 -13
  6. wealthbox_cli-1.2.0/codex-skill/wealthbox-crm/bootstrap.md +127 -0
  7. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/docs/changelog.md +25 -0
  8. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/docs/getting-started.md +17 -1
  9. wealthbox_cli-1.2.0/plugins/wealthbox-crm/.claude-plugin/plugin.json +17 -0
  10. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/SKILL.md +156 -0
  11. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/bootstrap.md +127 -0
  12. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/contacts.md +21 -0
  13. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/events.md +9 -0
  14. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/notes.md +5 -0
  15. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/opportunities.md +12 -0
  16. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/projects.md +5 -0
  17. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/tasks.md +14 -0
  18. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/workflows.md +31 -0
  19. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/references/contacts.md +153 -0
  20. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/references/events.md +88 -0
  21. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/references/households.md +40 -0
  22. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/references/lookups.md +78 -0
  23. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/references/notes.md +67 -0
  24. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/references/opportunities.md +87 -0
  25. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/references/projects.md +60 -0
  26. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/references/tasks.md +101 -0
  27. wealthbox_cli-1.2.0/plugins/wealthbox-crm/skills/wealthbox-crm/references/workflows.md +90 -0
  28. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/pyproject.toml +1 -1
  29. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/_skill_bootstrap.py +129 -53
  30. wealthbox_cli-1.2.0/src/wealthbox_tools/cli/_skill_paths.py +34 -0
  31. wealthbox_cli-1.2.0/src/wealthbox_tools/cli/skills.py +395 -0
  32. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/SKILL.md +156 -0
  33. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/bootstrap.md +127 -0
  34. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/contacts.md +21 -0
  35. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/events.md +9 -0
  36. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/notes.md +5 -0
  37. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/opportunities.md +12 -0
  38. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/projects.md +5 -0
  39. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/tasks.md +14 -0
  40. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/workflows.md +31 -0
  41. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/references/contacts.md +153 -0
  42. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/references/events.md +88 -0
  43. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/references/households.md +40 -0
  44. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/references/lookups.md +78 -0
  45. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/references/notes.md +67 -0
  46. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/references/opportunities.md +87 -0
  47. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/references/projects.md +60 -0
  48. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/references/tasks.md +101 -0
  49. wealthbox_cli-1.2.0/src/wealthbox_tools/skills/wealthbox-crm/references/workflows.md +90 -0
  50. wealthbox_cli-1.1.6/src/wealthbox_tools/cli/skills.py +0 -513
  51. wealthbox_cli-1.1.6/src/wealthbox_tools/skills/wealthbox-crm/bootstrap.md +0 -119
  52. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/.env.example +0 -0
  53. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/.github/workflows/ci.yml +0 -0
  54. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/.github/workflows/docs.yml +0 -0
  55. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/.gitignore +0 -0
  56. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/CONTRIBUTING.md +0 -0
  57. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/LICENSE +0 -0
  58. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/SECURITY.md +0 -0
  59. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/firm-examples/contacts.md +0 -0
  60. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/firm-examples/events.md +0 -0
  61. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/firm-examples/notes.md +0 -0
  62. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/firm-examples/opportunities.md +0 -0
  63. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/firm-examples/projects.md +0 -0
  64. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/firm-examples/tasks.md +0 -0
  65. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/firm-examples/workflows.md +0 -0
  66. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/references/contacts.md +0 -0
  67. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/references/events.md +0 -0
  68. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/references/households.md +0 -0
  69. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/references/lookups.md +0 -0
  70. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/references/notes.md +0 -0
  71. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/references/opportunities.md +0 -0
  72. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/references/projects.md +0 -0
  73. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/references/tasks.md +0 -0
  74. {wealthbox_cli-1.1.6/src/wealthbox_tools/skills → wealthbox_cli-1.2.0/codex-skill}/wealthbox-crm/references/workflows.md +0 -0
  75. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/docs/cli-reference.md +0 -0
  76. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/docs/index.md +0 -0
  77. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/docs/overrides/main.html +0 -0
  78. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/docs/promotion.md +0 -0
  79. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/mkdocs.yml +0 -0
  80. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/__init__.py +0 -0
  81. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/__init__.py +0 -0
  82. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/_config.py +0 -0
  83. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/_skill_platforms.py +0 -0
  84. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/_util.py +0 -0
  85. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/activity.py +0 -0
  86. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/categories.py +0 -0
  87. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/config.py +0 -0
  88. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/contacts.py +0 -0
  89. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/events.py +0 -0
  90. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/households.py +0 -0
  91. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/main.py +0 -0
  92. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/me.py +0 -0
  93. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/notes.py +0 -0
  94. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/opportunities.py +0 -0
  95. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/projects.py +0 -0
  96. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/tasks.py +0 -0
  97. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/users.py +0 -0
  98. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/cli/workflows.py +0 -0
  99. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/__init__.py +0 -0
  100. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/activity.py +0 -0
  101. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/base.py +0 -0
  102. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/categories.py +0 -0
  103. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/comments.py +0 -0
  104. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/contacts.py +0 -0
  105. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/events.py +0 -0
  106. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/households.py +0 -0
  107. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/me.py +0 -0
  108. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/notes.py +0 -0
  109. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/opportunities.py +0 -0
  110. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/projects.py +0 -0
  111. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/tasks.py +0 -0
  112. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/users.py +0 -0
  113. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/client/workflows.py +0 -0
  114. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/__init__.py +0 -0
  115. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/activity.py +0 -0
  116. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/comments.py +0 -0
  117. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/common.py +0 -0
  118. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/contacts.py +0 -0
  119. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/custom_fields.py +0 -0
  120. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/enums.py +0 -0
  121. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/events.py +0 -0
  122. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/households.py +0 -0
  123. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/notes.py +0 -0
  124. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/opportunities.py +0 -0
  125. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/projects.py +0 -0
  126. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/tasks.py +0 -0
  127. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/models/workflows.py +0 -0
  128. {wealthbox_cli-1.1.6 → wealthbox_cli-1.2.0}/src/wealthbox_tools/py.typed +0 -0
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "https://code.claude.com/schemas/marketplace.json",
3
+ "name": "massive-value",
4
+ "description": "Marketplace for the Wealthbox CRM agent skill (and future Wealthbox-related plugins).",
5
+ "owner": {
6
+ "name": "Kadin Bullock"
7
+ },
8
+ "plugins": [
9
+ {
10
+ "name": "wealthbox-crm",
11
+ "source": "./plugins/wealthbox-crm",
12
+ "description": "Wealthbox CRM agent skill — natural-language CRM automation backed by the `wbox` CLI.",
13
+ "version": "1.2.0",
14
+ "category": "productivity",
15
+ "tags": [
16
+ "wealthbox",
17
+ "crm",
18
+ "financial-advisor"
19
+ ],
20
+ "homepage": "https://github.com/massive-value/wealthbox-cli",
21
+ "repository": "https://github.com/massive-value/wealthbox-cli",
22
+ "license": "Apache-2.0"
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "wealthbox-crm",
3
+ "description": "Wealthbox CRM agent skill — drive contacts, tasks, notes, events, and households via natural language. Bundles SKILL.md, references, and firm-bootstrap workflow. Requires the `wbox` CLI (auto-install instructions in SKILL.md).",
4
+ "version": "1.2.0",
5
+ "author": "Kadin Bullock",
6
+ "homepage": "https://github.com/massive-value/wealthbox-cli",
7
+ "repository": "https://github.com/massive-value/wealthbox-cli",
8
+ "license": "Apache-2.0",
9
+ "skills": "./codex-skill",
10
+ "keywords": [
11
+ "wealthbox",
12
+ "crm",
13
+ "financial-advisor",
14
+ "wealth-management"
15
+ ]
16
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wealthbox-cli
3
- Version: 1.1.6
3
+ Version: 1.2.0
4
4
  Summary: CLI and client library for the Wealthbox CRM API
5
5
  Project-URL: Homepage, https://github.com/massive-value/wealthbox-cli
6
6
  Project-URL: Documentation, https://massive-value.github.io/wealthbox-cli/
@@ -70,6 +70,17 @@ Description-Content-Type: text/markdown
70
70
 
71
71
  ## Quick Start
72
72
 
73
+ **No Python? No problem.** One-line installer (works on a fresh machine):
74
+
75
+ | Platform | Command |
76
+ |----------|---------|
77
+ | macOS / Linux | `curl -LsSf https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.sh \| bash` |
78
+ | Windows (PowerShell) | `irm https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.ps1 \| iex` |
79
+
80
+ The installer pulls in [uv](https://github.com/astral-sh/uv) (which provisions Python automatically), installs `wbox`, prompts for your Wealthbox API token, and offers to install the AI agent skill.
81
+
82
+ Already have Python? You can install directly:
83
+
73
84
  ```bash
74
85
  pip install wealthbox-cli
75
86
  wbox config set-token # paste your Wealthbox API token (masked)
@@ -136,21 +147,51 @@ The skill translates your intent into the correct `wbox` commands, handles flag
136
147
 
137
148
  ### Install
138
149
 
139
- One command, same on every OS:
150
+ Two ways depending on which agent you use:
151
+
152
+ #### Option A — Claude Code plugin marketplace (recommended for Claude Code users)
153
+
154
+ Inside Claude Code:
155
+
156
+ ```
157
+ /plugin marketplace add massive-value/wealthbox-cli
158
+ /plugin install wealthbox-crm@massive-value
159
+ ```
160
+
161
+ The plugin auto-updates daily. The skill is installed under `~/.claude/plugins/cache/`. Firm data is stored at the canonical machine-level path (`~/.config/wbox/firm/` or `%APPDATA%\wbox\firm\`) — see [Where firm data lives](#where-firm-data-lives) below — and survives plugin auto-updates.
162
+
163
+ The `wbox` CLI is still required as the execution engine. The bundled SKILL.md tells the agent to install it via the Phase 1 bootstrap if missing.
164
+
165
+ #### Option B — `wbox skills install` (Claude Code, Codex, or local project scope)
140
166
 
141
167
  ```bash
142
168
  pip install wealthbox-cli
143
169
  wbox config set-token # paste your Wealthbox API token
144
- wbox skills install # interactive: pick Claude Code, Codex, or both
170
+ wbox skills install # interactive: pick Claude Code (user/project), Codex, or all
145
171
  ```
146
172
 
147
173
  The installer asks which platforms to target, copies the skill into the right directory (`~/.claude/skills/` for Claude Code, `~/.codex/skills/` for Codex — both use `SKILL.md`), and offers to bootstrap your firm's customizations from the Wealthbox API.
148
174
 
175
+ #### Option C — Codex marketplace (when the openai/skills PR lands)
176
+
177
+ Pending submission to [openai/skills](https://github.com/openai/skills) (status tracked in CHANGELOG). Until then, use Option B for Codex.
178
+
149
179
  > **Upgrading from < 1.1.6?** Earlier versions installed the codex skill as `AGENTS.md`. That was wrong — codex uses `SKILL.md` for skills (and `AGENTS.md` only as the project-level instructions file, in place of `CLAUDE.md`). If your codex install still has `AGENTS.md`, reinstall with `wbox skills install --platform codex --force`.
150
180
 
151
181
  ### First agent run captures firm conventions
152
182
 
153
- `wbox skills bootstrap` populates the API-derived files (categories, custom fields, users) — that's the *quantitative* half. The *qualitative* half (firm defaults, naming conventions, named workflows, required fields) happens the first time an agent invokes the skill: it walks you through the questions in `bootstrap.md` and stamps `firm.onboarded_at` in `_meta.json` when done. On subsequent runs the bootstrap path is skipped automatically.
183
+ `wbox skills bootstrap` populates the API-derived files (categories, custom fields, users) — that's the *quantitative* half. The *qualitative* half (firm defaults, naming conventions, named workflows, required fields) happens the first time an agent invokes the skill: it walks you through the questions in `bootstrap.md` and stamps `onboarded_at` in the canonical firm `_meta.json` when done. On subsequent runs the bootstrap path is skipped automatically.
184
+
185
+ ### Where firm data lives
186
+
187
+ Firm data is stored at one canonical machine-level path — **not** inside each skill install. This way it survives plugin auto-updates, skill template upgrades, and works the same across Claude Code, Codex, or any other host:
188
+
189
+ | Platform | Firm data path |
190
+ |----------|----------------|
191
+ | macOS / Linux | `~/.config/wbox/firm/` |
192
+ | Windows | `%APPDATA%\wbox\firm\` |
193
+
194
+ Run `wbox skills firm-path` to print the resolved path. The bundled SKILL.md tells the agent to call this command and read firm files from that directory.
154
195
 
155
196
  ### Refresh after firm changes
156
197
 
@@ -160,22 +201,20 @@ If your firm adds or renames category values, custom fields, or users:
160
201
  wbox skills refresh
161
202
  ```
162
203
 
163
- This updates the generated half of the skill's firm files; hand-edited policy is preserved.
204
+ This updates the generated half (categories, custom-fields, users); hand-edited policy is preserved.
164
205
 
165
206
  ### Other commands
166
207
 
167
208
  ```bash
168
- wbox skills list # show where the skill is installed + last bootstrap time
169
- wbox skills doctor # diagnose install state + token
170
- wbox skills sync # copy firm/ from one install to others (Claude Code <-> Codex)
171
- wbox skills upgrade # refresh template files (SKILL.md, references/, ...) preserving firm/
172
- wbox skills mark-onboarded # stamp firm.onboarded_at after qualitative Q&A (the agent calls this for you)
173
- wbox skills uninstall # remove the skill
209
+ wbox skills list # show install state per platform + canonical firm path
210
+ wbox skills doctor # diagnose install state + token + firm state
211
+ wbox skills firm-path # print canonical firm directory (for the agent)
212
+ wbox skills upgrade # refresh template files in every install; firm data is unaffected
213
+ wbox skills mark-onboarded # stamp onboarded_at in firm meta (the agent calls this for you)
214
+ wbox skills uninstall # remove the skill template; firm data is preserved
174
215
  ```
175
216
 
176
- When the CLI ships a newer template (improved SKILL.md, new reference docs, etc.), `wbox skills upgrade` re-copies the bundled template into every installed platform without touching your firm-specific data in `firm/`. Each install records the template's CLI version in `_meta.json`, so the agent can detect drift and prompt you to upgrade when needed.
177
-
178
- `wbox skills sync` is useful if you maintain firm conventions in one platform's install (e.g., your Claude Code user scope) and want the same `firm/` files mirrored to Codex or to a project-scoped `.claude/skills/` folder. The command runs as a wizard by default; pass `--source`, `--target`, and `--yes` for non-interactive use.
217
+ When the CLI ships a newer template (improved SKILL.md, new reference docs, etc.), `wbox skills upgrade` re-copies the bundled template into every installed platform. Firm data lives outside the skill dir, so it's untouched. Each install records the template's CLI version in its own `_meta.json`, so the agent can detect drift and prompt you to upgrade when needed.
179
218
 
180
219
  ### Works with other agents too
181
220
 
@@ -29,6 +29,17 @@
29
29
 
30
30
  ## Quick Start
31
31
 
32
+ **No Python? No problem.** One-line installer (works on a fresh machine):
33
+
34
+ | Platform | Command |
35
+ |----------|---------|
36
+ | macOS / Linux | `curl -LsSf https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.sh \| bash` |
37
+ | Windows (PowerShell) | `irm https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.ps1 \| iex` |
38
+
39
+ The installer pulls in [uv](https://github.com/astral-sh/uv) (which provisions Python automatically), installs `wbox`, prompts for your Wealthbox API token, and offers to install the AI agent skill.
40
+
41
+ Already have Python? You can install directly:
42
+
32
43
  ```bash
33
44
  pip install wealthbox-cli
34
45
  wbox config set-token # paste your Wealthbox API token (masked)
@@ -95,21 +106,51 @@ The skill translates your intent into the correct `wbox` commands, handles flag
95
106
 
96
107
  ### Install
97
108
 
98
- One command, same on every OS:
109
+ Two ways depending on which agent you use:
110
+
111
+ #### Option A — Claude Code plugin marketplace (recommended for Claude Code users)
112
+
113
+ Inside Claude Code:
114
+
115
+ ```
116
+ /plugin marketplace add massive-value/wealthbox-cli
117
+ /plugin install wealthbox-crm@massive-value
118
+ ```
119
+
120
+ The plugin auto-updates daily. The skill is installed under `~/.claude/plugins/cache/`. Firm data is stored at the canonical machine-level path (`~/.config/wbox/firm/` or `%APPDATA%\wbox\firm\`) — see [Where firm data lives](#where-firm-data-lives) below — and survives plugin auto-updates.
121
+
122
+ The `wbox` CLI is still required as the execution engine. The bundled SKILL.md tells the agent to install it via the Phase 1 bootstrap if missing.
123
+
124
+ #### Option B — `wbox skills install` (Claude Code, Codex, or local project scope)
99
125
 
100
126
  ```bash
101
127
  pip install wealthbox-cli
102
128
  wbox config set-token # paste your Wealthbox API token
103
- wbox skills install # interactive: pick Claude Code, Codex, or both
129
+ wbox skills install # interactive: pick Claude Code (user/project), Codex, or all
104
130
  ```
105
131
 
106
132
  The installer asks which platforms to target, copies the skill into the right directory (`~/.claude/skills/` for Claude Code, `~/.codex/skills/` for Codex — both use `SKILL.md`), and offers to bootstrap your firm's customizations from the Wealthbox API.
107
133
 
134
+ #### Option C — Codex marketplace (when the openai/skills PR lands)
135
+
136
+ Pending submission to [openai/skills](https://github.com/openai/skills) (status tracked in CHANGELOG). Until then, use Option B for Codex.
137
+
108
138
  > **Upgrading from < 1.1.6?** Earlier versions installed the codex skill as `AGENTS.md`. That was wrong — codex uses `SKILL.md` for skills (and `AGENTS.md` only as the project-level instructions file, in place of `CLAUDE.md`). If your codex install still has `AGENTS.md`, reinstall with `wbox skills install --platform codex --force`.
109
139
 
110
140
  ### First agent run captures firm conventions
111
141
 
112
- `wbox skills bootstrap` populates the API-derived files (categories, custom fields, users) — that's the *quantitative* half. The *qualitative* half (firm defaults, naming conventions, named workflows, required fields) happens the first time an agent invokes the skill: it walks you through the questions in `bootstrap.md` and stamps `firm.onboarded_at` in `_meta.json` when done. On subsequent runs the bootstrap path is skipped automatically.
142
+ `wbox skills bootstrap` populates the API-derived files (categories, custom fields, users) — that's the *quantitative* half. The *qualitative* half (firm defaults, naming conventions, named workflows, required fields) happens the first time an agent invokes the skill: it walks you through the questions in `bootstrap.md` and stamps `onboarded_at` in the canonical firm `_meta.json` when done. On subsequent runs the bootstrap path is skipped automatically.
143
+
144
+ ### Where firm data lives
145
+
146
+ Firm data is stored at one canonical machine-level path — **not** inside each skill install. This way it survives plugin auto-updates, skill template upgrades, and works the same across Claude Code, Codex, or any other host:
147
+
148
+ | Platform | Firm data path |
149
+ |----------|----------------|
150
+ | macOS / Linux | `~/.config/wbox/firm/` |
151
+ | Windows | `%APPDATA%\wbox\firm\` |
152
+
153
+ Run `wbox skills firm-path` to print the resolved path. The bundled SKILL.md tells the agent to call this command and read firm files from that directory.
113
154
 
114
155
  ### Refresh after firm changes
115
156
 
@@ -119,22 +160,20 @@ If your firm adds or renames category values, custom fields, or users:
119
160
  wbox skills refresh
120
161
  ```
121
162
 
122
- This updates the generated half of the skill's firm files; hand-edited policy is preserved.
163
+ This updates the generated half (categories, custom-fields, users); hand-edited policy is preserved.
123
164
 
124
165
  ### Other commands
125
166
 
126
167
  ```bash
127
- wbox skills list # show where the skill is installed + last bootstrap time
128
- wbox skills doctor # diagnose install state + token
129
- wbox skills sync # copy firm/ from one install to others (Claude Code <-> Codex)
130
- wbox skills upgrade # refresh template files (SKILL.md, references/, ...) preserving firm/
131
- wbox skills mark-onboarded # stamp firm.onboarded_at after qualitative Q&A (the agent calls this for you)
132
- wbox skills uninstall # remove the skill
168
+ wbox skills list # show install state per platform + canonical firm path
169
+ wbox skills doctor # diagnose install state + token + firm state
170
+ wbox skills firm-path # print canonical firm directory (for the agent)
171
+ wbox skills upgrade # refresh template files in every install; firm data is unaffected
172
+ wbox skills mark-onboarded # stamp onboarded_at in firm meta (the agent calls this for you)
173
+ wbox skills uninstall # remove the skill template; firm data is preserved
133
174
  ```
134
175
 
135
- When the CLI ships a newer template (improved SKILL.md, new reference docs, etc.), `wbox skills upgrade` re-copies the bundled template into every installed platform without touching your firm-specific data in `firm/`. Each install records the template's CLI version in `_meta.json`, so the agent can detect drift and prompt you to upgrade when needed.
136
-
137
- `wbox skills sync` is useful if you maintain firm conventions in one platform's install (e.g., your Claude Code user scope) and want the same `firm/` files mirrored to Codex or to a project-scoped `.claude/skills/` folder. The command runs as a wizard by default; pass `--source`, `--target`, and `--yes` for non-interactive use.
176
+ When the CLI ships a newer template (improved SKILL.md, new reference docs, etc.), `wbox skills upgrade` re-copies the bundled template into every installed platform. Firm data lives outside the skill dir, so it's untouched. Each install records the template's CLI version in its own `_meta.json`, so the agent can detect drift and prompt you to upgrade when needed.
138
177
 
139
178
  ### Works with other agents too
140
179
 
@@ -8,22 +8,34 @@ description: Use when the user wants to interact with Wealthbox CRM — creating
8
8
  Execute Wealthbox CRM operations via the `wbox` CLI. Supports contacts, tasks, notes, events,
9
9
  opportunities, projects, workflows, households, and read-only lookups (categories, users, activity, me).
10
10
 
11
+ ## Firm Configuration Path
12
+
13
+ Firm-specific data (categories, custom-fields, users, hand-edited
14
+ policy, identity, onboarded marker) lives at one canonical path per
15
+ machine — **not** inside this skill's directory. Run:
16
+
17
+ ```bash
18
+ wbox skills firm-path
19
+ ```
20
+
21
+ to print the directory. Cache the result for the rest of the session.
22
+ All references to `<firm>/<file>` below mean files inside that directory.
23
+
11
24
  ## First Run
12
25
 
13
- If `_meta.json.firm.onboarded_at` is missing in this skill's directory,
14
- the firm has not been onboarded yet on this machine. Before handling the
15
- user's request:
26
+ If `<firm>/_meta.json` is missing, or it exists but has no
27
+ `onboarded_at` key, the firm has not been onboarded yet on this machine.
28
+ Before handling the user's request:
16
29
 
17
30
  1. Read `bootstrap.md` in this skill's directory.
18
31
  2. Follow it end-to-end.
19
- 3. The final step writes `_meta.json.firm.onboarded_at`, which makes
32
+ 3. The final step writes `<firm>/_meta.json.onboarded_at`, which makes
20
33
  this check pass on subsequent runs.
21
34
 
22
- `firm.onboarded_at` is the qualitative-onboarding marker. The CLI
23
- bootstrap (`wbox skills bootstrap`) only populates the API-derived
24
- parts of `firm` (identity, generated files); it intentionally does
25
- *not* set `onboarded_at`, because that requires the per-firm Q&A in
26
- `bootstrap.md`.
35
+ `onboarded_at` is the qualitative-onboarding marker. The CLI bootstrap
36
+ (`wbox skills bootstrap`) only populates the API-derived parts of firm
37
+ data (identity, generated files); it intentionally does *not* set
38
+ `onboarded_at`, because that requires the per-firm Q&A in `bootstrap.md`.
27
39
 
28
40
  ## Staleness Check
29
41
 
@@ -45,7 +57,13 @@ across every installed platform while preserving `firm/`.
45
57
 
46
58
  ## Prerequisites
47
59
 
48
- - `wbox` CLI installed (`pip install wealthbox-cli`)
60
+ - `wbox` CLI installed. If `wbox --version` fails, run the bootstrap installer:
61
+ ```bash
62
+ # macOS / Linux
63
+ curl -LsSf https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.sh | bash
64
+ # Windows (PowerShell)
65
+ irm https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.ps1 | iex
66
+ ```
49
67
  - Token configured via one of: `wbox config set-token`, `WEALTHBOX_TOKEN` env var, or `.env` file
50
68
 
51
69
  Verify with: `wbox me`
@@ -75,15 +93,15 @@ Verify with: `wbox me`
75
93
 
76
94
  1. **Parse intent** — identify which resource(s) and action(s) the user needs
77
95
  2. **Load reference** — read ONLY the relevant `references/<resource>.md` file(s) from this skill's directory
78
- 3. **Check firm config** — read `firm/<resource>.md` for the resource(s) you're touching. Also read `firm/categories.md` and `firm/custom-fields.md` when you need valid values for category-constrained flags (avoid repeat API probes).
96
+ 3. **Check firm config** — read `<firm>/<resource>.md` for the resource(s) you're touching (where `<firm>` is the path returned by `wbox skills firm-path`). Also read `<firm>/categories.md` and `<firm>/custom-fields.md` when you need valid values for category-constrained flags (avoid repeat API probes).
79
97
  4. **Fill gaps** — if required information is missing, ask the user. Prefer multiple-choice when options are known (e.g., contact type, priority level). If the user is unfamiliar with Wealthbox, explain what the field means.
80
98
  5. **Execute** — run the `wbox` command(s) via Bash
81
99
  6. **Report** — show the result. For create/update, confirm what was created with the record ID.
82
100
 
83
101
  ## Multi-Step Workflows
84
102
 
85
- When `firm/workflows.md` defines named workflows (e.g., "onboarding", "meeting followup"):
86
- 1. Read the workflow definition from `firm/workflows.md`
103
+ When `<firm>/workflows.md` defines named workflows (e.g., "onboarding", "meeting followup"):
104
+ 1. Read the workflow definition from `<firm>/workflows.md`
87
105
  2. Load all referenced resource reference files
88
106
  3. Walk through each step, gathering input as needed
89
107
  4. Execute commands in sequence, passing IDs forward (e.g., new contact ID → linked note/task)
@@ -0,0 +1,127 @@
1
+ # First-Run Bootstrap
2
+
3
+ You were told to read this because `<firm>/_meta.json.onboarded_at` is missing
4
+ on this machine — where `<firm>` is the canonical firm directory printed by
5
+ `wbox skills firm-path`. Follow every step below, then run the marker command
6
+ in Step 4 so this bootstrap path is skipped on future invocations.
7
+
8
+ ## Step 1 — Fetch API-derived firm data
9
+
10
+ First, find the firm directory:
11
+
12
+ ```bash
13
+ wbox skills firm-path
14
+ ```
15
+
16
+ Cache that path. If `<firm>/_meta.json` already exists with an `identity` and
17
+ `files` map, the CLI bootstrap has already run on this machine and you can
18
+ skip to Step 2. Otherwise, run:
19
+
20
+ ```bash
21
+ wbox skills bootstrap
22
+ ```
23
+
24
+ It populates these files at the canonical firm path (machine-level — survives
25
+ plugin auto-updates and skill template upgrades):
26
+
27
+ - `<firm>/categories.md` — every category type + valid values (paginated; complete)
28
+ - `<firm>/custom-fields.md` — custom fields per document type + valid values (paginated; complete)
29
+ - `<firm>/users.md` — user id -> name -> email (paginated; complete)
30
+ - `<firm>/_meta.json` — firm identity, refresh timestamps, and the CLI version
31
+ that ran the bootstrap. Does **not** set `onboarded_at` — that's Step 4.
32
+ - Stub files: `<firm>/contacts.md`, `<firm>/tasks.md`, `<firm>/notes.md`,
33
+ `<firm>/events.md`, `<firm>/opportunities.md`, `<firm>/projects.md`,
34
+ `<firm>/workflows.md` — one-line TODOs you will fill in next.
35
+
36
+ Verify `<firm>/_meta.json` now exists with an `identity` key before continuing.
37
+
38
+ ## Step 2 — Gather firm policy (per-resource)
39
+
40
+ For each hand-edited stub below, open `firm-examples/<resource>.md` (alongside
41
+ this `bootstrap.md` in the skill directory) to see a filled-in example, then
42
+ ask the advisor the listed questions. Record answers in
43
+ `<firm>/<resource>.md`, replacing the stub TODO.
44
+
45
+ Read `<firm>/categories.md` and `<firm>/custom-fields.md` first so every
46
+ multiple-choice prompt offers **real** values from the firm's workspace.
47
+ If the advisor mentions a tag, custom-field option, or user that you can't
48
+ find in those files, flag it — they're generated from a paginated fetch and
49
+ *should* be complete. A missing entry usually means the value doesn't exist
50
+ in the workspace yet (rather than a pagination gap).
51
+
52
+ ### `<firm>/contacts.md`
53
+
54
+ - Default contact type for new people? (pick from `<firm>/categories.md` ->
55
+ contact_types)
56
+ - Default contact source? (contact_sources)
57
+ - Default assigned-to user? (pick from `<firm>/users.md`)
58
+ - Preferred email type? (email_types)
59
+ - Preferred phone type? (phone_types)
60
+ - Household naming convention? (e.g. `"The {LastName} Family"`)
61
+ - When should a household be created automatically? (e.g. married couple)
62
+ - Required fields for person / household / org / trust?
63
+
64
+ ### `<firm>/tasks.md`
65
+
66
+ - Default priority when unspecified?
67
+ - Default assigned-to rule? (e.g. same as linked contact)
68
+ - Default due-date frame? (today / this-week / next-week / this-month)
69
+ - Named task templates the firm reuses? (e.g. "Welcome call", "Collect
70
+ documents") — include name, priority, frame, description for each.
71
+
72
+ ### `<firm>/notes.md`
73
+
74
+ - Prefix or format convention for meeting notes?
75
+ - Are notes always linked to a contact (never orphan)?
76
+
77
+ ### `<firm>/events.md`
78
+
79
+ - Default state? (confirmed, tentative)
80
+ - Default meeting duration?
81
+ - Event naming convention?
82
+
83
+ ### `<firm>/opportunities.md`
84
+
85
+ - Default pipeline? (from opportunity_pipelines)
86
+ - Default stage for new prospects? (from opportunity_stages)
87
+ - Default probability?
88
+ - Required fields on create?
89
+
90
+ ### `<firm>/projects.md`
91
+
92
+ - Any standard project templates?
93
+ - Conventions for linking projects to contacts?
94
+
95
+ ### `<firm>/workflows.md`
96
+
97
+ - Workflow templates the firm uses, with template IDs.
98
+ - Named multi-step workflows. Common ones:
99
+ - **Onboarding**: contact -> household -> intake note -> tasks -> opportunity -> workflow
100
+ - **Meeting followup**: note -> action-item tasks -> (optional) opportunity update
101
+ - **Annual review**: event -> workflow -> note
102
+
103
+ ## Step 3 — Catch-all
104
+
105
+ Ask the advisor: "Is there any firm convention, custom process, or preference
106
+ I haven't asked about that I should follow?" Append freeform answers to
107
+ `<firm>/workflows.md` under a `## Other Conventions` heading.
108
+
109
+ ## Step 4 — Mark the firm onboarded
110
+
111
+ Run:
112
+
113
+ ```bash
114
+ wbox skills mark-onboarded
115
+ ```
116
+
117
+ This stamps `onboarded_at` in `<firm>/_meta.json`. The First Run check in
118
+ `SKILL.md` keys off this field, so future invocations will skip the
119
+ bootstrap path automatically.
120
+
121
+ ## Step 5 — Confirm and continue
122
+
123
+ Tell the advisor: "First-run setup complete — firm data populated for <firm
124
+ name>." Then return to the user's original request.
125
+
126
+ You don't need to delete this file or trim `SKILL.md`. The first-run check
127
+ keys on `<firm>/_meta.json.onboarded_at`, which now exists.
@@ -6,6 +6,31 @@ This project uses [Semantic Versioning](https://semver.org/).
6
6
 
7
7
  ---
8
8
 
9
+ ## [1.2.0](https://github.com/massive-value/wealthbox-cli/releases/tag/v1.2.0) — 2026-05-02
10
+
11
+ ### Changed
12
+
13
+ - **Firm data hoisted to a canonical machine-level path.** `firm/` and the firm metadata (`identity`, `files` timestamps, `onboarded_at`) now live at `~/.config/wbox/firm/` (macOS/Linux) or `%APPDATA%\wbox\firm\` (Windows) — one source of truth per machine. Previously each skill install had its own `firm/` and embedded the firm section in `<skill_dir>/_meta.json`. The new layout survives plugin auto-updates, skill template upgrades, and reinstalls without risking the firm bootstrap state being wiped, and removes the duplication problem when the same skill is installed via multiple paths (Claude Code marketplace + manual install + Codex). Per-install `_meta.json` is retained for the per-install `template.cli_version` field.
14
+ - `SKILL.md` now instructs the agent to run `wbox skills firm-path` to find the firm directory, then read `<firm>/<resource>.md` files from there. `bootstrap.md` updated to match.
15
+
16
+ ### Added
17
+
18
+ - `wbox skills firm-path` — prints the canonical firm directory. Used by the agent to locate firm data, and useful for ad-hoc inspection.
19
+ - Automatic migration: any command that reads firm state (`bootstrap`, `refresh`, `doctor`, `list`, `mark-onboarded`, `firm-path`) detects legacy `<skill_dir>/firm/` and `<skill_dir>/_meta.json.firm` data on first run and moves it to the canonical path. If multiple installs have legacy data, the one with the most recent `onboarded_at` (or generated-files timestamp) wins.
20
+ - **Claude Code plugin marketplace.** `.claude-plugin/marketplace.json` at the repo root, plus a self-contained plugin at `plugins/wealthbox-crm/` with `.claude-plugin/plugin.json`. Users can now install with `/plugin marketplace add massive-value/wealthbox-cli` then `/plugin install wealthbox-crm@massive-value` directly inside Claude Code. The custom marketplace works immediately; an Anthropic official-marketplace submission is in flight.
21
+ - **Codex plugin manifest** at `.codex-plugin/plugin.json` plus a `codex-skill/` mirror of the skill template, ready for the openai/skills PR and a future Codex marketplace listing once self-serve publishing opens.
22
+ - `scripts/sync-plugin.py` — keeps the plugin and codex copies in sync with the canonical skill template at `src/wealthbox_tools/skills/wealthbox-crm/`. Run before committing skill template changes.
23
+
24
+ ### Removed
25
+
26
+ - `wbox skills sync` is gone. Firm data is now machine-level, so there's nothing to sync between platform installs.
27
+
28
+ ### Deprecated
29
+
30
+ - `--platform` flag on `bootstrap`, `refresh`, and `mark-onboarded` is accepted but ignored, with a warning. Firm operations are no longer scoped per platform.
31
+
32
+ ---
33
+
9
34
  ## [1.1.6](https://github.com/massive-value/wealthbox-cli/releases/tag/v1.1.6) — 2026-05-01
10
35
 
11
36
  ### Fixed
@@ -6,7 +6,23 @@ This guide walks you through installing **wealthbox-cli** and configuring it to
6
6
 
7
7
  ## Installation
8
8
 
9
- ### From PyPI (recommended)
9
+ ### One-line installer (no Python required)
10
+
11
+ If you don't have Python installed, the bootstrap script handles everything: it installs [uv](https://github.com/astral-sh/uv) (which provisions Python automatically), installs `wbox`, prompts for your API token, and offers to install the AI agent skill.
12
+
13
+ === "macOS / Linux"
14
+
15
+ ```bash
16
+ curl -LsSf https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.sh | bash
17
+ ```
18
+
19
+ === "Windows (PowerShell)"
20
+
21
+ ```powershell
22
+ irm https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.ps1 | iex
23
+ ```
24
+
25
+ ### From PyPI (recommended for Python users)
10
26
 
11
27
  ```bash
12
28
  pip install wealthbox-cli
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "wealthbox-crm",
3
+ "description": "Wealthbox CRM agent skill — drive contacts, tasks, notes, events, and households via natural language. Bundles SKILL.md, references, and firm-bootstrap workflow. Requires the `wbox` CLI (auto-install instructions in SKILL.md).",
4
+ "version": "1.2.0",
5
+ "author": {
6
+ "name": "Kadin Bullock"
7
+ },
8
+ "homepage": "https://github.com/massive-value/wealthbox-cli",
9
+ "repository": "https://github.com/massive-value/wealthbox-cli",
10
+ "license": "Apache-2.0",
11
+ "keywords": [
12
+ "wealthbox",
13
+ "crm",
14
+ "financial-advisor",
15
+ "wealth-management"
16
+ ]
17
+ }