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.
@@ -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"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,5 @@
1
+ """Vaultsmith package."""
2
+
3
+ __all__ = ["__version__"]
4
+
5
+ __version__ = "0.1.0"
@@ -0,0 +1,5 @@
1
+ from vaultsmith.cli import main
2
+
3
+
4
+ if __name__ == "__main__":
5
+ raise SystemExit(main())