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.
@@ -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
+ [![CI](https://github.com/Data-Wise/nexus-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/Data-Wise/nexus-cli/actions/workflows/ci.yml)
44
+ [![Documentation](https://github.com/Data-Wise/nexus-cli/actions/workflows/docs.yml/badge.svg)](https://data-wise.github.io/nexus-cli)
45
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
46
+ [![Version](https://img.shields.io/badge/version-0.4.0-blue.svg)](https://github.com/Data-Wise/nexus-cli/releases)
47
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
48
+ [![codecov](https://codecov.io/gh/Data-Wise/nexus-cli/branch/main/graph/badge.svg)](https://codecov.io/gh/Data-Wise/nexus-cli)
49
+ [![Tests](https://img.shields.io/badge/tests-235%20passing-success.svg)](https://github.com/Data-Wise/nexus-cli/actions/workflows/ci.yml)
50
+ [![Coverage](https://img.shields.io/badge/coverage-53%25-yellow.svg)](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,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.28.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ nexus = nexus.cli:app