nexus-cli 0.3.0__py3-none-any.whl
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.
- nexus/__init__.py +8 -0
- nexus/cli.py +1914 -0
- nexus/integrations/__init__.py +0 -0
- nexus/knowledge/__init__.py +13 -0
- nexus/knowledge/search.py +233 -0
- nexus/knowledge/vault.py +662 -0
- nexus/research/__init__.py +12 -0
- nexus/research/pdf.py +497 -0
- nexus/research/zotero.py +521 -0
- nexus/teaching/__init__.py +14 -0
- nexus/teaching/courses.py +388 -0
- nexus/teaching/quarto.py +385 -0
- nexus/utils/__init__.py +0 -0
- nexus/utils/config.py +157 -0
- nexus/writing/__init__.py +12 -0
- nexus/writing/bibliography.py +339 -0
- nexus/writing/manuscript.py +397 -0
- nexus_cli-0.3.0.dist-info/METADATA +369 -0
- nexus_cli-0.3.0.dist-info/RECORD +21 -0
- nexus_cli-0.3.0.dist-info/WHEEL +4 -0
- nexus_cli-0.3.0.dist-info/entry_points.txt +2 -0
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: nexus-cli
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Knowledge workflow CLI for research, teaching, and writing - Claude's body for academic work
|
|
5
|
+
Project-URL: Homepage, https://github.com/Data-Wise/nexus-cli
|
|
6
|
+
Project-URL: Documentation, https://data-wise.github.io/nexus-cli
|
|
7
|
+
Project-URL: Repository, https://github.com/Data-Wise/nexus-cli
|
|
8
|
+
Author-email: DT <dt@example.com>
|
|
9
|
+
License: MIT
|
|
10
|
+
Keywords: claude,cli,knowledge-management,obsidian,research,zotero
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Requires-Dist: pydantic-settings>=2.0.0
|
|
21
|
+
Requires-Dist: pydantic>=2.0.0
|
|
22
|
+
Requires-Dist: pyyaml>=6.0
|
|
23
|
+
Requires-Dist: rich>=13.0.0
|
|
24
|
+
Requires-Dist: typer>=0.12.0
|
|
25
|
+
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: bandit[toml]>=1.7.0; extra == 'dev'
|
|
27
|
+
Requires-Dist: coverage-badge>=1.1.0; extra == 'dev'
|
|
28
|
+
Requires-Dist: mypy>=1.10.0; extra == 'dev'
|
|
29
|
+
Requires-Dist: pytest-benchmark>=4.0.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
31
|
+
Requires-Dist: pytest-mock>=3.12.0; extra == 'dev'
|
|
32
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
33
|
+
Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
34
|
+
Provides-Extra: docs
|
|
35
|
+
Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.2.0; extra == 'docs'
|
|
36
|
+
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
|
|
37
|
+
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
|
|
38
|
+
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'docs'
|
|
39
|
+
Description-Content-Type: text/markdown
|
|
40
|
+
|
|
41
|
+
# Nexus CLI
|
|
42
|
+
|
|
43
|
+
[](https://github.com/Data-Wise/nexus-cli/actions/workflows/ci.yml)
|
|
44
|
+
[](https://data-wise.github.io/nexus-cli)
|
|
45
|
+
[](https://www.python.org/downloads/)
|
|
46
|
+
[](https://github.com/Data-Wise/nexus-cli/releases)
|
|
47
|
+
[](https://opensource.org/licenses/MIT)
|
|
48
|
+
[](https://codecov.io/gh/Data-Wise/nexus-cli)
|
|
49
|
+
[](https://github.com/Data-Wise/nexus-cli/actions/workflows/ci.yml)
|
|
50
|
+
[](https://codecov.io/gh/Data-Wise/nexus-cli)
|
|
51
|
+
|
|
52
|
+
> **Knowledge workflow CLI for research, teaching, and writing.**
|
|
53
|
+
> Claude is the brain, Nexus is the body.
|
|
54
|
+
|
|
55
|
+
**π [Documentation](https://data-wise.github.io/nexus-cli)** | **π [Quick Start](https://data-wise.github.io/nexus-cli/getting-started/quickstart/)** | **π [Changelog](https://data-wise.github.io/nexus-cli/changelog/)**
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
59
|
+
β β
|
|
60
|
+
β ββββ ββββββββββββββ ββββββ βββββββββββ β
|
|
61
|
+
β βββββ ββββββββββββββββββββββ βββββββββββ β
|
|
62
|
+
β ββββββ βββββββββ ββββββ βββ βββββββββββ β
|
|
63
|
+
β ββββββββββββββββ ββββββ βββ βββββββββββ β
|
|
64
|
+
β βββ ββββββββββββββββββ ββββββββββββββββββββ β
|
|
65
|
+
β βββ ββββββββββββββββ βββ βββββββ ββββββββ β
|
|
66
|
+
β β
|
|
67
|
+
β Research β’ Teaching β’ Writing β’ Knowledge β
|
|
68
|
+
β β
|
|
69
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Philosophy
|
|
73
|
+
|
|
74
|
+
**Nexus does NOT do AI. It provides data and operations. Claude does the thinking.**
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
78
|
+
β THE NEXUS ARCHITECTURE β
|
|
79
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
|
|
80
|
+
β β
|
|
81
|
+
β βββββββββββββββ β
|
|
82
|
+
β β CLAUDE β (Brain) β
|
|
83
|
+
β β β’ Thinking β β
|
|
84
|
+
β β β’ Planning β β
|
|
85
|
+
β β β’ Writing β β
|
|
86
|
+
β ββββββββ¬βββββββ β
|
|
87
|
+
β β β
|
|
88
|
+
β β uses β
|
|
89
|
+
β βΌ β
|
|
90
|
+
β βββββββββββββββ β
|
|
91
|
+
β β NEXUS β (Body) β
|
|
92
|
+
β β β’ Searching β β
|
|
93
|
+
β β β’ Reading β β
|
|
94
|
+
β β β’ Writing β β
|
|
95
|
+
β β β’ Organizingβ β
|
|
96
|
+
β ββββββββ¬βββββββ β
|
|
97
|
+
β β β
|
|
98
|
+
β ββββββββββββββββΌβββββββββββββββ β
|
|
99
|
+
β βΌ βΌ βΌ β
|
|
100
|
+
β ββββββββββββ ββββββββββββ ββββββββββββ β
|
|
101
|
+
β β ZOTERO β β PDFs β β VAULT β β
|
|
102
|
+
β β 2,728 β β 1,800 β β Obsidian β β
|
|
103
|
+
β β papers β β files β β notes β β
|
|
104
|
+
β ββββββββββββ ββββββββββββ ββββββββββββ β
|
|
105
|
+
β β
|
|
106
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Installation
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# From source (recommended)
|
|
113
|
+
git clone https://github.com/Data-Wise/nexus-cli
|
|
114
|
+
cd nexus-cli
|
|
115
|
+
pip install -e .
|
|
116
|
+
|
|
117
|
+
# Or with uv
|
|
118
|
+
uv sync
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Quick Start
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Check your setup
|
|
125
|
+
nexus doctor
|
|
126
|
+
|
|
127
|
+
# Configure paths
|
|
128
|
+
nexus config
|
|
129
|
+
|
|
130
|
+
# Search your Zotero library
|
|
131
|
+
nexus research zotero search "mediation analysis"
|
|
132
|
+
|
|
133
|
+
# Search your vault
|
|
134
|
+
nexus knowledge vault search "sensitivity"
|
|
135
|
+
|
|
136
|
+
# Unified search across everything
|
|
137
|
+
nexus knowledge search "propensity score"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Command Reference
|
|
141
|
+
|
|
142
|
+
### Global Commands
|
|
143
|
+
|
|
144
|
+
| Command | Description |
|
|
145
|
+
|---------|-------------|
|
|
146
|
+
| `nexus doctor` | Check Nexus health and integrations |
|
|
147
|
+
| `nexus config` | View or edit configuration |
|
|
148
|
+
| `nexus --version` | Show version |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
### π§ Knowledge Domain
|
|
153
|
+
|
|
154
|
+
Obsidian vault and unified search operations.
|
|
155
|
+
|
|
156
|
+
#### Unified Search
|
|
157
|
+
```bash
|
|
158
|
+
nexus knowledge search "query" # Search across all sources
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
#### Vault Operations
|
|
162
|
+
```bash
|
|
163
|
+
nexus knowledge vault search "term" # Search vault notes
|
|
164
|
+
nexus knowledge vault read "path/note.md" # Read a note
|
|
165
|
+
nexus knowledge vault write "path" content # Write to a note
|
|
166
|
+
nexus knowledge vault daily # Open/create daily note
|
|
167
|
+
nexus knowledge vault backlinks "note.md" # Find notes linking here
|
|
168
|
+
nexus knowledge vault recent # Show recently modified
|
|
169
|
+
nexus knowledge vault orphans # Find unlinked notes
|
|
170
|
+
nexus knowledge vault template "name" # Create from template
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
### π¬ Research Domain
|
|
176
|
+
|
|
177
|
+
Literature management, Zotero, and PDF operations.
|
|
178
|
+
|
|
179
|
+
#### Zotero Operations
|
|
180
|
+
```bash
|
|
181
|
+
nexus research zotero search "query" # Search Zotero library
|
|
182
|
+
nexus research zotero get KEY # Get item details
|
|
183
|
+
nexus research zotero cite KEY # Generate citation
|
|
184
|
+
nexus research zotero recent # Recently modified items
|
|
185
|
+
nexus research zotero tags # List all tags
|
|
186
|
+
nexus research zotero collections # List all collections
|
|
187
|
+
nexus research zotero by-tag "tag" # Items with specific tag
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
#### PDF Operations
|
|
191
|
+
```bash
|
|
192
|
+
nexus research pdf extract FILE # Extract text from PDF
|
|
193
|
+
nexus research pdf search "query" # Search across PDFs
|
|
194
|
+
nexus research pdf list # List all PDFs
|
|
195
|
+
nexus research pdf info FILE # Show PDF information
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### π Teaching Domain
|
|
201
|
+
|
|
202
|
+
Course management and Quarto operations.
|
|
203
|
+
|
|
204
|
+
#### Course Management
|
|
205
|
+
```bash
|
|
206
|
+
nexus teach course list # List all courses
|
|
207
|
+
nexus teach course show NAME # Show course details
|
|
208
|
+
nexus teach course lectures NAME # List course lectures
|
|
209
|
+
nexus teach course materials NAME # List all materials
|
|
210
|
+
nexus teach course syllabus NAME # Show syllabus
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
#### Quarto Operations
|
|
214
|
+
```bash
|
|
215
|
+
nexus teach quarto build # Build Quarto project
|
|
216
|
+
nexus teach quarto preview # Start preview server
|
|
217
|
+
nexus teach quarto info # Show Quarto info
|
|
218
|
+
nexus teach quarto clean # Clean build artifacts
|
|
219
|
+
nexus teach quarto formats # List output formats
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
### βοΈ Writing Domain
|
|
225
|
+
|
|
226
|
+
Manuscript and bibliography management.
|
|
227
|
+
|
|
228
|
+
#### Manuscript Management
|
|
229
|
+
```bash
|
|
230
|
+
nexus write manuscript list # List all manuscripts
|
|
231
|
+
nexus write manuscript show NAME # Show manuscript details
|
|
232
|
+
nexus write manuscript active # Show active manuscripts
|
|
233
|
+
nexus write manuscript search "query" # Search manuscripts
|
|
234
|
+
nexus write manuscript stats # Show statistics
|
|
235
|
+
nexus write manuscript deadlines # Show deadlines/targets
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
#### Bibliography Operations
|
|
239
|
+
```bash
|
|
240
|
+
nexus write bib list MANUSCRIPT # List bibliography entries
|
|
241
|
+
nexus write bib search "query" # Search bibliography
|
|
242
|
+
nexus write bib check MANUSCRIPT # Check citations (missing/unused)
|
|
243
|
+
nexus write bib zotero "query" # Search Zotero for entries
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
### π Integration Domain
|
|
249
|
+
|
|
250
|
+
External tool integrations.
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
nexus integrate aiterm # Manage aiterm integration
|
|
254
|
+
nexus integrate claude # Manage Claude plugin
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## JSON Output
|
|
260
|
+
|
|
261
|
+
All commands support `--json` for machine-readable output:
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
nexus write manuscript stats --json | jq '.total_manuscripts'
|
|
265
|
+
nexus research zotero search "mediation" --json | jq '.[0].title'
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## Claude Integration
|
|
269
|
+
|
|
270
|
+
Nexus is designed to work with Claude via:
|
|
271
|
+
|
|
272
|
+
### 1. Piping to Claude Code
|
|
273
|
+
```bash
|
|
274
|
+
nexus research zotero search "mediation" --json | \
|
|
275
|
+
claude -p "Summarize these papers"
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### 2. Claude Calls Nexus (Primary Pattern)
|
|
279
|
+
In Claude Code, Claude uses Bash to call nexus commands directly.
|
|
280
|
+
|
|
281
|
+
### 3. Claude Code Plugin
|
|
282
|
+
Install the included plugin for enhanced Claude Code integration:
|
|
283
|
+
```bash
|
|
284
|
+
ln -sf /path/to/nexus-cli/plugin ~/.claude/plugins/nexus-cli
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## Configuration
|
|
288
|
+
|
|
289
|
+
Configuration file: `~/.config/nexus/config.yaml`
|
|
290
|
+
|
|
291
|
+
```yaml
|
|
292
|
+
vault:
|
|
293
|
+
path: ~/Library/Mobile Documents/iCloud~md~obsidian/Documents
|
|
294
|
+
templates: ~/path/to/templates
|
|
295
|
+
|
|
296
|
+
zotero:
|
|
297
|
+
database: ~/Zotero/zotero.sqlite
|
|
298
|
+
storage: ~/Zotero/storage
|
|
299
|
+
|
|
300
|
+
teaching:
|
|
301
|
+
courses_dir: ~/projects/teaching
|
|
302
|
+
|
|
303
|
+
writing:
|
|
304
|
+
manuscripts_dir: ~/projects/quarto/manuscripts
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
# View config
|
|
309
|
+
nexus config
|
|
310
|
+
|
|
311
|
+
# Edit config (opens in $EDITOR)
|
|
312
|
+
nexus config --edit
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## What's New in v0.4.0
|
|
316
|
+
|
|
317
|
+
π **Major Release** - Production-ready with enterprise-grade quality!
|
|
318
|
+
|
|
319
|
+
- **β
235 Tests** with 53% coverage (+10% from v0.3.0)
|
|
320
|
+
- **π Enhanced CI/CD** with matrix testing, security scanning, and coverage enforcement
|
|
321
|
+
- **π Full Documentation** site with MkDocs + Material theme
|
|
322
|
+
- **π§ͺ Advanced Testing** for PDF, Zotero, and Quarto modules
|
|
323
|
+
- **π Security** scanning with Bandit
|
|
324
|
+
- **π Coverage Thresholds** enforced at 40%+
|
|
325
|
+
|
|
326
|
+
See the full [Changelog](https://data-wise.github.io/nexus-cli/changelog/) for details.
|
|
327
|
+
|
|
328
|
+
## Development
|
|
329
|
+
|
|
330
|
+
### Running Tests
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
# Run all tests
|
|
334
|
+
pytest
|
|
335
|
+
|
|
336
|
+
# With coverage report
|
|
337
|
+
pytest --cov=nexus --cov-report=html
|
|
338
|
+
|
|
339
|
+
# Specific test file
|
|
340
|
+
pytest tests/test_vault.py
|
|
341
|
+
|
|
342
|
+
# Skip integration tests
|
|
343
|
+
pytest -m "not integration"
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
### Contributing
|
|
347
|
+
|
|
348
|
+
We welcome contributions! Please see our [Contributing Guide](https://github.com/Data-Wise/nexus-cli/blob/main/CONTRIBUTING.md) for details.
|
|
349
|
+
|
|
350
|
+
### Development Setup
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
# Clone the repository
|
|
354
|
+
git clone https://github.com/Data-Wise/nexus-cli
|
|
355
|
+
cd nexus-cli
|
|
356
|
+
|
|
357
|
+
# Install with development dependencies
|
|
358
|
+
pip install -e ".[dev,docs]"
|
|
359
|
+
|
|
360
|
+
# Run tests
|
|
361
|
+
pytest
|
|
362
|
+
|
|
363
|
+
# Build documentation locally
|
|
364
|
+
mkdocs serve
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
## License
|
|
368
|
+
|
|
369
|
+
MIT
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
nexus/__init__.py,sha256=5Y8mymDwBWjSrMyuboRnKxkX0eZSt5Eo6dhpboxiYNA,158
|
|
2
|
+
nexus/cli.py,sha256=XLybNglXX1LYS4ene46WVpB9etOYCaO1q2HIGriTxT4,62497
|
|
3
|
+
nexus/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
nexus/knowledge/__init__.py,sha256=ARtmCSMI6HAS54o8wccGi05ekEVf4w6O-0hDxivwIRY,344
|
|
5
|
+
nexus/knowledge/search.py,sha256=sWlUX_LnyJuonxLDB_WVwAzo3yCQtA5J6h-GO1HHE88,7304
|
|
6
|
+
nexus/knowledge/vault.py,sha256=2Yf8z9I7qESVXcQ9aZbu2SllYfMQOPB1QcevLh6WM6o,21748
|
|
7
|
+
nexus/research/__init__.py,sha256=MVWex5SFdxOblkLt0e9Dai7ZY_1i7f7uJWBxNFAdO2o,299
|
|
8
|
+
nexus/research/pdf.py,sha256=IHIG-I4UslwnoJDQ020LJwDEI5AvW_nLsSo8wVw-ONI,15262
|
|
9
|
+
nexus/research/zotero.py,sha256=YQ9zMEYXhJQ_gGSrLo7mv3E-vmffV9mEEyy0sJGPYiI,16226
|
|
10
|
+
nexus/teaching/__init__.py,sha256=UDBjV_DEDYQH6mizlZMLYcsPSokIU0H9Z1Daa1jraMs,367
|
|
11
|
+
nexus/teaching/courses.py,sha256=BZI50SKalMqE7eae5gErx4RchR_8xM-1ZwEdyvjvWSs,12187
|
|
12
|
+
nexus/teaching/quarto.py,sha256=_kfqMyTizDcJyQdG9q8I_ZP-4Hgp_jV94EjM6fN5uOY,11207
|
|
13
|
+
nexus/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
+
nexus/utils/config.py,sha256=sIUvAh6CYpDSjvyrGhV6YD8pYd82_EK2Kbz2DuNVHAE,4375
|
|
15
|
+
nexus/writing/__init__.py,sha256=Vj4cFFcqLjcPzy5x0F7YEvmlp0HAQANEV027xT1G-bo,337
|
|
16
|
+
nexus/writing/bibliography.py,sha256=dVXTAfNklNVdKdxhY7q_DS0sHaHhmxFOCBnp2XaDH4c,11033
|
|
17
|
+
nexus/writing/manuscript.py,sha256=FRVTNLbk7mBfNnHx93rnBxXxUTOFQtiR-RYJZz6_XPk,13492
|
|
18
|
+
nexus_cli-0.3.0.dist-info/METADATA,sha256=K4xmdcPOUXpiSjBkWPnH-4IfE3uiNquhGMWaF3o87U0,14229
|
|
19
|
+
nexus_cli-0.3.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
20
|
+
nexus_cli-0.3.0.dist-info/entry_points.txt,sha256=2BSo4nuK4FLUL-dKK8Jj_lIkqRuNf_UBMoTY6X9msAw,40
|
|
21
|
+
nexus_cli-0.3.0.dist-info/RECORD,,
|