wealthbox-cli 1.4.0__tar.gz → 1.5.1__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.
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/.codex-plugin/plugin.json +1 -1
- wealthbox_cli-1.5.1/PKG-INFO +209 -0
- wealthbox_cli-1.5.1/README.md +168 -0
- {wealthbox_cli-1.4.0/src/wealthbox_tools/skills → wealthbox_cli-1.5.1/codex-skill}/wealthbox-crm/SKILL.md +5 -1
- {wealthbox_cli-1.4.0/plugins/wealthbox-crm/skills → wealthbox_cli-1.5.1/codex-skill}/wealthbox-crm/references/contacts.md +4 -2
- {wealthbox_cli-1.4.0/src/wealthbox_tools/skills → wealthbox_cli-1.5.1/codex-skill}/wealthbox-crm/references/tasks.md +4 -2
- wealthbox_cli-1.5.1/codex-skill/wealthbox-crm/references/workflows.md +145 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/.claude-plugin/plugin.json +1 -1
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/SKILL.md +5 -1
- {wealthbox_cli-1.4.0/src/wealthbox_tools → wealthbox_cli-1.5.1/plugins/wealthbox-crm}/skills/wealthbox-crm/references/contacts.md +4 -2
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/references/tasks.md +8 -3
- wealthbox_cli-1.5.1/plugins/wealthbox-crm/skills/wealthbox-crm/references/workflows.md +145 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/pyproject.toml +1 -1
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/_skill_bootstrap.py +5 -2
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/_util.py +17 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/contacts.py +50 -3
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/main.py +9 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/tasks.py +38 -2
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/workflows.py +53 -3
- {wealthbox_cli-1.4.0/codex-skill → wealthbox_cli-1.5.1/src/wealthbox_tools/skills}/wealthbox-crm/SKILL.md +5 -1
- {wealthbox_cli-1.4.0/codex-skill → wealthbox_cli-1.5.1/src/wealthbox_tools/skills}/wealthbox-crm/references/contacts.md +4 -2
- {wealthbox_cli-1.4.0/codex-skill → wealthbox_cli-1.5.1/src/wealthbox_tools/skills}/wealthbox-crm/references/tasks.md +8 -3
- wealthbox_cli-1.5.1/src/wealthbox_tools/skills/wealthbox-crm/references/workflows.md +145 -0
- wealthbox_cli-1.4.0/PKG-INFO +0 -285
- wealthbox_cli-1.4.0/README.md +0 -244
- wealthbox_cli-1.4.0/codex-skill/wealthbox-crm/references/workflows.md +0 -90
- wealthbox_cli-1.4.0/plugins/wealthbox-crm/skills/wealthbox-crm/references/workflows.md +0 -90
- wealthbox_cli-1.4.0/src/wealthbox_tools/skills/wealthbox-crm/references/workflows.md +0 -90
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/.claude-plugin/marketplace.json +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/.env.example +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/.github/workflows/ci.yml +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/.github/workflows/docs.yml +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/.gitignore +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/CONTRIBUTING.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/LICENSE +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/SECURITY.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/bootstrap.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/firm-examples/contacts.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/firm-examples/events.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/firm-examples/notes.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/firm-examples/opportunities.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/firm-examples/projects.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/firm-examples/tasks.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/firm-examples/workflows.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/references/events.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/references/households.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/references/lookups.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/references/notes.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/references/opportunities.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/codex-skill/wealthbox-crm/references/projects.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/docs/changelog.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/docs/cli-reference.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/docs/getting-started.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/docs/index.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/docs/overrides/main.html +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/docs/promotion.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/mkdocs.yml +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/bootstrap.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/contacts.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/events.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/notes.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/opportunities.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/projects.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/tasks.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/firm-examples/workflows.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/references/events.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/references/households.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/references/lookups.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/references/notes.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/references/opportunities.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/references/projects.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/__init__.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/__init__.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/_config.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/_skill_paths.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/_skill_platforms.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/activity.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/categories.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/config.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/doctor.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/events.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/households.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/me.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/notes.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/opportunities.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/projects.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/skills.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/cli/users.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/__init__.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/activity.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/base.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/categories.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/comments.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/contacts.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/events.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/households.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/me.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/notes.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/opportunities.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/projects.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/tasks.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/users.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/client/workflows.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/__init__.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/activity.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/comments.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/common.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/contacts.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/custom_fields.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/enums.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/events.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/households.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/notes.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/opportunities.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/projects.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/tasks.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/models/workflows.py +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/py.typed +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/bootstrap.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/contacts.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/events.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/notes.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/opportunities.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/projects.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/tasks.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/workflows.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/references/events.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/references/households.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/references/lookups.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/references/notes.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/references/opportunities.md +0 -0
- {wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/src/wealthbox_tools/skills/wealthbox-crm/references/projects.md +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wealthbox-crm",
|
|
3
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.
|
|
4
|
+
"version": "1.5.0",
|
|
5
5
|
"author": "Kadin Bullock",
|
|
6
6
|
"homepage": "https://github.com/massive-value/wealthbox-cli",
|
|
7
7
|
"repository": "https://github.com/massive-value/wealthbox-cli",
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: wealthbox-cli
|
|
3
|
+
Version: 1.5.1
|
|
4
|
+
Summary: CLI and client library for the Wealthbox CRM API
|
|
5
|
+
Project-URL: Homepage, https://github.com/massive-value/wealthbox-cli
|
|
6
|
+
Project-URL: Documentation, https://massive-value.github.io/wealthbox-cli/
|
|
7
|
+
Project-URL: Repository, https://github.com/massive-value/wealthbox-cli
|
|
8
|
+
Project-URL: Issues, https://github.com/massive-value/wealthbox-cli/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/massive-value/wealthbox-cli/blob/main/CHANGELOG.md
|
|
10
|
+
Author: Kadin Bullock
|
|
11
|
+
License: Apache-2.0
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: api,cli,client-management,command-line,contacts,crm,financial-advisor,fintech,wealth-management,wealthbox
|
|
14
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
15
|
+
Classifier: Environment :: Console
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Intended Audience :: Financial and Insurance Industry
|
|
18
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
19
|
+
Classifier: Natural Language :: English
|
|
20
|
+
Classifier: Operating System :: OS Independent
|
|
21
|
+
Classifier: Programming Language :: Python :: 3
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
25
|
+
Classifier: Topic :: Office/Business
|
|
26
|
+
Classifier: Topic :: Office/Business :: Financial
|
|
27
|
+
Classifier: Typing :: Typed
|
|
28
|
+
Requires-Python: >=3.11
|
|
29
|
+
Requires-Dist: httpx<1.0,>=0.27
|
|
30
|
+
Requires-Dist: pydantic<3.0,>=2.0
|
|
31
|
+
Requires-Dist: python-dotenv<2.0,>=1.0
|
|
32
|
+
Requires-Dist: tabulate<1.0,>=0.9
|
|
33
|
+
Requires-Dist: typer<1.0,>=0.12
|
|
34
|
+
Provides-Extra: dev
|
|
35
|
+
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
36
|
+
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
|
|
37
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
38
|
+
Requires-Dist: respx>=0.21; extra == 'dev'
|
|
39
|
+
Requires-Dist: ruff>=0.4; extra == 'dev'
|
|
40
|
+
Description-Content-Type: text/markdown
|
|
41
|
+
|
|
42
|
+
# Wealthbox CLI
|
|
43
|
+
|
|
44
|
+
**Run your Wealthbox CRM through Claude or ChatGPT.** Tell your AI agent *"add a contact for Jane Doe, send her our welcome packet, and put a follow-up on my calendar for next Tuesday"* — and it just happens. No coding, no Python, no terminal commands to memorize.
|
|
45
|
+
|
|
46
|
+
[](https://pypi.org/project/wealthbox-cli/) [](https://pypi.org/project/wealthbox-cli/) [](https://github.com/massive-value/wealthbox-cli/actions/workflows/ci.yml) [](LICENSE)
|
|
47
|
+
|
|
48
|
+
> Unofficial, community-built. Not affiliated with or endorsed by Wealthbox.
|
|
49
|
+
|
|
50
|
+
------------------------------------------------------------------------
|
|
51
|
+
|
|
52
|
+
## Install (60 seconds, no Python required)
|
|
53
|
+
|
|
54
|
+
| Platform | Paste this into your terminal |
|
|
55
|
+
|---|---|
|
|
56
|
+
| **Mac / Linux** | `curl -LsSf https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.sh \| bash` |
|
|
57
|
+
| **Windows** (PowerShell) | `irm https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.ps1 \| iex` |
|
|
58
|
+
|
|
59
|
+
The installer:
|
|
60
|
+
1. Sets up the tools it needs (Python, etc. — handled automatically).
|
|
61
|
+
2. Asks for your **Wealthbox API token**. *Where to find it:* in Wealthbox, click your initials in the top right → **Settings** → **API Access** → **Create Access Token**. Paste the token when prompted.
|
|
62
|
+
3. Installs the AI agent skill into [Claude Code](https://claude.ai/download) (and Codex, if you have it).
|
|
63
|
+
|
|
64
|
+
That's it. Open Claude Code and try one of the prompts below.
|
|
65
|
+
|
|
66
|
+
------------------------------------------------------------------------
|
|
67
|
+
|
|
68
|
+
## Try this in Claude Code
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
"Show me my contacts created this week."
|
|
72
|
+
|
|
73
|
+
"Add Jane Doe as a new prospect — she came in as a referral from Bob Smith."
|
|
74
|
+
|
|
75
|
+
"Pull up the Smith household, add a task for me to call them on Monday."
|
|
76
|
+
|
|
77
|
+
"Find notes from my meeting with the Joneses last month and summarize the action items."
|
|
78
|
+
|
|
79
|
+
"Schedule an annual review with Mary Chen for the second Tuesday of next month."
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The first time you ask the agent to do something, it'll walk you through a short Q&A about your firm's conventions (default contact types, naming patterns, common workflows). After that, it just works.
|
|
83
|
+
|
|
84
|
+
If you're new to Claude Code itself, [download it here](https://claude.ai/download) — it's free for personal use.
|
|
85
|
+
|
|
86
|
+
------------------------------------------------------------------------
|
|
87
|
+
|
|
88
|
+
## What it covers
|
|
89
|
+
|
|
90
|
+
Full read/write access for **contacts** (people, households, organizations, trusts), **tasks**, **events**, **notes**, **opportunities**, **projects**, and **workflows**. Read access for users, activity, and your firm's category lookups.
|
|
91
|
+
|
|
92
|
+
Anything you can do in Wealthbox manually, the agent can do for you — usually in one sentence.
|
|
93
|
+
|
|
94
|
+
------------------------------------------------------------------------
|
|
95
|
+
|
|
96
|
+
## How it works
|
|
97
|
+
|
|
98
|
+
Your AI agent uses a small command-line tool called `wbox` to talk to the [Wealthbox CRM API](https://dev.wealthbox.com). The skill that ships with this repo teaches the agent two things:
|
|
99
|
+
|
|
100
|
+
1. **Your firm's conventions** — the agent walks you through a one-time Q&A on first use ("what's your default contact type for new prospects? what's your household naming convention?"), then remembers your answers. Stored locally on your machine, never sent to a server.
|
|
101
|
+
2. **The right command for each request** — translating "add Jane as a prospect" into the correct API call, handling required fields, validating dropdowns against your firm's actual categories.
|
|
102
|
+
|
|
103
|
+
You stay in control: the agent shows you what it's about to do before it does it.
|
|
104
|
+
|
|
105
|
+
------------------------------------------------------------------------
|
|
106
|
+
|
|
107
|
+
## Already a Claude Code user?
|
|
108
|
+
|
|
109
|
+
You can install the skill directly from the plugin marketplace inside Claude Code:
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
/plugin marketplace add massive-value/wealthbox-cli
|
|
113
|
+
/plugin install wealthbox-crm@massive-value
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The plugin auto-updates daily. Firm data lives at `~/.config/wbox/firm/` (Mac/Linux) or `%APPDATA%\wbox\firm\` (Windows) and survives plugin updates. Run `wbox doctor` to see your install status anytime.
|
|
117
|
+
|
|
118
|
+
------------------------------------------------------------------------
|
|
119
|
+
|
|
120
|
+
## For developers and power users
|
|
121
|
+
|
|
122
|
+
<details>
|
|
123
|
+
<summary><b>Direct CLI use, scripting, automation</b></summary>
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
pip install wealthbox-cli
|
|
127
|
+
wbox config set-token
|
|
128
|
+
|
|
129
|
+
# List contacts as a table
|
|
130
|
+
wbox contacts list --format table
|
|
131
|
+
|
|
132
|
+
# Create a contact
|
|
133
|
+
wbox contacts add person --first-name Jane --last-name Doe --contact-type Client
|
|
134
|
+
|
|
135
|
+
# Export tasks to CSV
|
|
136
|
+
wbox tasks list --format csv > tasks.csv
|
|
137
|
+
|
|
138
|
+
# Add a meeting note linked to a contact
|
|
139
|
+
wbox notes add "Discussed retirement plan" --contact 12345
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Full command reference: [CLI Reference](https://massive-value.github.io/wealthbox-cli/cli-reference/). Output formats: `json` (default), `table`, `csv`, `tsv`. Date format: ISO 8601 (`2026-05-01T10:00:00-07:00`). See [Getting Started](https://massive-value.github.io/wealthbox-cli/getting-started/) for pipx, env-var auth, and project-scoped installs.
|
|
143
|
+
</details>
|
|
144
|
+
|
|
145
|
+
<details>
|
|
146
|
+
<summary><b>Manage skill installs (legacy / Codex / project scope)</b></summary>
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
wbox skills install # interactive picker — Claude Code, Codex, project scope
|
|
150
|
+
wbox skills bootstrap # populate firm data from your Wealthbox account
|
|
151
|
+
wbox skills refresh # re-fetch generated firm data (categories, users, custom fields)
|
|
152
|
+
wbox skills upgrade # update the bundled SKILL.md / references in every install
|
|
153
|
+
wbox skills firm-path # print the canonical firm data directory
|
|
154
|
+
wbox skills uninstall # remove the skill template (firm data is preserved)
|
|
155
|
+
wbox doctor # comprehensive health check
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
The marketplace plugin path (above) is recommended for Claude Code. The legacy `wbox skills install` path remains for Codex users (until OpenAI's marketplace lands), project-scoped installs, or air-gapped setups without the `claude` CLI.
|
|
159
|
+
</details>
|
|
160
|
+
|
|
161
|
+
<details>
|
|
162
|
+
<summary><b>Architecture and contributing</b></summary>
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
src/wealthbox_tools/
|
|
166
|
+
cli/ # Typer commands
|
|
167
|
+
client/ # Async HTTP client built from mixins
|
|
168
|
+
models/ # Pydantic v2 input validation
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Built with [Typer](https://typer.tiangolo.com/), [httpx](https://www.python-httpx.org/), and [Pydantic v2](https://docs.pydantic.dev/).
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
git clone https://github.com/massive-value/wealthbox-cli
|
|
175
|
+
cd wealthbox-cli
|
|
176
|
+
python -m venv .venv
|
|
177
|
+
# Activate: source .venv/bin/activate (Mac/Linux) | .venv\Scripts\Activate.ps1 (Windows)
|
|
178
|
+
pip install -e ".[dev]"
|
|
179
|
+
pytest
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) and [CLAUDE.md](CLAUDE.md) for the architecture guide and conventions.
|
|
183
|
+
</details>
|
|
184
|
+
|
|
185
|
+
<details>
|
|
186
|
+
<summary><b>Troubleshooting</b></summary>
|
|
187
|
+
|
|
188
|
+
- **401 Unauthorized** — token expired or wrong. Run `wbox config show` to see the masked token, `wbox config set-token` to update.
|
|
189
|
+
- **Windows: "execution policy" error during install** — the installer offers to fix this for you. If you skipped it, run `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser` and re-run the installer.
|
|
190
|
+
- **Linux: command not found after install** — open a new terminal, or run `source ~/.local/bin/env` in your current shell.
|
|
191
|
+
- **Date format errors** — Wealthbox needs ISO 8601: `"2026-05-01T10:00:00-07:00"` for datetimes, `"YYYY-MM-DD"` for date-only fields.
|
|
192
|
+
- **Writes succeed but nothing changes** — some category-constrained fields silently no-op on bad values. Check valid values with `wbox categories <type>`.
|
|
193
|
+
|
|
194
|
+
For anything else, open an issue at [github.com/massive-value/wealthbox-cli/issues](https://github.com/massive-value/wealthbox-cli/issues).
|
|
195
|
+
</details>
|
|
196
|
+
|
|
197
|
+
------------------------------------------------------------------------
|
|
198
|
+
|
|
199
|
+
## Links
|
|
200
|
+
|
|
201
|
+
[Documentation](https://massive-value.github.io/wealthbox-cli/) · [Changelog](https://massive-value.github.io/wealthbox-cli/changelog/) · [PyPI](https://pypi.org/project/wealthbox-cli/) · [Wealthbox CRM](https://www.wealthbox.com/) · [Wealthbox API](https://dev.wealthbox.com)
|
|
202
|
+
|
|
203
|
+
## Disclaimer
|
|
204
|
+
|
|
205
|
+
This is an **unofficial, community-built** tool. It is not affiliated with, endorsed by, or supported by Wealthbox or its parent company. "Wealthbox" is a trademark of its respective owner. Use of this tool is subject to the [Wealthbox API Terms of Service](https://dev.wealthbox.com).
|
|
206
|
+
|
|
207
|
+
## License
|
|
208
|
+
|
|
209
|
+
Apache 2.0 — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Wealthbox CLI
|
|
2
|
+
|
|
3
|
+
**Run your Wealthbox CRM through Claude or ChatGPT.** Tell your AI agent *"add a contact for Jane Doe, send her our welcome packet, and put a follow-up on my calendar for next Tuesday"* — and it just happens. No coding, no Python, no terminal commands to memorize.
|
|
4
|
+
|
|
5
|
+
[](https://pypi.org/project/wealthbox-cli/) [](https://pypi.org/project/wealthbox-cli/) [](https://github.com/massive-value/wealthbox-cli/actions/workflows/ci.yml) [](LICENSE)
|
|
6
|
+
|
|
7
|
+
> Unofficial, community-built. Not affiliated with or endorsed by Wealthbox.
|
|
8
|
+
|
|
9
|
+
------------------------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
## Install (60 seconds, no Python required)
|
|
12
|
+
|
|
13
|
+
| Platform | Paste this into your terminal |
|
|
14
|
+
|---|---|
|
|
15
|
+
| **Mac / Linux** | `curl -LsSf https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.sh \| bash` |
|
|
16
|
+
| **Windows** (PowerShell) | `irm https://raw.githubusercontent.com/massive-value/wealthbox-cli/main/scripts/install.ps1 \| iex` |
|
|
17
|
+
|
|
18
|
+
The installer:
|
|
19
|
+
1. Sets up the tools it needs (Python, etc. — handled automatically).
|
|
20
|
+
2. Asks for your **Wealthbox API token**. *Where to find it:* in Wealthbox, click your initials in the top right → **Settings** → **API Access** → **Create Access Token**. Paste the token when prompted.
|
|
21
|
+
3. Installs the AI agent skill into [Claude Code](https://claude.ai/download) (and Codex, if you have it).
|
|
22
|
+
|
|
23
|
+
That's it. Open Claude Code and try one of the prompts below.
|
|
24
|
+
|
|
25
|
+
------------------------------------------------------------------------
|
|
26
|
+
|
|
27
|
+
## Try this in Claude Code
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
"Show me my contacts created this week."
|
|
31
|
+
|
|
32
|
+
"Add Jane Doe as a new prospect — she came in as a referral from Bob Smith."
|
|
33
|
+
|
|
34
|
+
"Pull up the Smith household, add a task for me to call them on Monday."
|
|
35
|
+
|
|
36
|
+
"Find notes from my meeting with the Joneses last month and summarize the action items."
|
|
37
|
+
|
|
38
|
+
"Schedule an annual review with Mary Chen for the second Tuesday of next month."
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The first time you ask the agent to do something, it'll walk you through a short Q&A about your firm's conventions (default contact types, naming patterns, common workflows). After that, it just works.
|
|
42
|
+
|
|
43
|
+
If you're new to Claude Code itself, [download it here](https://claude.ai/download) — it's free for personal use.
|
|
44
|
+
|
|
45
|
+
------------------------------------------------------------------------
|
|
46
|
+
|
|
47
|
+
## What it covers
|
|
48
|
+
|
|
49
|
+
Full read/write access for **contacts** (people, households, organizations, trusts), **tasks**, **events**, **notes**, **opportunities**, **projects**, and **workflows**. Read access for users, activity, and your firm's category lookups.
|
|
50
|
+
|
|
51
|
+
Anything you can do in Wealthbox manually, the agent can do for you — usually in one sentence.
|
|
52
|
+
|
|
53
|
+
------------------------------------------------------------------------
|
|
54
|
+
|
|
55
|
+
## How it works
|
|
56
|
+
|
|
57
|
+
Your AI agent uses a small command-line tool called `wbox` to talk to the [Wealthbox CRM API](https://dev.wealthbox.com). The skill that ships with this repo teaches the agent two things:
|
|
58
|
+
|
|
59
|
+
1. **Your firm's conventions** — the agent walks you through a one-time Q&A on first use ("what's your default contact type for new prospects? what's your household naming convention?"), then remembers your answers. Stored locally on your machine, never sent to a server.
|
|
60
|
+
2. **The right command for each request** — translating "add Jane as a prospect" into the correct API call, handling required fields, validating dropdowns against your firm's actual categories.
|
|
61
|
+
|
|
62
|
+
You stay in control: the agent shows you what it's about to do before it does it.
|
|
63
|
+
|
|
64
|
+
------------------------------------------------------------------------
|
|
65
|
+
|
|
66
|
+
## Already a Claude Code user?
|
|
67
|
+
|
|
68
|
+
You can install the skill directly from the plugin marketplace inside Claude Code:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
/plugin marketplace add massive-value/wealthbox-cli
|
|
72
|
+
/plugin install wealthbox-crm@massive-value
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The plugin auto-updates daily. Firm data lives at `~/.config/wbox/firm/` (Mac/Linux) or `%APPDATA%\wbox\firm\` (Windows) and survives plugin updates. Run `wbox doctor` to see your install status anytime.
|
|
76
|
+
|
|
77
|
+
------------------------------------------------------------------------
|
|
78
|
+
|
|
79
|
+
## For developers and power users
|
|
80
|
+
|
|
81
|
+
<details>
|
|
82
|
+
<summary><b>Direct CLI use, scripting, automation</b></summary>
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
pip install wealthbox-cli
|
|
86
|
+
wbox config set-token
|
|
87
|
+
|
|
88
|
+
# List contacts as a table
|
|
89
|
+
wbox contacts list --format table
|
|
90
|
+
|
|
91
|
+
# Create a contact
|
|
92
|
+
wbox contacts add person --first-name Jane --last-name Doe --contact-type Client
|
|
93
|
+
|
|
94
|
+
# Export tasks to CSV
|
|
95
|
+
wbox tasks list --format csv > tasks.csv
|
|
96
|
+
|
|
97
|
+
# Add a meeting note linked to a contact
|
|
98
|
+
wbox notes add "Discussed retirement plan" --contact 12345
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Full command reference: [CLI Reference](https://massive-value.github.io/wealthbox-cli/cli-reference/). Output formats: `json` (default), `table`, `csv`, `tsv`. Date format: ISO 8601 (`2026-05-01T10:00:00-07:00`). See [Getting Started](https://massive-value.github.io/wealthbox-cli/getting-started/) for pipx, env-var auth, and project-scoped installs.
|
|
102
|
+
</details>
|
|
103
|
+
|
|
104
|
+
<details>
|
|
105
|
+
<summary><b>Manage skill installs (legacy / Codex / project scope)</b></summary>
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
wbox skills install # interactive picker — Claude Code, Codex, project scope
|
|
109
|
+
wbox skills bootstrap # populate firm data from your Wealthbox account
|
|
110
|
+
wbox skills refresh # re-fetch generated firm data (categories, users, custom fields)
|
|
111
|
+
wbox skills upgrade # update the bundled SKILL.md / references in every install
|
|
112
|
+
wbox skills firm-path # print the canonical firm data directory
|
|
113
|
+
wbox skills uninstall # remove the skill template (firm data is preserved)
|
|
114
|
+
wbox doctor # comprehensive health check
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
The marketplace plugin path (above) is recommended for Claude Code. The legacy `wbox skills install` path remains for Codex users (until OpenAI's marketplace lands), project-scoped installs, or air-gapped setups without the `claude` CLI.
|
|
118
|
+
</details>
|
|
119
|
+
|
|
120
|
+
<details>
|
|
121
|
+
<summary><b>Architecture and contributing</b></summary>
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
src/wealthbox_tools/
|
|
125
|
+
cli/ # Typer commands
|
|
126
|
+
client/ # Async HTTP client built from mixins
|
|
127
|
+
models/ # Pydantic v2 input validation
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Built with [Typer](https://typer.tiangolo.com/), [httpx](https://www.python-httpx.org/), and [Pydantic v2](https://docs.pydantic.dev/).
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
git clone https://github.com/massive-value/wealthbox-cli
|
|
134
|
+
cd wealthbox-cli
|
|
135
|
+
python -m venv .venv
|
|
136
|
+
# Activate: source .venv/bin/activate (Mac/Linux) | .venv\Scripts\Activate.ps1 (Windows)
|
|
137
|
+
pip install -e ".[dev]"
|
|
138
|
+
pytest
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) and [CLAUDE.md](CLAUDE.md) for the architecture guide and conventions.
|
|
142
|
+
</details>
|
|
143
|
+
|
|
144
|
+
<details>
|
|
145
|
+
<summary><b>Troubleshooting</b></summary>
|
|
146
|
+
|
|
147
|
+
- **401 Unauthorized** — token expired or wrong. Run `wbox config show` to see the masked token, `wbox config set-token` to update.
|
|
148
|
+
- **Windows: "execution policy" error during install** — the installer offers to fix this for you. If you skipped it, run `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser` and re-run the installer.
|
|
149
|
+
- **Linux: command not found after install** — open a new terminal, or run `source ~/.local/bin/env` in your current shell.
|
|
150
|
+
- **Date format errors** — Wealthbox needs ISO 8601: `"2026-05-01T10:00:00-07:00"` for datetimes, `"YYYY-MM-DD"` for date-only fields.
|
|
151
|
+
- **Writes succeed but nothing changes** — some category-constrained fields silently no-op on bad values. Check valid values with `wbox categories <type>`.
|
|
152
|
+
|
|
153
|
+
For anything else, open an issue at [github.com/massive-value/wealthbox-cli/issues](https://github.com/massive-value/wealthbox-cli/issues).
|
|
154
|
+
</details>
|
|
155
|
+
|
|
156
|
+
------------------------------------------------------------------------
|
|
157
|
+
|
|
158
|
+
## Links
|
|
159
|
+
|
|
160
|
+
[Documentation](https://massive-value.github.io/wealthbox-cli/) · [Changelog](https://massive-value.github.io/wealthbox-cli/changelog/) · [PyPI](https://pypi.org/project/wealthbox-cli/) · [Wealthbox CRM](https://www.wealthbox.com/) · [Wealthbox API](https://dev.wealthbox.com)
|
|
161
|
+
|
|
162
|
+
## Disclaimer
|
|
163
|
+
|
|
164
|
+
This is an **unofficial, community-built** tool. It is not affiliated with, endorsed by, or supported by Wealthbox or its parent company. "Wealthbox" is a trademark of its respective owner. Use of this tool is subject to the [Wealthbox API Terms of Service](https://dev.wealthbox.com).
|
|
165
|
+
|
|
166
|
+
## License
|
|
167
|
+
|
|
168
|
+
Apache 2.0 — see [LICENSE](LICENSE).
|
|
@@ -82,7 +82,7 @@ Verify with: `wbox me`
|
|
|
82
82
|
| List/get/add/update events | events | `wbox events {list\|get\|add\|update\|delete} ...` |
|
|
83
83
|
| Opportunities | opportunities | `wbox opportunities {list\|get\|add\|update\|delete} ...` |
|
|
84
84
|
| Projects | projects | `wbox projects {list\|get\|add\|update} ...` |
|
|
85
|
-
| Workflows | workflows | `wbox workflows {list\|get\|add\|complete-step\|revert-step} ...` |
|
|
85
|
+
| Workflows | workflows | `wbox workflows {list\|get\|next\|add\|complete-step\|revert-step} ...` |
|
|
86
86
|
| Household members | households | `wbox households {add-member\|remove-member} ...` |
|
|
87
87
|
| Categories/tags | lookups | `wbox categories ...` or `wbox <resource> categories` |
|
|
88
88
|
| Users | lookups | `wbox users list` |
|
|
@@ -111,6 +111,10 @@ When `<firm>/workflows.md` defines named workflows (e.g., "onboarding", "meeting
|
|
|
111
111
|
- Default to `--format json` for single records, `--format table` for lists
|
|
112
112
|
- If the user asks to "show" or "display", use `--format table`
|
|
113
113
|
- If the user is piping or scripting, use `--format json`
|
|
114
|
+
- **Token efficiency:** for any read where the html duplicates aren't needed
|
|
115
|
+
(almost always), pass `--brief` (or set `WBOX_BRIEF=1`). It strips every
|
|
116
|
+
`*_html` field recursively from the JSON output. Wealthbox returns html
|
|
117
|
+
3-5x larger than the plain text counterpart.
|
|
114
118
|
|
|
115
119
|
## Common Recipes
|
|
116
120
|
|
|
@@ -36,7 +36,7 @@ wbox contacts <ID>
|
|
|
36
36
|
wbox contacts get <ID>
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
Returns full contact record
|
|
39
|
+
Returns the full contact record. Contacts do not carry comments in Wealthbox — to read comments, fetch the related task, note, event, opportunity, project, or workflow with its `get` command (those default to including comments and accept `--no-comments` to suppress).
|
|
40
40
|
|
|
41
41
|
## Create Contact
|
|
42
42
|
|
|
@@ -69,6 +69,7 @@ wbox contacts add person [OPTIONS]
|
|
|
69
69
|
| `--email-type` | STR | Work, Personal, etc. |
|
|
70
70
|
| `--phone` | STR | Phone number |
|
|
71
71
|
| `--phone-type` | STR | Work, Mobile, etc. |
|
|
72
|
+
| `--tags` | STR | Comma-separated tag names (e.g. "VIP,Q1-Outreach"). New tags are auto-created. |
|
|
72
73
|
| `--more-fields` | JSON | Additional fields as JSON object |
|
|
73
74
|
| `--format` | json\|table\|csv\|tsv | Output format |
|
|
74
75
|
|
|
@@ -76,7 +77,7 @@ wbox contacts add person [OPTIONS]
|
|
|
76
77
|
```bash
|
|
77
78
|
wbox contacts add household --name <NAME> [OPTIONS]
|
|
78
79
|
```
|
|
79
|
-
`--name` is required. Supports: `--contact-type`, `--contact-source`, `--active/--inactive`, `--assigned-to`, `--email`, `--email-type`, `--more-fields`, `--format`.
|
|
80
|
+
`--name` is required. Supports: `--contact-type`, `--contact-source`, `--active/--inactive`, `--assigned-to`, `--email`, `--email-type`, `--tags`, `--more-fields`, `--format`.
|
|
80
81
|
|
|
81
82
|
### Organization
|
|
82
83
|
```bash
|
|
@@ -110,6 +111,7 @@ Only pass the fields you want to change:
|
|
|
110
111
|
| `--contact-source` | STR | Source |
|
|
111
112
|
| `--active` / `--inactive` | flag | Active status |
|
|
112
113
|
| `--assigned-to` | INT | Reassign to user ID |
|
|
114
|
+
| `--tags` | STR | Comma-separated tag names. Replaces all tags — include existing ones to keep. |
|
|
113
115
|
| `--json` | STR | Full JSON for nested/complex fields |
|
|
114
116
|
| `--format` | json\|table\|csv\|tsv | Output format |
|
|
115
117
|
|
|
@@ -44,7 +44,7 @@ wbox tasks add <NAME> [OPTIONS]
|
|
|
44
44
|
|------|------|-------------|
|
|
45
45
|
| `<NAME>` | positional | Task name (required) |
|
|
46
46
|
| `--due-date` | STR | Due date (XOR with --frame) |
|
|
47
|
-
| `--frame` | today\|tomorrow\|this-week\|next-week\|
|
|
47
|
+
| `--frame` | today\|tomorrow\|this-week\|next-week\|future\|specific | Relative due date (XOR with --due-date). Both kebab-case (`next-week`) and snake_case (`next_week`) are accepted. |
|
|
48
48
|
| `--priority` | Low\|Medium\|High | Priority level |
|
|
49
49
|
| `--category` | STR | Task category by name or ID (e.g. "Follow-up"). See `wbox categories task-categories`. |
|
|
50
50
|
| `--description` | STR | Task description |
|
|
@@ -57,6 +57,8 @@ wbox tasks add <NAME> [OPTIONS]
|
|
|
57
57
|
|
|
58
58
|
**Note:** `--due-date` and `--frame` are mutually exclusive. Use `--frame` for relative dates.
|
|
59
59
|
|
|
60
|
+
**Note (Wealthbox quirk):** `--frame next_week` resolves on the API side to the Monday of the calendar week *after* today. **If today is Sunday, `next_week` is tomorrow** (Monday) — only one day away, not seven. Wealthbox treats Sunday as the last day of the current week. If precise control matters (e.g. an advisor said "next week" expecting 7+ days out), use `--due-date YYYY-MM-DDTHH:MM:SS-07:00` with an explicit date instead of `--frame`.
|
|
61
|
+
|
|
60
62
|
## Update Task
|
|
61
63
|
|
|
62
64
|
```bash
|
|
@@ -67,7 +69,7 @@ wbox tasks update <ID> [OPTIONS]
|
|
|
67
69
|
|------|------|-------------|
|
|
68
70
|
| `--name` | STR | Rename |
|
|
69
71
|
| `--due-date` | STR | Change due date |
|
|
70
|
-
| `--frame` | STR | Change relative due date |
|
|
72
|
+
| `--frame` | STR | Change relative due date. Accepts kebab-case (`next-week`) or snake_case (`next_week`); see Note above re: Sunday boundary. |
|
|
71
73
|
| `--priority` | Low\|Medium\|High | Change priority |
|
|
72
74
|
| `--category` | STR | Task category by name or ID. See `wbox categories task-categories`. |
|
|
73
75
|
| `--assigned-to` | INT | Reassign |
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Workflows
|
|
2
|
+
|
|
3
|
+
Template-based process tracking. Created from templates, progressed by completing/reverting steps.
|
|
4
|
+
|
|
5
|
+
## List Workflows
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
wbox workflows list [OPTIONS]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
| Flag | Type | Description |
|
|
12
|
+
|------|------|-------------|
|
|
13
|
+
| `--resource-id` | INT | Filter by linked resource ID |
|
|
14
|
+
| `--resource-type` | Contact\|Project | Type of linked resource |
|
|
15
|
+
| `--status` | active\|completed\|scheduled | Filter by status |
|
|
16
|
+
| `--updated-since` | ISO datetime | Modified after |
|
|
17
|
+
| `--updated-before` | ISO datetime | Modified before |
|
|
18
|
+
| `--page` | INT | Page number |
|
|
19
|
+
| `--per-page` | INT | Results per page |
|
|
20
|
+
| `--verbose`, `-v` | flag | Show all fields |
|
|
21
|
+
| `--format` | json\|table\|csv\|tsv | Output format |
|
|
22
|
+
|
|
23
|
+
## Get Workflow
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
wbox workflows <ID>
|
|
27
|
+
wbox workflows get <ID>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Supports `--no-comments`, `--verbose`, `--format`. Default output omits the
|
|
31
|
+
redundant `workflow_template` block (fetch separately via `templates list`);
|
|
32
|
+
pass `--verbose` to include it.
|
|
33
|
+
|
|
34
|
+
## Next Step
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
wbox workflows next <ID>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Returns the active step (or `{"completed": true, "completed_at": ...}` if the
|
|
41
|
+
workflow is done). Cheaper than parsing the full `get` response when you only
|
|
42
|
+
need to know "what's next."
|
|
43
|
+
|
|
44
|
+
## Create Workflow
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
wbox workflows add [OPTIONS]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
| Flag | Type | Description |
|
|
51
|
+
|------|------|-------------|
|
|
52
|
+
| `--template` | INT | Workflow template ID (required) |
|
|
53
|
+
| `--label` | STR | Label/name for this instance |
|
|
54
|
+
| `--contact` | INT | Link to contact |
|
|
55
|
+
| `--project` | INT | Link to project |
|
|
56
|
+
| `--opportunity` | INT | Link to opportunity |
|
|
57
|
+
| `--visible-to` | STR | Visibility |
|
|
58
|
+
| `--starts-at` | STR | Start date |
|
|
59
|
+
| `--more-fields` | JSON | Additional fields |
|
|
60
|
+
| `--format` | json\|table\|csv\|tsv | Output format |
|
|
61
|
+
|
|
62
|
+
**Note:** Use `wbox workflows templates list` to find available template IDs.
|
|
63
|
+
|
|
64
|
+
## Complete Step
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
wbox workflows complete-step <WORKFLOW_ID> <STEP_ID> [OPTIONS]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
| Flag | Type | Description |
|
|
71
|
+
|------|------|-------------|
|
|
72
|
+
| `--outcome-id` | INT | Outcome selection |
|
|
73
|
+
| `--due-date` | STR | For restarting a step |
|
|
74
|
+
| `--due-date-set` | flag | Whether restarted step has due date |
|
|
75
|
+
| `--no-advance-hint` | flag | Skip the post-complete workflow fetch + stderr summary |
|
|
76
|
+
| `--format` | json\|table\|csv\|tsv | Output format |
|
|
77
|
+
|
|
78
|
+
After a successful complete-step, the CLI fetches the workflow and prints a
|
|
79
|
+
one-line summary to **stderr** describing the new active step (or that the
|
|
80
|
+
workflow completed). Stdout stays the raw API response. Wealthbox's complete-step
|
|
81
|
+
response itself does not say which outcome was selected, so this hint is the
|
|
82
|
+
fastest way to confirm branching took effect.
|
|
83
|
+
|
|
84
|
+
## Revert Step
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
wbox workflows revert-step <WORKFLOW_ID> <STEP_ID> [OPTIONS]
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## List Templates
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
wbox workflows templates list [OPTIONS]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Same filter flags as workflow list.
|
|
97
|
+
|
|
98
|
+
## Examples
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# List available templates
|
|
102
|
+
wbox workflows templates list --format table
|
|
103
|
+
|
|
104
|
+
# Start onboarding workflow for a contact
|
|
105
|
+
wbox workflows add --template 123 --contact 67890 --label "Smith Onboarding"
|
|
106
|
+
|
|
107
|
+
# Complete a workflow step
|
|
108
|
+
wbox workflows complete-step 111 222
|
|
109
|
+
|
|
110
|
+
# Just tell me what's next
|
|
111
|
+
wbox workflows next 111
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Quirks (verified against the live API)
|
|
115
|
+
|
|
116
|
+
- **`completed_at` — not `active_step` — is the truth signal.** When a workflow
|
|
117
|
+
completes, Wealthbox does not clear the `active_step` field — it keeps
|
|
118
|
+
pointing at the final completed step. To detect completion, check that
|
|
119
|
+
`completed_at` is non-empty. `wbox workflows next` already handles this.
|
|
120
|
+
- **`due_date` is materialized at step *activation*, not workflow creation.**
|
|
121
|
+
Steps further down the chain return `due_date: ""` until they become the
|
|
122
|
+
active step. Empty string ≠ "no due date scheduled" — it just means "not yet
|
|
123
|
+
reached."
|
|
124
|
+
- **Empty strings, not nulls, for unset datetimes.** `completed_at: ""`,
|
|
125
|
+
`due_date: ""`. If you ever add a Pydantic output model with
|
|
126
|
+
`datetime | None`, you must coerce empty strings to None.
|
|
127
|
+
- **`complete-step` response doesn't surface the selected outcome.** It returns
|
|
128
|
+
the step with *all* of its possible outcomes attached, identical shape to the
|
|
129
|
+
pre-completion read. To verify branching worked, re-fetch the workflow and
|
|
130
|
+
inspect the new `active_step` (or just rely on the CLI's stderr advance hint).
|
|
131
|
+
- **Skipped steps stay `pending`.** When an outcome jumps over intermediate
|
|
132
|
+
steps, those steps are NOT marked skipped or completed — they have empty
|
|
133
|
+
`completed_at` and `due_date`, indistinguishable from steps that simply
|
|
134
|
+
haven't been reached. Outcome-driven workflows can revisit earlier steps, so
|
|
135
|
+
"later step is completed" doesn't reliably imply "earlier step was skipped."
|
|
136
|
+
- **`revert-step` preserves `due_date`.** Reverting only clears `completed_at`
|
|
137
|
+
and `completer_id`; the previously materialized `due_date` is kept.
|
|
138
|
+
- **Workflows attach to either the household or any member.** When looking up a
|
|
139
|
+
client's workflows, check both the household contact and each member contact —
|
|
140
|
+
Wealthbox does not roll member workflows up to the household.
|
|
141
|
+
- **Instance `name` is lower-cased relative to template `name`.** Template
|
|
142
|
+
"Auto Trade Enrollment" becomes instance "Auto trade enrollment". Cosmetic.
|
|
143
|
+
- **`workflow_template` is included on every workflow list/get response.** It's
|
|
144
|
+
the full template (every step + html descriptions). The CLI strips it from
|
|
145
|
+
default output to save tokens; pass `--verbose` to include it.
|
{wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/.claude-plugin/plugin.json
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wealthbox-crm",
|
|
3
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.
|
|
4
|
+
"version": "1.5.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kadin Bullock"
|
|
7
7
|
},
|
{wealthbox_cli-1.4.0 → wealthbox_cli-1.5.1}/plugins/wealthbox-crm/skills/wealthbox-crm/SKILL.md
RENAMED
|
@@ -82,7 +82,7 @@ Verify with: `wbox me`
|
|
|
82
82
|
| List/get/add/update events | events | `wbox events {list\|get\|add\|update\|delete} ...` |
|
|
83
83
|
| Opportunities | opportunities | `wbox opportunities {list\|get\|add\|update\|delete} ...` |
|
|
84
84
|
| Projects | projects | `wbox projects {list\|get\|add\|update} ...` |
|
|
85
|
-
| Workflows | workflows | `wbox workflows {list\|get\|add\|complete-step\|revert-step} ...` |
|
|
85
|
+
| Workflows | workflows | `wbox workflows {list\|get\|next\|add\|complete-step\|revert-step} ...` |
|
|
86
86
|
| Household members | households | `wbox households {add-member\|remove-member} ...` |
|
|
87
87
|
| Categories/tags | lookups | `wbox categories ...` or `wbox <resource> categories` |
|
|
88
88
|
| Users | lookups | `wbox users list` |
|
|
@@ -111,6 +111,10 @@ When `<firm>/workflows.md` defines named workflows (e.g., "onboarding", "meeting
|
|
|
111
111
|
- Default to `--format json` for single records, `--format table` for lists
|
|
112
112
|
- If the user asks to "show" or "display", use `--format table`
|
|
113
113
|
- If the user is piping or scripting, use `--format json`
|
|
114
|
+
- **Token efficiency:** for any read where the html duplicates aren't needed
|
|
115
|
+
(almost always), pass `--brief` (or set `WBOX_BRIEF=1`). It strips every
|
|
116
|
+
`*_html` field recursively from the JSON output. Wealthbox returns html
|
|
117
|
+
3-5x larger than the plain text counterpart.
|
|
114
118
|
|
|
115
119
|
## Common Recipes
|
|
116
120
|
|