wealthbox-cli 1.0.2__tar.gz → 1.0.4__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.4/.github/workflows/docs.yml +40 -0
- wealthbox_cli-1.0.4/.gitignore +50 -0
- wealthbox_cli-1.0.4/CONTRIBUTING.md +104 -0
- wealthbox_cli-1.0.4/PKG-INFO +266 -0
- wealthbox_cli-1.0.4/README.md +225 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/SECURITY.md +5 -3
- wealthbox_cli-1.0.4/docs/changelog.md +116 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/docs/cli-reference.md +1 -1
- wealthbox_cli-1.0.4/docs/getting-started.md +110 -0
- wealthbox_cli-1.0.4/docs/index.md +77 -0
- wealthbox_cli-1.0.4/docs/overrides/main.html +5 -0
- wealthbox_cli-1.0.4/docs/promotion.md +135 -0
- wealthbox_cli-1.0.4/docs/skills/wealthbox-crm/SKILL.md +68 -0
- wealthbox_cli-1.0.4/docs/skills/wealthbox-crm/firm-config.example.md +111 -0
- wealthbox_cli-1.0.4/docs/skills/wealthbox-crm/references/contacts.md +151 -0
- wealthbox_cli-1.0.4/docs/skills/wealthbox-crm/references/events.md +88 -0
- wealthbox_cli-1.0.4/docs/skills/wealthbox-crm/references/households.md +40 -0
- wealthbox_cli-1.0.4/docs/skills/wealthbox-crm/references/lookups.md +73 -0
- wealthbox_cli-1.0.4/docs/skills/wealthbox-crm/references/notes.md +67 -0
- wealthbox_cli-1.0.4/docs/skills/wealthbox-crm/references/opportunities.md +87 -0
- wealthbox_cli-1.0.4/docs/skills/wealthbox-crm/references/projects.md +60 -0
- wealthbox_cli-1.0.4/docs/skills/wealthbox-crm/references/tasks.md +101 -0
- wealthbox_cli-1.0.4/docs/skills/wealthbox-crm/references/workflows.md +90 -0
- wealthbox_cli-1.0.4/mkdocs.yml +70 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/pyproject.toml +24 -4
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/_util.py +2 -2
- wealthbox_cli-1.0.2/.gitignore +0 -216
- wealthbox_cli-1.0.2/CONTRIBUTING.md +0 -82
- wealthbox_cli-1.0.2/PKG-INFO +0 -260
- wealthbox_cli-1.0.2/README.md +0 -229
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/.env.example +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/.github/workflows/ci.yml +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/LICENSE +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/__init__.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/__init__.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/_config.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/activity.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/categories.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/config.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/contacts.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/events.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/households.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/main.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/me.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/notes.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/opportunities.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/projects.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/tasks.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/users.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/cli/workflows.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/__init__.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/activity.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/base.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/categories.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/comments.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/contacts.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/events.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/households.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/me.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/notes.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/opportunities.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/projects.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/tasks.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/users.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/client/workflows.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/__init__.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/activity.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/comments.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/common.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/contacts.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/custom_fields.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/enums.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/events.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/households.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/notes.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/opportunities.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/projects.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/tasks.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/models/workflows.py +0 -0
- {wealthbox_cli-1.0.2 → wealthbox_cli-1.0.4}/src/wealthbox_tools/py.typed +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Deploy docs to GitHub Pages
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
pages: write
|
|
11
|
+
id-token: write
|
|
12
|
+
|
|
13
|
+
concurrency:
|
|
14
|
+
group: "pages"
|
|
15
|
+
cancel-in-progress: true
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
build:
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v4
|
|
22
|
+
- uses: actions/setup-python@v5
|
|
23
|
+
with:
|
|
24
|
+
python-version: "3.12"
|
|
25
|
+
- run: pip install mkdocs-material
|
|
26
|
+
- run: cp CONTRIBUTING.md docs/contributing.md
|
|
27
|
+
- run: mkdocs build --strict
|
|
28
|
+
- uses: actions/upload-pages-artifact@v3
|
|
29
|
+
with:
|
|
30
|
+
path: site/
|
|
31
|
+
|
|
32
|
+
deploy:
|
|
33
|
+
needs: build
|
|
34
|
+
runs-on: ubuntu-latest
|
|
35
|
+
environment:
|
|
36
|
+
name: github-pages
|
|
37
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
38
|
+
steps:
|
|
39
|
+
- id: deployment
|
|
40
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Python bytecode
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[codz]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
|
|
7
|
+
# Distribution / packaging
|
|
8
|
+
build/
|
|
9
|
+
dist/
|
|
10
|
+
*.egg-info/
|
|
11
|
+
*.egg
|
|
12
|
+
.installed.cfg
|
|
13
|
+
MANIFEST
|
|
14
|
+
|
|
15
|
+
# Virtual environments
|
|
16
|
+
.venv/
|
|
17
|
+
venv/
|
|
18
|
+
env/
|
|
19
|
+
|
|
20
|
+
# Environment / secrets
|
|
21
|
+
.env
|
|
22
|
+
.envrc
|
|
23
|
+
|
|
24
|
+
# Testing / coverage
|
|
25
|
+
.pytest_cache/
|
|
26
|
+
.coverage
|
|
27
|
+
.coverage.*
|
|
28
|
+
htmlcov/
|
|
29
|
+
coverage.xml
|
|
30
|
+
|
|
31
|
+
# Type checking
|
|
32
|
+
.mypy_cache/
|
|
33
|
+
.dmypy.json
|
|
34
|
+
.pytype/
|
|
35
|
+
|
|
36
|
+
# Linting
|
|
37
|
+
.ruff_cache/
|
|
38
|
+
|
|
39
|
+
# Editors / IDEs
|
|
40
|
+
.idea/
|
|
41
|
+
.vscode/
|
|
42
|
+
|
|
43
|
+
# MkDocs build output
|
|
44
|
+
site/
|
|
45
|
+
|
|
46
|
+
# Project-specific
|
|
47
|
+
dev/
|
|
48
|
+
.claude/
|
|
49
|
+
CLAUDE.md
|
|
50
|
+
docs/superpowers/
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Contributing to Wealthbox CLI
|
|
2
|
+
|
|
3
|
+
Thank you for your interest in contributing to **wealthbox-cli**!
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Development Setup
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
git clone https://github.com/massive-value/wealthbox-cli
|
|
11
|
+
cd wealthbox-cli
|
|
12
|
+
python -m venv .venv
|
|
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` |
|
|
22
|
+
|
|
23
|
+
Then install with dev dependencies:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
pip install -e ".[dev]"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Configure your Wealthbox API token (optional — tests don't require a real token):
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
wbox config set-token
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Running Tests
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pytest
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Tests use [respx](https://lundberg.github.io/respx/) to mock HTTP at the transport layer — no real API calls are made.
|
|
44
|
+
|
|
45
|
+
## Code Style
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
ruff check src/ tests/
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
- **ruff** for linting (E, F, I rules; 120-char line length)
|
|
52
|
+
- **mypy** in strict mode
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Project Architecture
|
|
57
|
+
|
|
58
|
+
Three layers under `src/wealthbox_tools/`:
|
|
59
|
+
|
|
60
|
+
| Layer | Purpose |
|
|
61
|
+
|-------|---------|
|
|
62
|
+
| `cli/` | [Typer](https://typer.tiangolo.com/) commands — user-facing, delegates to client |
|
|
63
|
+
| `client/` | Async HTTP client built from [httpx](https://www.python-httpx.org/) mixins |
|
|
64
|
+
| `models/` | [Pydantic v2](https://docs.pydantic.dev/) models for input validation |
|
|
65
|
+
|
|
66
|
+
`WealthboxClient` (in `client/__init__.py`) inherits from all resource mixins plus `_WealthboxBase` (core HTTP, rate limiting, error handling).
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Adding a New Resource
|
|
71
|
+
|
|
72
|
+
1. Add Pydantic models to `models/<resource>.py` (CreateInput, UpdateInput, ListQuery)
|
|
73
|
+
2. Add a client mixin to `client/<resource>.py` with async CRUD methods
|
|
74
|
+
3. Register the mixin in `client/__init__.py`
|
|
75
|
+
4. Add CLI commands to `cli/<resource>.py`
|
|
76
|
+
5. Register the CLI sub-app in `cli/main.py`
|
|
77
|
+
6. Add category types via `make_category_command()` if applicable
|
|
78
|
+
7. Add tests in `tests/test_<resource>_create.py` and `tests/test_<resource>_update.py`
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## CI
|
|
83
|
+
|
|
84
|
+
Pull requests and pushes to `main` run GitHub Actions CI:
|
|
85
|
+
|
|
86
|
+
- **Lint:** `ruff check src/ tests/`
|
|
87
|
+
- **Test:** `pytest` across Python 3.11, 3.12, 3.13
|
|
88
|
+
|
|
89
|
+
Both must pass before merging.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Pull Requests
|
|
94
|
+
|
|
95
|
+
- Keep PRs focused — one feature or fix per PR
|
|
96
|
+
- All tests must pass
|
|
97
|
+
- No ruff errors
|
|
98
|
+
- Update the CLI reference docs if commands change
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Reporting Issues
|
|
103
|
+
|
|
104
|
+
Open an issue at [github.com/massive-value/wealthbox-cli/issues](https://github.com/massive-value/wealthbox-cli/issues) with steps to reproduce, expected behavior, and actual behavior.
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: wealthbox-cli
|
|
3
|
+
Version: 1.0.4
|
|
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 [Claude Code](https://claude.ai/download) skill that lets AI agents manage your CRM through natural language. Instead of memorizing CLI flags, just describe what you want:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
/wealthbox-crm create a contact for Jane Doe, she's a new prospect
|
|
130
|
+
/wealthbox-crm list my tasks due this week
|
|
131
|
+
/wealthbox-crm add a note to contact 123 about today's meeting
|
|
132
|
+
/wealthbox-crm 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 — making it ideal for advisors who want CRM automation without learning CLI syntax.
|
|
136
|
+
|
|
137
|
+
### Install the skill
|
|
138
|
+
|
|
139
|
+
Download the skill directly from GitHub into your Claude Code skills directory:
|
|
140
|
+
|
|
141
|
+
**macOS/Linux:**
|
|
142
|
+
```bash
|
|
143
|
+
git clone --depth 1 https://github.com/massive-value/wealthbox-cli.git /tmp/wealthbox-cli \
|
|
144
|
+
&& cp -r /tmp/wealthbox-cli/docs/skills/wealthbox-crm ~/.claude/skills/wealthbox-crm \
|
|
145
|
+
&& rm -rf /tmp/wealthbox-cli
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Windows (PowerShell):**
|
|
149
|
+
```powershell
|
|
150
|
+
git clone --depth 1 https://github.com/massive-value/wealthbox-cli.git $env:TEMP\wealthbox-cli
|
|
151
|
+
Copy-Item -Recurse $env:TEMP\wealthbox-cli\docs\skills\wealthbox-crm $env:USERPROFILE\.claude\skills\wealthbox-crm
|
|
152
|
+
Remove-Item -Recurse -Force $env:TEMP\wealthbox-cli
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Windows (Command Prompt):**
|
|
156
|
+
```cmd
|
|
157
|
+
git clone --depth 1 https://github.com/massive-value/wealthbox-cli.git %TEMP%\wealthbox-cli
|
|
158
|
+
xcopy /E /I %TEMP%\wealthbox-cli\docs\skills\wealthbox-crm %USERPROFILE%\.claude\skills\wealthbox-crm
|
|
159
|
+
rmdir /S /Q %TEMP%\wealthbox-cli
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
If you already have the repo cloned, just copy from your local checkout:
|
|
163
|
+
|
|
164
|
+
**macOS/Linux:**
|
|
165
|
+
```bash
|
|
166
|
+
cp -r docs/skills/wealthbox-crm ~/.claude/skills/wealthbox-crm
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Windows (PowerShell):**
|
|
170
|
+
```powershell
|
|
171
|
+
Copy-Item -Recurse docs\skills\wealthbox-crm $env:USERPROFILE\.claude\skills\wealthbox-crm
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Windows (Command Prompt):**
|
|
175
|
+
```cmd
|
|
176
|
+
xcopy /E /I docs\skills\wealthbox-crm %USERPROFILE%\.claude\skills\wealthbox-crm
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Firm-specific configuration
|
|
180
|
+
|
|
181
|
+
Customize the skill for your firm's defaults, required fields, and naming conventions:
|
|
182
|
+
|
|
183
|
+
**macOS/Linux:**
|
|
184
|
+
```bash
|
|
185
|
+
cp ~/.claude/skills/wealthbox-crm/firm-config.example.md ~/.claude/skills/wealthbox-crm/firm-config.md
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**Windows (PowerShell):**
|
|
189
|
+
```powershell
|
|
190
|
+
Copy-Item $env:USERPROFILE\.claude\skills\wealthbox-crm\firm-config.example.md $env:USERPROFILE\.claude\skills\wealthbox-crm\firm-config.md
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Windows (Command Prompt):**
|
|
194
|
+
```cmd
|
|
195
|
+
copy %USERPROFILE%\.claude\skills\wealthbox-crm\firm-config.example.md %USERPROFILE%\.claude\skills\wealthbox-crm\firm-config.md
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Edit `firm-config.md` with your firm's conventions. The agent will then apply them automatically — for example, always tagging new contacts with your firm name, setting default contact types, or running multi-step onboarding workflows.
|
|
199
|
+
|
|
200
|
+
### Works with other agents too
|
|
201
|
+
|
|
202
|
+
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 included skill just makes Claude Code aware of the full command surface.
|
|
203
|
+
|
|
204
|
+
------------------------------------------------------------------------
|
|
205
|
+
|
|
206
|
+
## Architecture
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
src/wealthbox_tools/
|
|
210
|
+
cli/ # Typer commands — user-facing, delegates to client
|
|
211
|
+
client/ # Async HTTP client built from mixins
|
|
212
|
+
models/ # Pydantic v2 models for input validation
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
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.
|
|
216
|
+
|
|
217
|
+
------------------------------------------------------------------------
|
|
218
|
+
|
|
219
|
+
## Contributing
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
git clone https://github.com/massive-value/wealthbox-cli
|
|
223
|
+
cd wealthbox-cli
|
|
224
|
+
python -m venv .venv
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Activate the virtual environment:
|
|
228
|
+
|
|
229
|
+
| Platform | Command |
|
|
230
|
+
|----------|---------|
|
|
231
|
+
| macOS/Linux | `source .venv/bin/activate` |
|
|
232
|
+
| Windows (PowerShell) | `.venv\Scripts\Activate.ps1` |
|
|
233
|
+
| Windows (Command Prompt) | `.venv\Scripts\activate.bat` |
|
|
234
|
+
|
|
235
|
+
Then install and test:
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
pip install -e ".[dev]"
|
|
239
|
+
pytest
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.
|
|
243
|
+
|
|
244
|
+
------------------------------------------------------------------------
|
|
245
|
+
|
|
246
|
+
## Troubleshooting
|
|
247
|
+
|
|
248
|
+
**401 Unauthorized** — Check your API token. Run `wbox config show` to verify.
|
|
249
|
+
|
|
250
|
+
**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"`.
|
|
251
|
+
|
|
252
|
+
**Writes appear to succeed but nothing changed** — Some category-constrained writes silently no-op. Check valid values first with `wbox contacts categories contact-types`.
|
|
253
|
+
|
|
254
|
+
------------------------------------------------------------------------
|
|
255
|
+
|
|
256
|
+
## Disclaimer
|
|
257
|
+
|
|
258
|
+
This is an **unofficial, community-built** tool. It is not affiliated with, endorsed by,
|
|
259
|
+
or supported by Wealthbox or its parent company. "Wealthbox" is a trademark of its
|
|
260
|
+
respective owner. Use of this tool is subject to the [Wealthbox API Terms of Service](https://dev.wealthbox.com).
|
|
261
|
+
|
|
262
|
+
------------------------------------------------------------------------
|
|
263
|
+
|
|
264
|
+
## License
|
|
265
|
+
|
|
266
|
+
Apache 2.0 — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,225 @@
|
|
|
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 [Claude Code](https://claude.ai/download) skill that lets AI agents manage your CRM through natural language. Instead of memorizing CLI flags, just describe what you want:
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
/wealthbox-crm create a contact for Jane Doe, she's a new prospect
|
|
89
|
+
/wealthbox-crm list my tasks due this week
|
|
90
|
+
/wealthbox-crm add a note to contact 123 about today's meeting
|
|
91
|
+
/wealthbox-crm 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 — making it ideal for advisors who want CRM automation without learning CLI syntax.
|
|
95
|
+
|
|
96
|
+
### Install the skill
|
|
97
|
+
|
|
98
|
+
Download the skill directly from GitHub into your Claude Code skills directory:
|
|
99
|
+
|
|
100
|
+
**macOS/Linux:**
|
|
101
|
+
```bash
|
|
102
|
+
git clone --depth 1 https://github.com/massive-value/wealthbox-cli.git /tmp/wealthbox-cli \
|
|
103
|
+
&& cp -r /tmp/wealthbox-cli/docs/skills/wealthbox-crm ~/.claude/skills/wealthbox-crm \
|
|
104
|
+
&& rm -rf /tmp/wealthbox-cli
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Windows (PowerShell):**
|
|
108
|
+
```powershell
|
|
109
|
+
git clone --depth 1 https://github.com/massive-value/wealthbox-cli.git $env:TEMP\wealthbox-cli
|
|
110
|
+
Copy-Item -Recurse $env:TEMP\wealthbox-cli\docs\skills\wealthbox-crm $env:USERPROFILE\.claude\skills\wealthbox-crm
|
|
111
|
+
Remove-Item -Recurse -Force $env:TEMP\wealthbox-cli
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Windows (Command Prompt):**
|
|
115
|
+
```cmd
|
|
116
|
+
git clone --depth 1 https://github.com/massive-value/wealthbox-cli.git %TEMP%\wealthbox-cli
|
|
117
|
+
xcopy /E /I %TEMP%\wealthbox-cli\docs\skills\wealthbox-crm %USERPROFILE%\.claude\skills\wealthbox-crm
|
|
118
|
+
rmdir /S /Q %TEMP%\wealthbox-cli
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
If you already have the repo cloned, just copy from your local checkout:
|
|
122
|
+
|
|
123
|
+
**macOS/Linux:**
|
|
124
|
+
```bash
|
|
125
|
+
cp -r docs/skills/wealthbox-crm ~/.claude/skills/wealthbox-crm
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Windows (PowerShell):**
|
|
129
|
+
```powershell
|
|
130
|
+
Copy-Item -Recurse docs\skills\wealthbox-crm $env:USERPROFILE\.claude\skills\wealthbox-crm
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Windows (Command Prompt):**
|
|
134
|
+
```cmd
|
|
135
|
+
xcopy /E /I docs\skills\wealthbox-crm %USERPROFILE%\.claude\skills\wealthbox-crm
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Firm-specific configuration
|
|
139
|
+
|
|
140
|
+
Customize the skill for your firm's defaults, required fields, and naming conventions:
|
|
141
|
+
|
|
142
|
+
**macOS/Linux:**
|
|
143
|
+
```bash
|
|
144
|
+
cp ~/.claude/skills/wealthbox-crm/firm-config.example.md ~/.claude/skills/wealthbox-crm/firm-config.md
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Windows (PowerShell):**
|
|
148
|
+
```powershell
|
|
149
|
+
Copy-Item $env:USERPROFILE\.claude\skills\wealthbox-crm\firm-config.example.md $env:USERPROFILE\.claude\skills\wealthbox-crm\firm-config.md
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Windows (Command Prompt):**
|
|
153
|
+
```cmd
|
|
154
|
+
copy %USERPROFILE%\.claude\skills\wealthbox-crm\firm-config.example.md %USERPROFILE%\.claude\skills\wealthbox-crm\firm-config.md
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Edit `firm-config.md` with your firm's conventions. The agent will then apply them automatically — for example, always tagging new contacts with your firm name, setting default contact types, or running multi-step onboarding workflows.
|
|
158
|
+
|
|
159
|
+
### Works with other agents too
|
|
160
|
+
|
|
161
|
+
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 included skill just makes Claude Code aware of the full command surface.
|
|
162
|
+
|
|
163
|
+
------------------------------------------------------------------------
|
|
164
|
+
|
|
165
|
+
## Architecture
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
src/wealthbox_tools/
|
|
169
|
+
cli/ # Typer commands — user-facing, delegates to client
|
|
170
|
+
client/ # Async HTTP client built from mixins
|
|
171
|
+
models/ # Pydantic v2 models for input validation
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
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.
|
|
175
|
+
|
|
176
|
+
------------------------------------------------------------------------
|
|
177
|
+
|
|
178
|
+
## Contributing
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
git clone https://github.com/massive-value/wealthbox-cli
|
|
182
|
+
cd wealthbox-cli
|
|
183
|
+
python -m venv .venv
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Activate the virtual environment:
|
|
187
|
+
|
|
188
|
+
| Platform | Command |
|
|
189
|
+
|----------|---------|
|
|
190
|
+
| macOS/Linux | `source .venv/bin/activate` |
|
|
191
|
+
| Windows (PowerShell) | `.venv\Scripts\Activate.ps1` |
|
|
192
|
+
| Windows (Command Prompt) | `.venv\Scripts\activate.bat` |
|
|
193
|
+
|
|
194
|
+
Then install and test:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
pip install -e ".[dev]"
|
|
198
|
+
pytest
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.
|
|
202
|
+
|
|
203
|
+
------------------------------------------------------------------------
|
|
204
|
+
|
|
205
|
+
## Troubleshooting
|
|
206
|
+
|
|
207
|
+
**401 Unauthorized** — Check your API token. Run `wbox config show` to verify.
|
|
208
|
+
|
|
209
|
+
**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"`.
|
|
210
|
+
|
|
211
|
+
**Writes appear to succeed but nothing changed** — Some category-constrained writes silently no-op. Check valid values first with `wbox contacts categories contact-types`.
|
|
212
|
+
|
|
213
|
+
------------------------------------------------------------------------
|
|
214
|
+
|
|
215
|
+
## Disclaimer
|
|
216
|
+
|
|
217
|
+
This is an **unofficial, community-built** tool. It is not affiliated with, endorsed by,
|
|
218
|
+
or supported by Wealthbox or its parent company. "Wealthbox" is a trademark of its
|
|
219
|
+
respective owner. Use of this tool is subject to the [Wealthbox API Terms of Service](https://dev.wealthbox.com).
|
|
220
|
+
|
|
221
|
+
------------------------------------------------------------------------
|
|
222
|
+
|
|
223
|
+
## License
|
|
224
|
+
|
|
225
|
+
Apache 2.0 — see [LICENSE](LICENSE).
|