vaultsmith 0.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.
- vaultsmith-0.1.0/PKG-INFO +285 -0
- vaultsmith-0.1.0/README.md +264 -0
- vaultsmith-0.1.0/pyproject.toml +43 -0
- vaultsmith-0.1.0/setup.cfg +4 -0
- vaultsmith-0.1.0/src/vaultsmith/__init__.py +5 -0
- vaultsmith-0.1.0/src/vaultsmith/__main__.py +5 -0
- vaultsmith-0.1.0/src/vaultsmith/app.py +809 -0
- vaultsmith-0.1.0/src/vaultsmith/cli.py +242 -0
- vaultsmith-0.1.0/src/vaultsmith.egg-info/PKG-INFO +285 -0
- vaultsmith-0.1.0/src/vaultsmith.egg-info/SOURCES.txt +12 -0
- vaultsmith-0.1.0/src/vaultsmith.egg-info/dependency_links.txt +1 -0
- vaultsmith-0.1.0/src/vaultsmith.egg-info/entry_points.txt +2 -0
- vaultsmith-0.1.0/src/vaultsmith.egg-info/top_level.txt +1 -0
- vaultsmith-0.1.0/tests/test_cli.py +500 -0
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vaultsmith
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Agent launcher and tmux orchestrator for Obsidian vault workflows.
|
|
5
|
+
Author: Vaultsmith
|
|
6
|
+
Project-URL: Homepage, https://github.com/ronut01/Vaultsmith
|
|
7
|
+
Project-URL: Repository, https://github.com/ronut01/Vaultsmith
|
|
8
|
+
Project-URL: Issues, https://github.com/ronut01/Vaultsmith/issues
|
|
9
|
+
Keywords: obsidian,obsidian-vault,ai-agents,note-taking,tmux
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Environment :: Console
|
|
16
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
17
|
+
Classifier: Topic :: Text Processing :: Markup :: Markdown
|
|
18
|
+
Classifier: Topic :: Utilities
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
# Vaultsmith
|
|
23
|
+
|
|
24
|
+
**AI for Obsidian that works like the vault owner, not like a generic note bot.**
|
|
25
|
+
|
|
26
|
+
Vaultsmith is a local agent launcher and review-first workflow for Obsidian vaults. It sets up vault-local instructions, starts `codex` or `claude` inside `tmux`, and gives the agent a constrained operating surface so note creation and organization can stay consistent with how the vault already works.
|
|
27
|
+
|
|
28
|
+
## Why Vaultsmith exists
|
|
29
|
+
|
|
30
|
+
Most AI note tooling can generate text.
|
|
31
|
+
|
|
32
|
+
What it usually does badly:
|
|
33
|
+
|
|
34
|
+
- titles notes in a way that does not match the vault
|
|
35
|
+
- picks the wrong folder
|
|
36
|
+
- ignores linking habits and structure conventions
|
|
37
|
+
- rewrites too much when a small edit would do
|
|
38
|
+
- makes users manually clean up the result afterward
|
|
39
|
+
|
|
40
|
+
Vaultsmith exists to push the agent in the opposite direction:
|
|
41
|
+
|
|
42
|
+
- inspect the vault before making style claims
|
|
43
|
+
- prefer minimal edits over broad rewrites
|
|
44
|
+
- keep proposals short and reviewable
|
|
45
|
+
- treat vault conventions as a first-class constraint
|
|
46
|
+
- make approval explicit before applying edits
|
|
47
|
+
|
|
48
|
+
## What it does today
|
|
49
|
+
|
|
50
|
+
Vaultsmith currently ships a practical local workflow:
|
|
51
|
+
|
|
52
|
+
- initializes a vault-local `.vaultsmith/` workspace
|
|
53
|
+
- writes role prompts and bootstrap instructions for Codex and Claude
|
|
54
|
+
- launches agent sessions in `tmux`
|
|
55
|
+
- defaults to a review-first flow with proposal and receipt files
|
|
56
|
+
- lets you inspect status, tail output, approve, and apply
|
|
57
|
+
- keeps a small vault memory file for durable conventions
|
|
58
|
+
|
|
59
|
+
It is intentionally narrow right now. The current product is a launcher and guardrail layer for agent-driven vault work, not a full autonomous vault intelligence system yet.
|
|
60
|
+
|
|
61
|
+
## Core idea
|
|
62
|
+
|
|
63
|
+
Vaultsmith should help an agent behave more like the person who owns the vault.
|
|
64
|
+
|
|
65
|
+
That means the agent should learn and respect signals such as:
|
|
66
|
+
|
|
67
|
+
- naming patterns
|
|
68
|
+
- folder placement habits
|
|
69
|
+
- heading structure
|
|
70
|
+
- bullet and checklist style
|
|
71
|
+
- link and tag behavior
|
|
72
|
+
- frontmatter usage
|
|
73
|
+
- note family conventions
|
|
74
|
+
|
|
75
|
+
The long-term direction is simple: when Vaultsmith creates or reorganizes a note, it should feel native to the vault immediately.
|
|
76
|
+
|
|
77
|
+
## Quick start
|
|
78
|
+
|
|
79
|
+
Requirements:
|
|
80
|
+
|
|
81
|
+
- Python 3.11+
|
|
82
|
+
- `pipx`
|
|
83
|
+
- `tmux`
|
|
84
|
+
- at least one supported agent CLI on `PATH`: `codex` or `claude`
|
|
85
|
+
|
|
86
|
+
### One-line install path
|
|
87
|
+
|
|
88
|
+
Today, the shortest install path is directly from GitHub:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
pipx install git+https://github.com/ronut01/Vaultsmith.git
|
|
92
|
+
vsm setup ~/Obsidian/MyVault
|
|
93
|
+
cd ~/Obsidian/MyVault
|
|
94
|
+
vsm run -- "정리해줘"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Why `pipx` is the default
|
|
98
|
+
|
|
99
|
+
Vaultsmith is a CLI tool, not a library. `pipx` is the cleanest default because it installs the command into an isolated environment without making users create a project virtualenv just to try the tool.
|
|
100
|
+
|
|
101
|
+
If you prefer `pip`, install Vaultsmith into a virtual environment:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
python -m venv .venv
|
|
105
|
+
source .venv/bin/activate
|
|
106
|
+
python -m pip install git+https://github.com/ronut01/Vaultsmith.git
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Install for local development
|
|
110
|
+
|
|
111
|
+
If you are working on Vaultsmith itself:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
git clone https://github.com/ronut01/Vaultsmith.git
|
|
115
|
+
cd Vaultsmith
|
|
116
|
+
python -m venv .venv
|
|
117
|
+
source .venv/bin/activate
|
|
118
|
+
python -m pip install -e . pytest
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Distribution status
|
|
122
|
+
|
|
123
|
+
Vaultsmith is not published to PyPI yet.
|
|
124
|
+
|
|
125
|
+
The intended release path is:
|
|
126
|
+
|
|
127
|
+
- `pipx install vaultsmith` for end users
|
|
128
|
+
- `python -m pip install vaultsmith` inside a virtualenv for users who prefer `pip`
|
|
129
|
+
|
|
130
|
+
### First commands
|
|
131
|
+
|
|
132
|
+
Interactive session:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
vsm chat
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
One-shot request:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
vsm run -- "현재 정리 안 된 노트 정리해줘"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Review-first workflow
|
|
145
|
+
|
|
146
|
+
Vaultsmith is designed so the agent proposes work before it applies work.
|
|
147
|
+
|
|
148
|
+
Typical flow:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
vsm run -- "강의 영상 링크 정리해줘"
|
|
152
|
+
vsm review
|
|
153
|
+
vsm approve
|
|
154
|
+
vsm apply
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Useful follow-up commands:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
vsm status
|
|
161
|
+
vsm tail
|
|
162
|
+
vsm sessions
|
|
163
|
+
vsm resume <session-id>
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Behavior notes:
|
|
167
|
+
|
|
168
|
+
- `vsm run` attaches by default so you can respond to trust prompts and other interactive agent questions
|
|
169
|
+
- `vsm run --detach -- "..."` keeps the run in the background and prints recent tmux output
|
|
170
|
+
- `vsm apply` does not patch files itself; it re-dispatches the approved session to the underlying agent and then expects a `receipt.md`
|
|
171
|
+
|
|
172
|
+
## What gets written into a vault
|
|
173
|
+
|
|
174
|
+
Running `vsm setup <vault>` creates a small control plane inside the target vault:
|
|
175
|
+
|
|
176
|
+
```text
|
|
177
|
+
.vaultsmith/
|
|
178
|
+
config.toml
|
|
179
|
+
instructions/
|
|
180
|
+
codex.md
|
|
181
|
+
claude.md
|
|
182
|
+
memory/
|
|
183
|
+
vault-summary.md
|
|
184
|
+
roles/
|
|
185
|
+
input-agent.md
|
|
186
|
+
vault-analyst.md
|
|
187
|
+
research-scout.md
|
|
188
|
+
draft-agent.md
|
|
189
|
+
consistency-reviewer.md
|
|
190
|
+
sessions/
|
|
191
|
+
<session-id>/
|
|
192
|
+
session.json
|
|
193
|
+
proposal.md
|
|
194
|
+
approval.md
|
|
195
|
+
receipt.md
|
|
196
|
+
changes.json
|
|
197
|
+
AGENTS.md
|
|
198
|
+
CLAUDE.md
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Session files matter:
|
|
202
|
+
|
|
203
|
+
- `session.json`: metadata, mode, runtime state, approval state
|
|
204
|
+
- `proposal.md`: short proposed plan and draft output before edits are applied
|
|
205
|
+
- `approval.md`: approval checkpoint
|
|
206
|
+
- `receipt.md`: short execution summary after apply
|
|
207
|
+
- `changes.json`: proposed operations payload when the session provides one
|
|
208
|
+
|
|
209
|
+
## Command overview
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
vsm setup <path> # initialize Vaultsmith in a vault
|
|
213
|
+
vsm chat [path] # start an interactive agent session
|
|
214
|
+
vsm run [path] -- "..." # start a one-shot request
|
|
215
|
+
vsm status [session-id] # inspect current or selected session
|
|
216
|
+
vsm tail [session-id] # show recent tmux output
|
|
217
|
+
vsm review [session-id] # print proposal.md
|
|
218
|
+
vsm approve [session-id] # mark session approved
|
|
219
|
+
vsm apply [session-id] # dispatch approved work
|
|
220
|
+
vsm sessions # list recent sessions
|
|
221
|
+
vsm resume <session-id> # re-attach to tmux session
|
|
222
|
+
vsm alias enable vs # install a shorthand shell alias
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Philosophy
|
|
226
|
+
|
|
227
|
+
Vaultsmith is opinionated in a few ways.
|
|
228
|
+
|
|
229
|
+
### 1. Inspect before generating
|
|
230
|
+
|
|
231
|
+
The vault is the source of truth. The agent should look at local evidence before inventing a structure or style.
|
|
232
|
+
|
|
233
|
+
### 2. Small context beats full-vault scans
|
|
234
|
+
|
|
235
|
+
For most requests, a few relevant notes are better than a noisy global survey.
|
|
236
|
+
|
|
237
|
+
### 3. Review before apply
|
|
238
|
+
|
|
239
|
+
Users should be able to inspect, reject, or refine proposed changes before the agent edits the vault.
|
|
240
|
+
|
|
241
|
+
### 4. Minimal edits over dramatic rewrites
|
|
242
|
+
|
|
243
|
+
Most vault work is maintenance, not greenfield writing. The safe default is a narrow change.
|
|
244
|
+
|
|
245
|
+
## Current scope vs. direction
|
|
246
|
+
|
|
247
|
+
Current scope:
|
|
248
|
+
|
|
249
|
+
- local CLI
|
|
250
|
+
- tmux-backed agent launch
|
|
251
|
+
- vault bootstrap files
|
|
252
|
+
- review-first session workflow
|
|
253
|
+
- basic session state and approval handling
|
|
254
|
+
|
|
255
|
+
Planned direction:
|
|
256
|
+
|
|
257
|
+
- stronger vault-style profiling
|
|
258
|
+
- better note placement and naming inference
|
|
259
|
+
- more explicit explanation for why a note was titled or placed a certain way
|
|
260
|
+
- better support for recurring note families like meetings, research notes, and project updates
|
|
261
|
+
|
|
262
|
+
## Development
|
|
263
|
+
|
|
264
|
+
Run tests:
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
cd Vaultsmith
|
|
268
|
+
source .venv/bin/activate # or the virtualenv you use for local development
|
|
269
|
+
pytest -q
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
Smoke test against a temporary vault:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
mkdir -p /tmp/vsm-smoke-vault
|
|
276
|
+
vsm setup /tmp/vsm-smoke-vault
|
|
277
|
+
cd /tmp/vsm-smoke-vault
|
|
278
|
+
vsm run -- "테스트 노트를 하나 만들고 지금 vault 상태를 설명해줘"
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Status
|
|
282
|
+
|
|
283
|
+
Vaultsmith is early, but the direction is deliberate.
|
|
284
|
+
|
|
285
|
+
The goal is not to bolt AI onto Obsidian. The goal is to make an agent operate inside a vault with enough structure, memory, and review pressure that the output starts to feel like it belongs there.
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
# Vaultsmith
|
|
2
|
+
|
|
3
|
+
**AI for Obsidian that works like the vault owner, not like a generic note bot.**
|
|
4
|
+
|
|
5
|
+
Vaultsmith is a local agent launcher and review-first workflow for Obsidian vaults. It sets up vault-local instructions, starts `codex` or `claude` inside `tmux`, and gives the agent a constrained operating surface so note creation and organization can stay consistent with how the vault already works.
|
|
6
|
+
|
|
7
|
+
## Why Vaultsmith exists
|
|
8
|
+
|
|
9
|
+
Most AI note tooling can generate text.
|
|
10
|
+
|
|
11
|
+
What it usually does badly:
|
|
12
|
+
|
|
13
|
+
- titles notes in a way that does not match the vault
|
|
14
|
+
- picks the wrong folder
|
|
15
|
+
- ignores linking habits and structure conventions
|
|
16
|
+
- rewrites too much when a small edit would do
|
|
17
|
+
- makes users manually clean up the result afterward
|
|
18
|
+
|
|
19
|
+
Vaultsmith exists to push the agent in the opposite direction:
|
|
20
|
+
|
|
21
|
+
- inspect the vault before making style claims
|
|
22
|
+
- prefer minimal edits over broad rewrites
|
|
23
|
+
- keep proposals short and reviewable
|
|
24
|
+
- treat vault conventions as a first-class constraint
|
|
25
|
+
- make approval explicit before applying edits
|
|
26
|
+
|
|
27
|
+
## What it does today
|
|
28
|
+
|
|
29
|
+
Vaultsmith currently ships a practical local workflow:
|
|
30
|
+
|
|
31
|
+
- initializes a vault-local `.vaultsmith/` workspace
|
|
32
|
+
- writes role prompts and bootstrap instructions for Codex and Claude
|
|
33
|
+
- launches agent sessions in `tmux`
|
|
34
|
+
- defaults to a review-first flow with proposal and receipt files
|
|
35
|
+
- lets you inspect status, tail output, approve, and apply
|
|
36
|
+
- keeps a small vault memory file for durable conventions
|
|
37
|
+
|
|
38
|
+
It is intentionally narrow right now. The current product is a launcher and guardrail layer for agent-driven vault work, not a full autonomous vault intelligence system yet.
|
|
39
|
+
|
|
40
|
+
## Core idea
|
|
41
|
+
|
|
42
|
+
Vaultsmith should help an agent behave more like the person who owns the vault.
|
|
43
|
+
|
|
44
|
+
That means the agent should learn and respect signals such as:
|
|
45
|
+
|
|
46
|
+
- naming patterns
|
|
47
|
+
- folder placement habits
|
|
48
|
+
- heading structure
|
|
49
|
+
- bullet and checklist style
|
|
50
|
+
- link and tag behavior
|
|
51
|
+
- frontmatter usage
|
|
52
|
+
- note family conventions
|
|
53
|
+
|
|
54
|
+
The long-term direction is simple: when Vaultsmith creates or reorganizes a note, it should feel native to the vault immediately.
|
|
55
|
+
|
|
56
|
+
## Quick start
|
|
57
|
+
|
|
58
|
+
Requirements:
|
|
59
|
+
|
|
60
|
+
- Python 3.11+
|
|
61
|
+
- `pipx`
|
|
62
|
+
- `tmux`
|
|
63
|
+
- at least one supported agent CLI on `PATH`: `codex` or `claude`
|
|
64
|
+
|
|
65
|
+
### One-line install path
|
|
66
|
+
|
|
67
|
+
Today, the shortest install path is directly from GitHub:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
pipx install git+https://github.com/ronut01/Vaultsmith.git
|
|
71
|
+
vsm setup ~/Obsidian/MyVault
|
|
72
|
+
cd ~/Obsidian/MyVault
|
|
73
|
+
vsm run -- "정리해줘"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Why `pipx` is the default
|
|
77
|
+
|
|
78
|
+
Vaultsmith is a CLI tool, not a library. `pipx` is the cleanest default because it installs the command into an isolated environment without making users create a project virtualenv just to try the tool.
|
|
79
|
+
|
|
80
|
+
If you prefer `pip`, install Vaultsmith into a virtual environment:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
python -m venv .venv
|
|
84
|
+
source .venv/bin/activate
|
|
85
|
+
python -m pip install git+https://github.com/ronut01/Vaultsmith.git
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Install for local development
|
|
89
|
+
|
|
90
|
+
If you are working on Vaultsmith itself:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
git clone https://github.com/ronut01/Vaultsmith.git
|
|
94
|
+
cd Vaultsmith
|
|
95
|
+
python -m venv .venv
|
|
96
|
+
source .venv/bin/activate
|
|
97
|
+
python -m pip install -e . pytest
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Distribution status
|
|
101
|
+
|
|
102
|
+
Vaultsmith is not published to PyPI yet.
|
|
103
|
+
|
|
104
|
+
The intended release path is:
|
|
105
|
+
|
|
106
|
+
- `pipx install vaultsmith` for end users
|
|
107
|
+
- `python -m pip install vaultsmith` inside a virtualenv for users who prefer `pip`
|
|
108
|
+
|
|
109
|
+
### First commands
|
|
110
|
+
|
|
111
|
+
Interactive session:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
vsm chat
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
One-shot request:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
vsm run -- "현재 정리 안 된 노트 정리해줘"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Review-first workflow
|
|
124
|
+
|
|
125
|
+
Vaultsmith is designed so the agent proposes work before it applies work.
|
|
126
|
+
|
|
127
|
+
Typical flow:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
vsm run -- "강의 영상 링크 정리해줘"
|
|
131
|
+
vsm review
|
|
132
|
+
vsm approve
|
|
133
|
+
vsm apply
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Useful follow-up commands:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
vsm status
|
|
140
|
+
vsm tail
|
|
141
|
+
vsm sessions
|
|
142
|
+
vsm resume <session-id>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Behavior notes:
|
|
146
|
+
|
|
147
|
+
- `vsm run` attaches by default so you can respond to trust prompts and other interactive agent questions
|
|
148
|
+
- `vsm run --detach -- "..."` keeps the run in the background and prints recent tmux output
|
|
149
|
+
- `vsm apply` does not patch files itself; it re-dispatches the approved session to the underlying agent and then expects a `receipt.md`
|
|
150
|
+
|
|
151
|
+
## What gets written into a vault
|
|
152
|
+
|
|
153
|
+
Running `vsm setup <vault>` creates a small control plane inside the target vault:
|
|
154
|
+
|
|
155
|
+
```text
|
|
156
|
+
.vaultsmith/
|
|
157
|
+
config.toml
|
|
158
|
+
instructions/
|
|
159
|
+
codex.md
|
|
160
|
+
claude.md
|
|
161
|
+
memory/
|
|
162
|
+
vault-summary.md
|
|
163
|
+
roles/
|
|
164
|
+
input-agent.md
|
|
165
|
+
vault-analyst.md
|
|
166
|
+
research-scout.md
|
|
167
|
+
draft-agent.md
|
|
168
|
+
consistency-reviewer.md
|
|
169
|
+
sessions/
|
|
170
|
+
<session-id>/
|
|
171
|
+
session.json
|
|
172
|
+
proposal.md
|
|
173
|
+
approval.md
|
|
174
|
+
receipt.md
|
|
175
|
+
changes.json
|
|
176
|
+
AGENTS.md
|
|
177
|
+
CLAUDE.md
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Session files matter:
|
|
181
|
+
|
|
182
|
+
- `session.json`: metadata, mode, runtime state, approval state
|
|
183
|
+
- `proposal.md`: short proposed plan and draft output before edits are applied
|
|
184
|
+
- `approval.md`: approval checkpoint
|
|
185
|
+
- `receipt.md`: short execution summary after apply
|
|
186
|
+
- `changes.json`: proposed operations payload when the session provides one
|
|
187
|
+
|
|
188
|
+
## Command overview
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
vsm setup <path> # initialize Vaultsmith in a vault
|
|
192
|
+
vsm chat [path] # start an interactive agent session
|
|
193
|
+
vsm run [path] -- "..." # start a one-shot request
|
|
194
|
+
vsm status [session-id] # inspect current or selected session
|
|
195
|
+
vsm tail [session-id] # show recent tmux output
|
|
196
|
+
vsm review [session-id] # print proposal.md
|
|
197
|
+
vsm approve [session-id] # mark session approved
|
|
198
|
+
vsm apply [session-id] # dispatch approved work
|
|
199
|
+
vsm sessions # list recent sessions
|
|
200
|
+
vsm resume <session-id> # re-attach to tmux session
|
|
201
|
+
vsm alias enable vs # install a shorthand shell alias
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Philosophy
|
|
205
|
+
|
|
206
|
+
Vaultsmith is opinionated in a few ways.
|
|
207
|
+
|
|
208
|
+
### 1. Inspect before generating
|
|
209
|
+
|
|
210
|
+
The vault is the source of truth. The agent should look at local evidence before inventing a structure or style.
|
|
211
|
+
|
|
212
|
+
### 2. Small context beats full-vault scans
|
|
213
|
+
|
|
214
|
+
For most requests, a few relevant notes are better than a noisy global survey.
|
|
215
|
+
|
|
216
|
+
### 3. Review before apply
|
|
217
|
+
|
|
218
|
+
Users should be able to inspect, reject, or refine proposed changes before the agent edits the vault.
|
|
219
|
+
|
|
220
|
+
### 4. Minimal edits over dramatic rewrites
|
|
221
|
+
|
|
222
|
+
Most vault work is maintenance, not greenfield writing. The safe default is a narrow change.
|
|
223
|
+
|
|
224
|
+
## Current scope vs. direction
|
|
225
|
+
|
|
226
|
+
Current scope:
|
|
227
|
+
|
|
228
|
+
- local CLI
|
|
229
|
+
- tmux-backed agent launch
|
|
230
|
+
- vault bootstrap files
|
|
231
|
+
- review-first session workflow
|
|
232
|
+
- basic session state and approval handling
|
|
233
|
+
|
|
234
|
+
Planned direction:
|
|
235
|
+
|
|
236
|
+
- stronger vault-style profiling
|
|
237
|
+
- better note placement and naming inference
|
|
238
|
+
- more explicit explanation for why a note was titled or placed a certain way
|
|
239
|
+
- better support for recurring note families like meetings, research notes, and project updates
|
|
240
|
+
|
|
241
|
+
## Development
|
|
242
|
+
|
|
243
|
+
Run tests:
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
cd Vaultsmith
|
|
247
|
+
source .venv/bin/activate # or the virtualenv you use for local development
|
|
248
|
+
pytest -q
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Smoke test against a temporary vault:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
mkdir -p /tmp/vsm-smoke-vault
|
|
255
|
+
vsm setup /tmp/vsm-smoke-vault
|
|
256
|
+
cd /tmp/vsm-smoke-vault
|
|
257
|
+
vsm run -- "테스트 노트를 하나 만들고 지금 vault 상태를 설명해줘"
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## Status
|
|
261
|
+
|
|
262
|
+
Vaultsmith is early, but the direction is deliberate.
|
|
263
|
+
|
|
264
|
+
The goal is not to bolt AI onto Obsidian. The goal is to make an agent operate inside a vault with enough structure, memory, and review pressure that the output starts to feel like it belongs there.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "vaultsmith"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Agent launcher and tmux orchestrator for Obsidian vault workflows."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
authors = [
|
|
12
|
+
{ name = "Vaultsmith" }
|
|
13
|
+
]
|
|
14
|
+
dependencies = []
|
|
15
|
+
keywords = ["obsidian", "obsidian-vault", "ai-agents", "note-taking", "tmux"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
19
|
+
"Programming Language :: Python :: 3.11",
|
|
20
|
+
"Programming Language :: Python :: 3.12",
|
|
21
|
+
"Programming Language :: Python :: 3.13",
|
|
22
|
+
"Environment :: Console",
|
|
23
|
+
"Intended Audience :: End Users/Desktop",
|
|
24
|
+
"Topic :: Text Processing :: Markup :: Markdown",
|
|
25
|
+
"Topic :: Utilities",
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
[project.urls]
|
|
29
|
+
Homepage = "https://github.com/ronut01/Vaultsmith"
|
|
30
|
+
Repository = "https://github.com/ronut01/Vaultsmith"
|
|
31
|
+
Issues = "https://github.com/ronut01/Vaultsmith/issues"
|
|
32
|
+
|
|
33
|
+
[project.scripts]
|
|
34
|
+
vsm = "vaultsmith.cli:main"
|
|
35
|
+
|
|
36
|
+
[tool.setuptools]
|
|
37
|
+
package-dir = {"" = "src"}
|
|
38
|
+
|
|
39
|
+
[tool.setuptools.packages.find]
|
|
40
|
+
where = ["src"]
|
|
41
|
+
|
|
42
|
+
[tool.pytest.ini_options]
|
|
43
|
+
testpaths = ["tests"]
|