wealthbox-cli 1.0.3__tar.gz → 1.1.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.
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/.github/workflows/docs.yml +1 -0
- wealthbox_cli-1.0.3/docs/contributing.md → wealthbox_cli-1.1.0/CONTRIBUTING.md +13 -4
- wealthbox_cli-1.1.0/PKG-INFO +237 -0
- wealthbox_cli-1.1.0/README.md +196 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/SECURITY.md +5 -3
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/docs/cli-reference.md +1 -1
- wealthbox_cli-1.1.0/docs/overrides/main.html +5 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/mkdocs.yml +2 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/pyproject.toml +1 -1
- wealthbox_cli-1.1.0/src/wealthbox_tools/cli/_skill_bootstrap.py +253 -0
- wealthbox_cli-1.1.0/src/wealthbox_tools/cli/_skill_platforms.py +96 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/_util.py +2 -2
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/config.py +15 -3
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/main.py +2 -0
- wealthbox_cli-1.1.0/src/wealthbox_tools/cli/skills.py +270 -0
- {wealthbox_cli-1.0.3/docs → wealthbox_cli-1.1.0/src/wealthbox_tools}/skills/wealthbox-crm/SKILL.md +12 -3
- wealthbox_cli-1.1.0/src/wealthbox_tools/skills/wealthbox-crm/bootstrap.md +105 -0
- wealthbox_cli-1.1.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/contacts.md +21 -0
- wealthbox_cli-1.1.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/events.md +9 -0
- wealthbox_cli-1.1.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/notes.md +5 -0
- wealthbox_cli-1.1.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/opportunities.md +12 -0
- wealthbox_cli-1.1.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/projects.md +5 -0
- wealthbox_cli-1.1.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/tasks.md +14 -0
- wealthbox_cli-1.1.0/src/wealthbox_tools/skills/wealthbox-crm/firm-examples/workflows.md +31 -0
- wealthbox_cli-1.0.3/CONTRIBUTING.md +0 -82
- wealthbox_cli-1.0.3/PKG-INFO +0 -316
- wealthbox_cli-1.0.3/README.md +0 -275
- wealthbox_cli-1.0.3/docs/skills/wealthbox-crm/firm-config.example.md +0 -111
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/.env.example +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/.github/workflows/ci.yml +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/.gitignore +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/LICENSE +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/docs/changelog.md +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/docs/getting-started.md +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/docs/index.md +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/docs/promotion.md +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/__init__.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/__init__.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/_config.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/activity.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/categories.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/contacts.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/events.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/households.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/me.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/notes.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/opportunities.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/projects.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/tasks.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/users.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/cli/workflows.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/__init__.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/activity.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/base.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/categories.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/comments.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/contacts.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/events.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/households.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/me.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/notes.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/opportunities.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/projects.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/tasks.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/users.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/client/workflows.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/__init__.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/activity.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/comments.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/common.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/contacts.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/custom_fields.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/enums.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/events.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/households.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/notes.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/opportunities.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/projects.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/tasks.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/models/workflows.py +0 -0
- {wealthbox_cli-1.0.3 → wealthbox_cli-1.1.0}/src/wealthbox_tools/py.typed +0 -0
- {wealthbox_cli-1.0.3/docs → wealthbox_cli-1.1.0/src/wealthbox_tools}/skills/wealthbox-crm/references/contacts.md +0 -0
- {wealthbox_cli-1.0.3/docs → wealthbox_cli-1.1.0/src/wealthbox_tools}/skills/wealthbox-crm/references/events.md +0 -0
- {wealthbox_cli-1.0.3/docs → wealthbox_cli-1.1.0/src/wealthbox_tools}/skills/wealthbox-crm/references/households.md +0 -0
- {wealthbox_cli-1.0.3/docs → wealthbox_cli-1.1.0/src/wealthbox_tools}/skills/wealthbox-crm/references/lookups.md +0 -0
- {wealthbox_cli-1.0.3/docs → wealthbox_cli-1.1.0/src/wealthbox_tools}/skills/wealthbox-crm/references/notes.md +0 -0
- {wealthbox_cli-1.0.3/docs → wealthbox_cli-1.1.0/src/wealthbox_tools}/skills/wealthbox-crm/references/opportunities.md +0 -0
- {wealthbox_cli-1.0.3/docs → wealthbox_cli-1.1.0/src/wealthbox_tools}/skills/wealthbox-crm/references/projects.md +0 -0
- {wealthbox_cli-1.0.3/docs → wealthbox_cli-1.1.0/src/wealthbox_tools}/skills/wealthbox-crm/references/tasks.md +0 -0
- {wealthbox_cli-1.0.3/docs → wealthbox_cli-1.1.0/src/wealthbox_tools}/skills/wealthbox-crm/references/workflows.md +0 -0
|
@@ -10,14 +10,23 @@ Thank you for your interest in contributing to **wealthbox-cli**!
|
|
|
10
10
|
git clone https://github.com/massive-value/wealthbox-cli
|
|
11
11
|
cd wealthbox-cli
|
|
12
12
|
python -m venv .venv
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Activate the virtual environment:
|
|
16
|
+
|
|
17
|
+
| Platform | Command |
|
|
18
|
+
|----------|---------|
|
|
19
|
+
| macOS/Linux | `source .venv/bin/activate` |
|
|
20
|
+
| Windows (PowerShell) | `.venv\Scripts\Activate.ps1` |
|
|
21
|
+
| Windows (Command Prompt) | `.venv\Scripts\activate.bat` |
|
|
16
22
|
|
|
23
|
+
Then install with dev dependencies:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
17
26
|
pip install -e ".[dev]"
|
|
18
27
|
```
|
|
19
28
|
|
|
20
|
-
Configure your Wealthbox API token:
|
|
29
|
+
Configure your Wealthbox API token (optional — tests don't require a real token):
|
|
21
30
|
|
|
22
31
|
```bash
|
|
23
32
|
wbox config set-token
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: wealthbox-cli
|
|
3
|
+
Version: 1.1.0
|
|
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 — Command-Line Client for the Wealthbox CRM API
|
|
43
|
+
|
|
44
|
+
[](https://pypi.org/project/wealthbox-cli/)
|
|
45
|
+
[](https://pypi.org/project/wealthbox-cli/)
|
|
46
|
+
[](https://www.python.org/downloads/)
|
|
47
|
+
[](https://github.com/massive-value/wealthbox-cli/actions/workflows/ci.yml)
|
|
48
|
+
[](LICENSE)
|
|
49
|
+
|
|
50
|
+
**wealthbox-cli** (`wbox`) is a command-line tool and Python client library for the [Wealthbox CRM](https://www.wealthbox.com/) API. It gives financial advisors, developers, and RIA firms full CRUD access to contacts, tasks, events, notes, households, and more — directly from the terminal. Automate your CRM workflows, export data, and integrate Wealthbox into scripts and CI pipelines.
|
|
51
|
+
|
|
52
|
+
[Documentation](https://massive-value.github.io/wealthbox-cli/) | [PyPI](https://pypi.org/project/wealthbox-cli/) | [Changelog](https://massive-value.github.io/wealthbox-cli/changelog/) | [Wealthbox CRM](https://www.wealthbox.com/) | [Wealthbox API Docs](https://dev.wealthbox.com)
|
|
53
|
+
|
|
54
|
+
> **Disclaimer:** This is an unofficial, community-built tool. It is not affiliated with,
|
|
55
|
+
> endorsed by, or supported by Wealthbox or its parent company. "Wealthbox" is a trademark
|
|
56
|
+
> of its respective owner.
|
|
57
|
+
|
|
58
|
+
------------------------------------------------------------------------
|
|
59
|
+
|
|
60
|
+
## Why Use wealthbox-cli?
|
|
61
|
+
|
|
62
|
+
- **No coding required** — structured CLI flags replace raw JSON and cURL commands
|
|
63
|
+
- **Automate CRM workflows** — script bulk updates, data exports, and scheduled tasks
|
|
64
|
+
- **Multiple output formats** — pipe JSON, CSV, or TSV directly to files or other tools
|
|
65
|
+
- **Built for financial advisors and developers** — covers contacts, households, tasks, events, notes, categories, and custom fields
|
|
66
|
+
- **AI-agent ready** — pair with [Claude Code](https://claude.ai/download) or other coding agents for natural-language CRM automation
|
|
67
|
+
- **Open source** — Apache 2.0 licensed, community-driven, and extensible
|
|
68
|
+
|
|
69
|
+
------------------------------------------------------------------------
|
|
70
|
+
|
|
71
|
+
## Quick Start
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
pip install wealthbox-cli
|
|
75
|
+
wbox config set-token # paste your Wealthbox API token (masked)
|
|
76
|
+
wbox me # verify connection
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
See the [Getting Started](https://massive-value.github.io/wealthbox-cli/getting-started/) guide for pipx install, environment variable auth, and other options.
|
|
80
|
+
|
|
81
|
+
------------------------------------------------------------------------
|
|
82
|
+
|
|
83
|
+
## Usage Examples
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# List contacts as a table
|
|
87
|
+
wbox contacts list --format table
|
|
88
|
+
|
|
89
|
+
# Create a new client contact
|
|
90
|
+
wbox contacts add person --first-name Jane --last-name Doe --contact-type Client
|
|
91
|
+
|
|
92
|
+
# Export tasks to CSV
|
|
93
|
+
wbox tasks list --format csv > tasks.csv
|
|
94
|
+
|
|
95
|
+
# Create a task linked to a contact
|
|
96
|
+
wbox tasks add "Follow up call" --due-date "2026-04-10T09:00:00-07:00" --contact 12345
|
|
97
|
+
|
|
98
|
+
# Add a meeting note
|
|
99
|
+
wbox notes add "Discussed retirement plan" --contact 12345
|
|
100
|
+
|
|
101
|
+
# Schedule an event
|
|
102
|
+
wbox events add "Annual Review" --starts-at "2026-05-01T10:00:00-07:00" --ends-at "2026-05-01T11:00:00-07:00"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
For the full command list, see the [CLI Reference](https://massive-value.github.io/wealthbox-cli/cli-reference/).
|
|
106
|
+
|
|
107
|
+
------------------------------------------------------------------------
|
|
108
|
+
|
|
109
|
+
## Supported Resources
|
|
110
|
+
|
|
111
|
+
| Resource | List | Get | Create | Update | Delete |
|
|
112
|
+
|----------|:----:|:---:|:------:|:------:|:------:|
|
|
113
|
+
| Contacts | Yes | Yes | Yes | Yes | Yes |
|
|
114
|
+
| Households | Yes | Yes | Yes | Yes | Yes |
|
|
115
|
+
| Tasks | Yes | Yes | Yes | Yes | Yes |
|
|
116
|
+
| Events | Yes | Yes | Yes | Yes | Yes |
|
|
117
|
+
| Notes | Yes | Yes | Yes | Yes | — |
|
|
118
|
+
| Users | Yes | — | — | — | — |
|
|
119
|
+
| Activity | Yes | — | — | — | — |
|
|
120
|
+
| Categories | Yes | — | — | — | — |
|
|
121
|
+
|
|
122
|
+
------------------------------------------------------------------------
|
|
123
|
+
|
|
124
|
+
## Use with AI Coding Agents
|
|
125
|
+
|
|
126
|
+
wealthbox-cli ships with a skill for [Claude Code](https://claude.ai/download) and [Codex](https://openai.com/codex) that lets AI agents manage your CRM through natural language. Instead of memorizing CLI flags, just describe what you want:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
create a contact for Jane Doe, she's a new prospect
|
|
130
|
+
list my tasks due this week
|
|
131
|
+
add a note to contact 123 about today's meeting
|
|
132
|
+
find all contacts tagged "VIP" and export to CSV
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
The skill translates your intent into the correct `wbox` commands, handles flag construction, and validates inputs — ideal for advisors who want CRM automation without learning CLI syntax.
|
|
136
|
+
|
|
137
|
+
### Install
|
|
138
|
+
|
|
139
|
+
One command, same on every OS:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
pip install wealthbox-cli
|
|
143
|
+
wbox config set-token # paste your Wealthbox API token
|
|
144
|
+
wbox skills install # interactive: pick Claude Code, Codex, or both
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
The installer asks which platforms to target, copies the skill into the right directory (`~/.claude/skills/` for Claude Code, `~/.codex/skills/` for Codex — with `SKILL.md` renamed to `AGENTS.md` automatically), and offers to bootstrap your firm's customizations from the Wealthbox API.
|
|
148
|
+
|
|
149
|
+
### First agent run bootstraps itself
|
|
150
|
+
|
|
151
|
+
The first time an agent invokes the skill, it walks you through populating firm-specific conventions — category values, custom fields, users, defaults, required fields, household naming, named workflows. No further CLI commands needed. After that first run, the bootstrap artifacts self-delete from the skill.
|
|
152
|
+
|
|
153
|
+
### Refresh after firm changes
|
|
154
|
+
|
|
155
|
+
If your firm adds or renames category values, custom fields, or users:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
wbox skills refresh
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
This updates the generated half of the skill's firm files; hand-edited policy is preserved.
|
|
162
|
+
|
|
163
|
+
### Other commands
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
wbox skills list # show where the skill is installed + last bootstrap time
|
|
167
|
+
wbox skills doctor # diagnose install state + token
|
|
168
|
+
wbox skills uninstall # remove the skill
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Works with other agents too
|
|
172
|
+
|
|
173
|
+
The `wbox` CLI is a standard command-line tool. Any AI coding agent that can execute shell commands — [Claude Code](https://claude.ai/download), [GitHub Copilot CLI](https://githubnext.com/projects/copilot-cli), [Cursor](https://cursor.sh/), or custom agent frameworks — can use it to read and write Wealthbox data. The bundled skill just makes Claude Code and Codex aware of the full command surface.
|
|
174
|
+
|
|
175
|
+
------------------------------------------------------------------------
|
|
176
|
+
|
|
177
|
+
## Architecture
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
src/wealthbox_tools/
|
|
181
|
+
cli/ # Typer commands — user-facing, delegates to client
|
|
182
|
+
client/ # Async HTTP client built from mixins
|
|
183
|
+
models/ # Pydantic v2 models for input validation
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Built with [Typer](https://typer.tiangolo.com/), [httpx](https://www.python-httpx.org/), and [Pydantic v2](https://docs.pydantic.dev/). See [Contributing](https://massive-value.github.io/wealthbox-cli/contributing/) for the full architecture guide and how to add new resources.
|
|
187
|
+
|
|
188
|
+
------------------------------------------------------------------------
|
|
189
|
+
|
|
190
|
+
## Contributing
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
git clone https://github.com/massive-value/wealthbox-cli
|
|
194
|
+
cd wealthbox-cli
|
|
195
|
+
python -m venv .venv
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Activate the virtual environment:
|
|
199
|
+
|
|
200
|
+
| Platform | Command |
|
|
201
|
+
|----------|---------|
|
|
202
|
+
| macOS/Linux | `source .venv/bin/activate` |
|
|
203
|
+
| Windows (PowerShell) | `.venv\Scripts\Activate.ps1` |
|
|
204
|
+
| Windows (Command Prompt) | `.venv\Scripts\activate.bat` |
|
|
205
|
+
|
|
206
|
+
Then install and test:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
pip install -e ".[dev]"
|
|
210
|
+
pytest
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.
|
|
214
|
+
|
|
215
|
+
------------------------------------------------------------------------
|
|
216
|
+
|
|
217
|
+
## Troubleshooting
|
|
218
|
+
|
|
219
|
+
**401 Unauthorized** — Check your API token. Run `wbox config show` to verify.
|
|
220
|
+
|
|
221
|
+
**Date format errors** — Use ISO 8601: `"2026-04-01T10:00:00-07:00"` or `"2026-04-01T10:00:00Z"`. Date-only fields use `"YYYY-MM-DD"`.
|
|
222
|
+
|
|
223
|
+
**Writes appear to succeed but nothing changed** — Some category-constrained writes silently no-op. Check valid values first with `wbox contacts categories contact-types`.
|
|
224
|
+
|
|
225
|
+
------------------------------------------------------------------------
|
|
226
|
+
|
|
227
|
+
## Disclaimer
|
|
228
|
+
|
|
229
|
+
This is an **unofficial, community-built** tool. It is not affiliated with, endorsed by,
|
|
230
|
+
or supported by Wealthbox or its parent company. "Wealthbox" is a trademark of its
|
|
231
|
+
respective owner. Use of this tool is subject to the [Wealthbox API Terms of Service](https://dev.wealthbox.com).
|
|
232
|
+
|
|
233
|
+
------------------------------------------------------------------------
|
|
234
|
+
|
|
235
|
+
## License
|
|
236
|
+
|
|
237
|
+
Apache 2.0 — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# Wealthbox CLI — Command-Line Client for the Wealthbox CRM API
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/wealthbox-cli/)
|
|
4
|
+
[](https://pypi.org/project/wealthbox-cli/)
|
|
5
|
+
[](https://www.python.org/downloads/)
|
|
6
|
+
[](https://github.com/massive-value/wealthbox-cli/actions/workflows/ci.yml)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
|
|
9
|
+
**wealthbox-cli** (`wbox`) is a command-line tool and Python client library for the [Wealthbox CRM](https://www.wealthbox.com/) API. It gives financial advisors, developers, and RIA firms full CRUD access to contacts, tasks, events, notes, households, and more — directly from the terminal. Automate your CRM workflows, export data, and integrate Wealthbox into scripts and CI pipelines.
|
|
10
|
+
|
|
11
|
+
[Documentation](https://massive-value.github.io/wealthbox-cli/) | [PyPI](https://pypi.org/project/wealthbox-cli/) | [Changelog](https://massive-value.github.io/wealthbox-cli/changelog/) | [Wealthbox CRM](https://www.wealthbox.com/) | [Wealthbox API Docs](https://dev.wealthbox.com)
|
|
12
|
+
|
|
13
|
+
> **Disclaimer:** This is an unofficial, community-built tool. It is not affiliated with,
|
|
14
|
+
> endorsed by, or supported by Wealthbox or its parent company. "Wealthbox" is a trademark
|
|
15
|
+
> of its respective owner.
|
|
16
|
+
|
|
17
|
+
------------------------------------------------------------------------
|
|
18
|
+
|
|
19
|
+
## Why Use wealthbox-cli?
|
|
20
|
+
|
|
21
|
+
- **No coding required** — structured CLI flags replace raw JSON and cURL commands
|
|
22
|
+
- **Automate CRM workflows** — script bulk updates, data exports, and scheduled tasks
|
|
23
|
+
- **Multiple output formats** — pipe JSON, CSV, or TSV directly to files or other tools
|
|
24
|
+
- **Built for financial advisors and developers** — covers contacts, households, tasks, events, notes, categories, and custom fields
|
|
25
|
+
- **AI-agent ready** — pair with [Claude Code](https://claude.ai/download) or other coding agents for natural-language CRM automation
|
|
26
|
+
- **Open source** — Apache 2.0 licensed, community-driven, and extensible
|
|
27
|
+
|
|
28
|
+
------------------------------------------------------------------------
|
|
29
|
+
|
|
30
|
+
## Quick Start
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pip install wealthbox-cli
|
|
34
|
+
wbox config set-token # paste your Wealthbox API token (masked)
|
|
35
|
+
wbox me # verify connection
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
See the [Getting Started](https://massive-value.github.io/wealthbox-cli/getting-started/) guide for pipx install, environment variable auth, and other options.
|
|
39
|
+
|
|
40
|
+
------------------------------------------------------------------------
|
|
41
|
+
|
|
42
|
+
## Usage Examples
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# List contacts as a table
|
|
46
|
+
wbox contacts list --format table
|
|
47
|
+
|
|
48
|
+
# Create a new client contact
|
|
49
|
+
wbox contacts add person --first-name Jane --last-name Doe --contact-type Client
|
|
50
|
+
|
|
51
|
+
# Export tasks to CSV
|
|
52
|
+
wbox tasks list --format csv > tasks.csv
|
|
53
|
+
|
|
54
|
+
# Create a task linked to a contact
|
|
55
|
+
wbox tasks add "Follow up call" --due-date "2026-04-10T09:00:00-07:00" --contact 12345
|
|
56
|
+
|
|
57
|
+
# Add a meeting note
|
|
58
|
+
wbox notes add "Discussed retirement plan" --contact 12345
|
|
59
|
+
|
|
60
|
+
# Schedule an event
|
|
61
|
+
wbox events add "Annual Review" --starts-at "2026-05-01T10:00:00-07:00" --ends-at "2026-05-01T11:00:00-07:00"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
For the full command list, see the [CLI Reference](https://massive-value.github.io/wealthbox-cli/cli-reference/).
|
|
65
|
+
|
|
66
|
+
------------------------------------------------------------------------
|
|
67
|
+
|
|
68
|
+
## Supported Resources
|
|
69
|
+
|
|
70
|
+
| Resource | List | Get | Create | Update | Delete |
|
|
71
|
+
|----------|:----:|:---:|:------:|:------:|:------:|
|
|
72
|
+
| Contacts | Yes | Yes | Yes | Yes | Yes |
|
|
73
|
+
| Households | Yes | Yes | Yes | Yes | Yes |
|
|
74
|
+
| Tasks | Yes | Yes | Yes | Yes | Yes |
|
|
75
|
+
| Events | Yes | Yes | Yes | Yes | Yes |
|
|
76
|
+
| Notes | Yes | Yes | Yes | Yes | — |
|
|
77
|
+
| Users | Yes | — | — | — | — |
|
|
78
|
+
| Activity | Yes | — | — | — | — |
|
|
79
|
+
| Categories | Yes | — | — | — | — |
|
|
80
|
+
|
|
81
|
+
------------------------------------------------------------------------
|
|
82
|
+
|
|
83
|
+
## Use with AI Coding Agents
|
|
84
|
+
|
|
85
|
+
wealthbox-cli ships with a skill for [Claude Code](https://claude.ai/download) and [Codex](https://openai.com/codex) that lets AI agents manage your CRM through natural language. Instead of memorizing CLI flags, just describe what you want:
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
create a contact for Jane Doe, she's a new prospect
|
|
89
|
+
list my tasks due this week
|
|
90
|
+
add a note to contact 123 about today's meeting
|
|
91
|
+
find all contacts tagged "VIP" and export to CSV
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
The skill translates your intent into the correct `wbox` commands, handles flag construction, and validates inputs — ideal for advisors who want CRM automation without learning CLI syntax.
|
|
95
|
+
|
|
96
|
+
### Install
|
|
97
|
+
|
|
98
|
+
One command, same on every OS:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
pip install wealthbox-cli
|
|
102
|
+
wbox config set-token # paste your Wealthbox API token
|
|
103
|
+
wbox skills install # interactive: pick Claude Code, Codex, or both
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The installer asks which platforms to target, copies the skill into the right directory (`~/.claude/skills/` for Claude Code, `~/.codex/skills/` for Codex — with `SKILL.md` renamed to `AGENTS.md` automatically), and offers to bootstrap your firm's customizations from the Wealthbox API.
|
|
107
|
+
|
|
108
|
+
### First agent run bootstraps itself
|
|
109
|
+
|
|
110
|
+
The first time an agent invokes the skill, it walks you through populating firm-specific conventions — category values, custom fields, users, defaults, required fields, household naming, named workflows. No further CLI commands needed. After that first run, the bootstrap artifacts self-delete from the skill.
|
|
111
|
+
|
|
112
|
+
### Refresh after firm changes
|
|
113
|
+
|
|
114
|
+
If your firm adds or renames category values, custom fields, or users:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
wbox skills refresh
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
This updates the generated half of the skill's firm files; hand-edited policy is preserved.
|
|
121
|
+
|
|
122
|
+
### Other commands
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
wbox skills list # show where the skill is installed + last bootstrap time
|
|
126
|
+
wbox skills doctor # diagnose install state + token
|
|
127
|
+
wbox skills uninstall # remove the skill
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Works with other agents too
|
|
131
|
+
|
|
132
|
+
The `wbox` CLI is a standard command-line tool. Any AI coding agent that can execute shell commands — [Claude Code](https://claude.ai/download), [GitHub Copilot CLI](https://githubnext.com/projects/copilot-cli), [Cursor](https://cursor.sh/), or custom agent frameworks — can use it to read and write Wealthbox data. The bundled skill just makes Claude Code and Codex aware of the full command surface.
|
|
133
|
+
|
|
134
|
+
------------------------------------------------------------------------
|
|
135
|
+
|
|
136
|
+
## Architecture
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
src/wealthbox_tools/
|
|
140
|
+
cli/ # Typer commands — user-facing, delegates to client
|
|
141
|
+
client/ # Async HTTP client built from mixins
|
|
142
|
+
models/ # Pydantic v2 models for input validation
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Built with [Typer](https://typer.tiangolo.com/), [httpx](https://www.python-httpx.org/), and [Pydantic v2](https://docs.pydantic.dev/). See [Contributing](https://massive-value.github.io/wealthbox-cli/contributing/) for the full architecture guide and how to add new resources.
|
|
146
|
+
|
|
147
|
+
------------------------------------------------------------------------
|
|
148
|
+
|
|
149
|
+
## Contributing
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
git clone https://github.com/massive-value/wealthbox-cli
|
|
153
|
+
cd wealthbox-cli
|
|
154
|
+
python -m venv .venv
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Activate the virtual environment:
|
|
158
|
+
|
|
159
|
+
| Platform | Command |
|
|
160
|
+
|----------|---------|
|
|
161
|
+
| macOS/Linux | `source .venv/bin/activate` |
|
|
162
|
+
| Windows (PowerShell) | `.venv\Scripts\Activate.ps1` |
|
|
163
|
+
| Windows (Command Prompt) | `.venv\Scripts\activate.bat` |
|
|
164
|
+
|
|
165
|
+
Then install and test:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
pip install -e ".[dev]"
|
|
169
|
+
pytest
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.
|
|
173
|
+
|
|
174
|
+
------------------------------------------------------------------------
|
|
175
|
+
|
|
176
|
+
## Troubleshooting
|
|
177
|
+
|
|
178
|
+
**401 Unauthorized** — Check your API token. Run `wbox config show` to verify.
|
|
179
|
+
|
|
180
|
+
**Date format errors** — Use ISO 8601: `"2026-04-01T10:00:00-07:00"` or `"2026-04-01T10:00:00Z"`. Date-only fields use `"YYYY-MM-DD"`.
|
|
181
|
+
|
|
182
|
+
**Writes appear to succeed but nothing changed** — Some category-constrained writes silently no-op. Check valid values first with `wbox contacts categories contact-types`.
|
|
183
|
+
|
|
184
|
+
------------------------------------------------------------------------
|
|
185
|
+
|
|
186
|
+
## Disclaimer
|
|
187
|
+
|
|
188
|
+
This is an **unofficial, community-built** tool. It is not affiliated with, endorsed by,
|
|
189
|
+
or supported by Wealthbox or its parent company. "Wealthbox" is a trademark of its
|
|
190
|
+
respective owner. Use of this tool is subject to the [Wealthbox API Terms of Service](https://dev.wealthbox.com).
|
|
191
|
+
|
|
192
|
+
------------------------------------------------------------------------
|
|
193
|
+
|
|
194
|
+
## License
|
|
195
|
+
|
|
196
|
+
Apache 2.0 — see [LICENSE](LICENSE).
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
Please **do not** open a public GitHub issue for security vulnerabilities.
|
|
6
6
|
|
|
7
|
-
Instead,
|
|
7
|
+
Instead, use [GitHub's private vulnerability reporting](https://github.com/massive-value/wealthbox-cli/security/advisories/new) to submit your report. This keeps the details confidential until a fix is available.
|
|
8
|
+
|
|
9
|
+
Include:
|
|
8
10
|
|
|
9
11
|
- A description of the vulnerability
|
|
10
12
|
- Steps to reproduce
|
|
@@ -16,9 +18,9 @@ You will receive a response within 5 business days. If the issue is confirmed, a
|
|
|
16
18
|
|
|
17
19
|
Your Wealthbox API token grants access to your CRM data. Keep it safe:
|
|
18
20
|
|
|
19
|
-
- **Never commit your token to version control.** Use `.env` (already in `.gitignore`)
|
|
21
|
+
- **Never commit your token to version control.** Use `.env` (already in `.gitignore`) or `wbox config set-token` to store it securely.
|
|
20
22
|
- **Never share your token** in issues, PRs, or chat.
|
|
21
|
-
- If a token is accidentally exposed, regenerate it immediately in your Wealthbox account settings
|
|
23
|
+
- If a token is accidentally exposed, regenerate it immediately in your Wealthbox account settings under **Settings > API Access**.
|
|
22
24
|
|
|
23
25
|
## Scope
|
|
24
26
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CLI Command Reference
|
|
2
2
|
|
|
3
|
-
Full command reference for the `wbox` CLI. For project overview, installation, and configuration see the [
|
|
3
|
+
Full command reference for the `wbox` CLI. For project overview, installation, and configuration see the [Getting Started](getting-started.md) guide.
|
|
4
4
|
|
|
5
5
|
------------------------------------------------------------------------
|
|
6
6
|
|
|
@@ -10,6 +10,7 @@ edit_uri: edit/main/docs/
|
|
|
10
10
|
|
|
11
11
|
theme:
|
|
12
12
|
name: material
|
|
13
|
+
custom_dir: docs/overrides
|
|
13
14
|
palette:
|
|
14
15
|
- media: "(prefers-color-scheme: light)"
|
|
15
16
|
scheme: default
|
|
@@ -41,6 +42,7 @@ exclude_docs: |
|
|
|
41
42
|
promotion.md
|
|
42
43
|
|
|
43
44
|
markdown_extensions:
|
|
45
|
+
- attr_list
|
|
44
46
|
- admonition
|
|
45
47
|
- pymdownx.details
|
|
46
48
|
- pymdownx.superfences
|