artifold 0.5.2__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.
- artifold-0.5.2/.gitignore +19 -0
- artifold-0.5.2/LICENSE +21 -0
- artifold-0.5.2/PKG-INFO +325 -0
- artifold-0.5.2/README.md +296 -0
- artifold-0.5.2/artifold/__init__.py +2 -0
- artifold-0.5.2/artifold/build.py +31 -0
- artifold-0.5.2/artifold/cli.py +553 -0
- artifold-0.5.2/artifold/config.py +101 -0
- artifold-0.5.2/artifold/design.py +139 -0
- artifold-0.5.2/artifold/detect.py +48 -0
- artifold-0.5.2/artifold/diagnostics.py +193 -0
- artifold-0.5.2/artifold/importer.py +129 -0
- artifold-0.5.2/artifold/intent.py +137 -0
- artifold-0.5.2/artifold/paths.py +36 -0
- artifold-0.5.2/artifold/provenance.py +95 -0
- artifold-0.5.2/artifold/scan.py +347 -0
- artifold-0.5.2/artifold/serve.py +330 -0
- artifold-0.5.2/artifold/share.py +300 -0
- artifold-0.5.2/artifold/shoot.py +119 -0
- artifold-0.5.2/artifold/skills/__init__.py +0 -0
- artifold-0.5.2/artifold/skills/craft/SKILL.md +184 -0
- artifold-0.5.2/artifold/skills/craft/__init__.py +0 -0
- artifold-0.5.2/artifold/template.html +1396 -0
- artifold-0.5.2/pyproject.toml +60 -0
artifold-0.5.2/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Shubham Goel
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
artifold-0.5.2/PKG-INFO
ADDED
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: artifold
|
|
3
|
+
Version: 0.5.2
|
|
4
|
+
Summary: Local-first library for your AI-generated HTML artifacts (Claude, ChatGPT, v0, …).
|
|
5
|
+
Project-URL: Homepage, https://github.com/shubhamgoel27/artifold
|
|
6
|
+
Project-URL: Repository, https://github.com/shubhamgoel27/artifold
|
|
7
|
+
Project-URL: Issues, https://github.com/shubhamgoel27/artifold/issues
|
|
8
|
+
Project-URL: Documentation, https://github.com/shubhamgoel27/artifold#readme
|
|
9
|
+
Project-URL: Changelog, https://github.com/shubhamgoel27/artifold/blob/main/tasks/
|
|
10
|
+
Author: Shubham Goel
|
|
11
|
+
License: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: artifacts,chatgpt,claude,dashboard,html,llm,local-first
|
|
14
|
+
Classifier: Development Status :: 3 - Alpha
|
|
15
|
+
Classifier: Environment :: Console
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Operating System :: MacOS
|
|
19
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Topic :: Utilities
|
|
22
|
+
Requires-Python: >=3.10
|
|
23
|
+
Requires-Dist: platformdirs>=4.0
|
|
24
|
+
Requires-Dist: playwright==1.51.0
|
|
25
|
+
Requires-Dist: watchdog>=4.0
|
|
26
|
+
Provides-Extra: intent
|
|
27
|
+
Requires-Dist: anthropic>=0.40; extra == 'intent'
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
|
|
30
|
+
# Artifold
|
|
31
|
+
|
|
32
|
+
**Your AI artifacts have a home now.** Index, search, preview, **share with one click**, and use your past work as the style guide for your next one.
|
|
33
|
+
|
|
34
|
+

|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
> *"I've started preferring HTML as an output format instead of Markdown.
|
|
39
|
+
> The added expressiveness means I get overall better output, and the chance
|
|
40
|
+
> of someone actually reading your spec, report or PR writeup is much higher
|
|
41
|
+
> if it's in HTML. … When writing this article, I asked Claude Code to read
|
|
42
|
+
> through my code folder and find all the HTML files I've generated, group
|
|
43
|
+
> and categorize them …"*
|
|
44
|
+
>
|
|
45
|
+
> — Thariq, *[The Unreasonable Effectiveness of HTML](https://x.com/trq212/status/2052809885763747935)* (Claude Code team)
|
|
46
|
+
|
|
47
|
+
**Artifold is that library.** If you're shifting from Markdown to HTML for
|
|
48
|
+
specs, reports, designs, prototypes, throwaway editors — the way Thariq
|
|
49
|
+
describes — Artifold is where they live.
|
|
50
|
+
|
|
51
|
+
You've been making a lot of HTML with AI lately: Claude Artifacts,
|
|
52
|
+
ChatGPT Canvas, v0, Lovable, Cursor. They land in `~/Downloads` or some
|
|
53
|
+
project folder, you bookmark a tab, you mean to come back to that ROI
|
|
54
|
+
calculator you made three weeks ago — and you can't find it.
|
|
55
|
+
|
|
56
|
+
That's the whole reason this exists. I made a 30-day workout tracker
|
|
57
|
+
for my partner, lost it in a maze of folders, regenerated a worse
|
|
58
|
+
version, and decided to just build the index myself.
|
|
59
|
+
|
|
60
|
+
Local-first, fast, runs entirely on your machine. Plus the part where,
|
|
61
|
+
when you *do* want to share an artifact, it's one click to a permanent
|
|
62
|
+
public URL.
|
|
63
|
+
|
|
64
|
+
## Three things you can do
|
|
65
|
+
|
|
66
|
+
### 1. ✨ Share any artifact in seconds → public URL anyone can open
|
|
67
|
+
|
|
68
|
+
Click any card → hit the share icon → in ~30 seconds you get back a
|
|
69
|
+
permanent URL like `https://you.github.io/artifold-share/abc12345.html`
|
|
70
|
+
that you can paste into iMessage, Slack, email, anywhere. URL is copied
|
|
71
|
+
to your clipboard automatically.
|
|
72
|
+
|
|
73
|
+
Free forever (uses your GitHub Pages quota — no Artifold infrastructure,
|
|
74
|
+
no sign-up, no per-share fees, no expiry). Anyone with the link sees
|
|
75
|
+
the fully-rendered report; recipient needs nothing installed.
|
|
76
|
+
|
|
77
|
+

|
|
78
|
+
|
|
79
|
+
### 2. 📚 Browse everything you've made, in one place
|
|
80
|
+
|
|
81
|
+
Sidebar filters by tool, status (shared / local), category, date.
|
|
82
|
+
⌘K palette to jump to anything by name, prompt, or intent. Click → in-app
|
|
83
|
+
preview pane, no tab spam. Dark/light themes. Live auto-rescan — drop
|
|
84
|
+
a new file in any watched folder and it appears within seconds.
|
|
85
|
+
|
|
86
|
+

|
|
87
|
+
|
|
88
|
+
### 3. 🎨 Generate new artifacts that match your style — `/craft` skill
|
|
89
|
+
|
|
90
|
+
After installing the Claude Code skill, type `/craft a 30-day strength
|
|
91
|
+
tracker for a beginner` in any session. The skill:
|
|
92
|
+
|
|
93
|
+
- Reads your library to see styles you've used, then deliberately picks
|
|
94
|
+
a *different* direction so your next artifact doesn't look like the
|
|
95
|
+
last one (the "all AI output looks the same" problem, actively fought)
|
|
96
|
+
- OR inherits a specific style: `/craft a poker probability explainer,
|
|
97
|
+
like dobble` — pulls dobble's actual CSS as the design baseline
|
|
98
|
+
- Applies 12 opinionated design principles distilled from Refactoring UI,
|
|
99
|
+
Linear, and Vercel/Geist (every one cited)
|
|
100
|
+
- Avoids 15 specific AI-slop signatures (purple-gradient hero, identical
|
|
101
|
+
bento cards, decorative emoji on every list item, glassmorphism, etc.)
|
|
102
|
+
- Saves to `~/artifold-inbox/2026-05-26-<topic>.html` — auto-indexed in
|
|
103
|
+
Artifold within ~2 seconds
|
|
104
|
+
|
|
105
|
+
Your past work becomes your style guide for the next one. The loop closes.
|
|
106
|
+
|
|
107
|
+
## Install
|
|
108
|
+
|
|
109
|
+
### 🪄 Easiest: ask Claude Code to do it
|
|
110
|
+
|
|
111
|
+
If you have [Claude Code](https://claude.com/claude-code), paste this
|
|
112
|
+
prompt — Claude figures out the rest, installs everything, and walks
|
|
113
|
+
you through first-run:
|
|
114
|
+
|
|
115
|
+
> [!TIP]
|
|
116
|
+
> **Copy this into Claude Code:**
|
|
117
|
+
>
|
|
118
|
+
> ```
|
|
119
|
+
> Install Artifold from https://github.com/shubhamgoel27/artifold using pipx
|
|
120
|
+
> (or pip if pipx isn't installed). Then run `artifold init` and help me
|
|
121
|
+
> pick a folder to watch. After that, run `artifold install-skill` to set
|
|
122
|
+
> up the /craft skill. Open the dashboard when ready and tell me what
|
|
123
|
+
> to try first.
|
|
124
|
+
> ```
|
|
125
|
+
|
|
126
|
+
That's the whole install. No terminal commands to memorize, no
|
|
127
|
+
dependencies to debug — Claude handles the awkward parts.
|
|
128
|
+
|
|
129
|
+
### Or do it yourself
|
|
130
|
+
|
|
131
|
+
If you'd rather drive:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
pipx install artifold # or: pip install artifold
|
|
135
|
+
artifold init # interactive wizard
|
|
136
|
+
artifold # serves dashboard + opens browser
|
|
137
|
+
artifold install-skill # adds /craft to ~/.claude/skills/
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Don't have `pipx`? Run `brew install pipx` (mac) or `python -m pip
|
|
141
|
+
install --user pipx` (anywhere), then the above.
|
|
142
|
+
|
|
143
|
+
### After install, in Claude Code
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
/craft a one-pager comparing three SF apartments
|
|
147
|
+
/craft a 30-day strength tracker, like my last one
|
|
148
|
+
/craft a probability explainer for poker, in the style of dobble
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
(Restart Claude Code once after `artifold install-skill` so the skill loads.)
|
|
152
|
+
|
|
153
|
+
The first run installs Playwright's headless Chromium (~170 MB) for
|
|
154
|
+
artifact thumbnails. After that, only new/changed files re-shoot.
|
|
155
|
+
|
|
156
|
+
## What it actually does
|
|
157
|
+
|
|
158
|
+
**Auto-indexes** every `*.html` in your watched folders. Groups
|
|
159
|
+
`-v2`, ` (1)`, `print` variants into one card with a version dropdown.
|
|
160
|
+
Skips templates, `.git` repos, and anything buried 3 levels deep — your
|
|
161
|
+
library stays clean even when your folders aren't.
|
|
162
|
+
|
|
163
|
+
**Source-aware** — fingerprints Claude / ChatGPT / v0 / Lovable / Bolt
|
|
164
|
+
/ Gemini artifacts from HTML markers, tags each card with the tool that
|
|
165
|
+
made it. Also reads `<meta name="artifold:*">` tags (which the `/craft`
|
|
166
|
+
skill emits) for zero-effort provenance.
|
|
167
|
+
|
|
168
|
+
**Visual** — every artifact gets a real screenshot thumbnail. Click a
|
|
169
|
+
card → slide-out preview pane with tabs for Provenance (source URL,
|
|
170
|
+
prompt, model, tags) and Design (palette swatches, fonts, mood flags).
|
|
171
|
+
|
|
172
|
+
**Live** — `artifold serve` watches your folders. Drop in a new artifact
|
|
173
|
+
and it appears in the dashboard within ~2 seconds, no refresh.
|
|
174
|
+
|
|
175
|
+
**Searchable** — ⌘K palette runs across titles, prompts, intents, and
|
|
176
|
+
exposed actions (toggle theme, switch view, rescan, import). Linear /
|
|
177
|
+
Raycast pattern.
|
|
178
|
+
|
|
179
|
+

|
|
180
|
+

|
|
181
|
+
|
|
182
|
+
## All commands
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
artifold # default: scan + serve + open browser
|
|
186
|
+
artifold init # interactive setup wizard
|
|
187
|
+
artifold add <dir> # watch another folder
|
|
188
|
+
artifold roots # list watched folders
|
|
189
|
+
artifold scan # one-shot rescan
|
|
190
|
+
artifold open # open the existing dashboard
|
|
191
|
+
|
|
192
|
+
artifold share <file> # publish to public URL + copy to clipboard
|
|
193
|
+
artifold share --list # all shares
|
|
194
|
+
artifold share --revoke <id> # take a public share down
|
|
195
|
+
|
|
196
|
+
artifold import <url> # fetch a public Claude/v0/Lovable share URL
|
|
197
|
+
artifold link <file> --tool claude --source URL --prompt "..."
|
|
198
|
+
artifold info <file> # show provenance for a file
|
|
199
|
+
|
|
200
|
+
artifold designs # list design fingerprints
|
|
201
|
+
artifold designs <id> --template # dump CSS + skeleton (paste into Claude)
|
|
202
|
+
|
|
203
|
+
artifold inbox [topic] # print the canonical path for a new artifact
|
|
204
|
+
artifold install-skill # install /craft into ~/.claude/skills/
|
|
205
|
+
artifold doctor # check setup; tells you exactly what to fix
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Config
|
|
209
|
+
|
|
210
|
+
`~/Library/Application Support/artifold/config.json` on macOS,
|
|
211
|
+
`~/.config/artifold/config.json` on Linux:
|
|
212
|
+
|
|
213
|
+
```jsonc
|
|
214
|
+
{
|
|
215
|
+
"roots": ["/Users/me/Downloads", "/Users/me/work"],
|
|
216
|
+
"allow_repos": [], // dirs with their own .git to include anyway
|
|
217
|
+
"max_depth": 3,
|
|
218
|
+
"drop_dir": null, // where `artifold import` saves (default ~/artifold-inbox)
|
|
219
|
+
"enable_intent": false, // opt-in LLM intent metadata (Claude Haiku)
|
|
220
|
+
"categories": { // extend the auto-tag keywords
|
|
221
|
+
"Research": ["paper", "experiment", "ablation"]
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Cache (thumbnails, manifest, dashboard, Playwright Chromium) lives
|
|
227
|
+
under `~/Library/Caches/artifold/`. Wiping it just regenerates everything
|
|
228
|
+
from your real files — cache is replaceable, your source files are sacred.
|
|
229
|
+
|
|
230
|
+
## Keyboard
|
|
231
|
+
|
|
232
|
+
| Key | What |
|
|
233
|
+
|-----------------|------|
|
|
234
|
+
| `⌘K` / `Ctrl+K` | palette (actions + artifact search) |
|
|
235
|
+
| `↵` | open selected in preview / run action |
|
|
236
|
+
| `⇧↵` | open selected in new tab |
|
|
237
|
+
| `Esc` | close palette / preview |
|
|
238
|
+
| `/` | focus the search box |
|
|
239
|
+
| Click card | open in preview pane (in-app, no tab spam) |
|
|
240
|
+
| `⌘`/`Ctrl`-click | open in a new browser tab |
|
|
241
|
+
|
|
242
|
+
## Optional: AI intent layer
|
|
243
|
+
|
|
244
|
+
Artifold's core is **fully local — no LLM, no network, no API key required**.
|
|
245
|
+
|
|
246
|
+
If you want richer metadata (a one-line intent per artifact, topic tags,
|
|
247
|
+
audience detection — used for smarter search):
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
pipx install 'artifold[intent]'
|
|
251
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
252
|
+
artifold scan --intent
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
~$0.003 per artifact with Claude Haiku, cached forever by content hash
|
|
256
|
+
so re-scans are free. ~$0.05 for 15 artifacts. Toggle off with
|
|
257
|
+
`artifold scan --no-intent`. Skip the extra and the feature simply
|
|
258
|
+
doesn't appear.
|
|
259
|
+
|
|
260
|
+
## What Artifold is not
|
|
261
|
+
|
|
262
|
+
- **Not a cloud product.** Nothing leaves your machine unless you
|
|
263
|
+
explicitly `artifold share`. There's no sign-up, no account, no Artifold
|
|
264
|
+
server somewhere. Your library is `~/artifold-inbox/` and the dirs you
|
|
265
|
+
pointed it at — that's it.
|
|
266
|
+
- **Not a replacement for git** or your existing organization. It's a
|
|
267
|
+
*lens* on whatever you already have.
|
|
268
|
+
- **Not opinionated about where your files live.** Multi-root by
|
|
269
|
+
design. Want it to watch `~/Downloads` + `~/Documents` +
|
|
270
|
+
`~/work/reports`? Run `artifold add` three times.
|
|
271
|
+
- **Not trying to be everything for everyone.** Built for the specific
|
|
272
|
+
pain of "where did I put that thing I generated last month."
|
|
273
|
+
|
|
274
|
+
## Why "Artifold"
|
|
275
|
+
|
|
276
|
+
A artifold is a working collection of pages that informs your next piece
|
|
277
|
+
of work. Your past artifacts become the reference set for the next one.
|
|
278
|
+
It's not an archive (cold storage), it's a working library.
|
|
279
|
+
|
|
280
|
+
The PyPI package is `artifold` because `artifold` was taken. CLI command is
|
|
281
|
+
`artifold`. Same pattern as `open-interpreter` / `interpreter`.
|
|
282
|
+
|
|
283
|
+
## Status
|
|
284
|
+
|
|
285
|
+
**v0.5, alpha.** Tested on macOS Sequoia; Linux should work; Windows
|
|
286
|
+
untested. Single-developer project made in evenings — issues + PRs
|
|
287
|
+
welcome, but I'm shipping what I personally use rather than what's
|
|
288
|
+
broadly polished.
|
|
289
|
+
|
|
290
|
+
If you try it and something feels off, [open an issue](../../issues/new) —
|
|
291
|
+
even one line is helpful, "the X button is confusing" is exactly the
|
|
292
|
+
feedback that improves things.
|
|
293
|
+
|
|
294
|
+
## Roadmap
|
|
295
|
+
|
|
296
|
+
In rough priority order:
|
|
297
|
+
|
|
298
|
+
- [ ] **Mobile dashboard** — currently breaks below 760px
|
|
299
|
+
- [ ] **`artifold adopt <file>`** — opt-in consolidation into `~/artifold-inbox/`
|
|
300
|
+
for existing files (keeping multi-root for those who want it)
|
|
301
|
+
- [ ] **Cloudflare Pages backend** for `artifold share` (alternative to GH
|
|
302
|
+
Pages for users without `gh` CLI)
|
|
303
|
+
- [ ] **`artifold generate --like <id>`** — direct one-command generation,
|
|
304
|
+
opt-in via `[intent]` extra
|
|
305
|
+
- [ ] **Markdown rendering** — first-class support for `*.md`
|
|
306
|
+
- [ ] **Semantic search** — when you remember the gist but not the title
|
|
307
|
+
- [ ] **Version diff view** — when you iterate v1/v2/v3, see what changed
|
|
308
|
+
- [ ] **A real test suite** — currently human-tested
|
|
309
|
+
|
|
310
|
+
## Made by
|
|
311
|
+
|
|
312
|
+
[@shubhamgoel27](https://github.com/shubhamgoel27) — built because I
|
|
313
|
+
genuinely needed it. If you find it useful, **starring the repo is the
|
|
314
|
+
single best thing you can do** so other people building with AI find it.
|
|
315
|
+
|
|
316
|
+
The `/craft` skill took real research to make non-generic — the 12
|
|
317
|
+
design principles trace to Refactoring UI chapters, Linear's
|
|
318
|
+
[Method](https://linear.app/method/introduction), Vercel's
|
|
319
|
+
[Geist](https://vercel.com/geist), and a couple of recent AI-slop
|
|
320
|
+
critique articles. If you ship cool reports with it, tag me — I love
|
|
321
|
+
seeing what people make.
|
|
322
|
+
|
|
323
|
+
## License
|
|
324
|
+
|
|
325
|
+
MIT
|
artifold-0.5.2/README.md
ADDED
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
# Artifold
|
|
2
|
+
|
|
3
|
+
**Your AI artifacts have a home now.** Index, search, preview, **share with one click**, and use your past work as the style guide for your next one.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
> *"I've started preferring HTML as an output format instead of Markdown.
|
|
10
|
+
> The added expressiveness means I get overall better output, and the chance
|
|
11
|
+
> of someone actually reading your spec, report or PR writeup is much higher
|
|
12
|
+
> if it's in HTML. … When writing this article, I asked Claude Code to read
|
|
13
|
+
> through my code folder and find all the HTML files I've generated, group
|
|
14
|
+
> and categorize them …"*
|
|
15
|
+
>
|
|
16
|
+
> — Thariq, *[The Unreasonable Effectiveness of HTML](https://x.com/trq212/status/2052809885763747935)* (Claude Code team)
|
|
17
|
+
|
|
18
|
+
**Artifold is that library.** If you're shifting from Markdown to HTML for
|
|
19
|
+
specs, reports, designs, prototypes, throwaway editors — the way Thariq
|
|
20
|
+
describes — Artifold is where they live.
|
|
21
|
+
|
|
22
|
+
You've been making a lot of HTML with AI lately: Claude Artifacts,
|
|
23
|
+
ChatGPT Canvas, v0, Lovable, Cursor. They land in `~/Downloads` or some
|
|
24
|
+
project folder, you bookmark a tab, you mean to come back to that ROI
|
|
25
|
+
calculator you made three weeks ago — and you can't find it.
|
|
26
|
+
|
|
27
|
+
That's the whole reason this exists. I made a 30-day workout tracker
|
|
28
|
+
for my partner, lost it in a maze of folders, regenerated a worse
|
|
29
|
+
version, and decided to just build the index myself.
|
|
30
|
+
|
|
31
|
+
Local-first, fast, runs entirely on your machine. Plus the part where,
|
|
32
|
+
when you *do* want to share an artifact, it's one click to a permanent
|
|
33
|
+
public URL.
|
|
34
|
+
|
|
35
|
+
## Three things you can do
|
|
36
|
+
|
|
37
|
+
### 1. ✨ Share any artifact in seconds → public URL anyone can open
|
|
38
|
+
|
|
39
|
+
Click any card → hit the share icon → in ~30 seconds you get back a
|
|
40
|
+
permanent URL like `https://you.github.io/artifold-share/abc12345.html`
|
|
41
|
+
that you can paste into iMessage, Slack, email, anywhere. URL is copied
|
|
42
|
+
to your clipboard automatically.
|
|
43
|
+
|
|
44
|
+
Free forever (uses your GitHub Pages quota — no Artifold infrastructure,
|
|
45
|
+
no sign-up, no per-share fees, no expiry). Anyone with the link sees
|
|
46
|
+
the fully-rendered report; recipient needs nothing installed.
|
|
47
|
+
|
|
48
|
+

|
|
49
|
+
|
|
50
|
+
### 2. 📚 Browse everything you've made, in one place
|
|
51
|
+
|
|
52
|
+
Sidebar filters by tool, status (shared / local), category, date.
|
|
53
|
+
⌘K palette to jump to anything by name, prompt, or intent. Click → in-app
|
|
54
|
+
preview pane, no tab spam. Dark/light themes. Live auto-rescan — drop
|
|
55
|
+
a new file in any watched folder and it appears within seconds.
|
|
56
|
+
|
|
57
|
+

|
|
58
|
+
|
|
59
|
+
### 3. 🎨 Generate new artifacts that match your style — `/craft` skill
|
|
60
|
+
|
|
61
|
+
After installing the Claude Code skill, type `/craft a 30-day strength
|
|
62
|
+
tracker for a beginner` in any session. The skill:
|
|
63
|
+
|
|
64
|
+
- Reads your library to see styles you've used, then deliberately picks
|
|
65
|
+
a *different* direction so your next artifact doesn't look like the
|
|
66
|
+
last one (the "all AI output looks the same" problem, actively fought)
|
|
67
|
+
- OR inherits a specific style: `/craft a poker probability explainer,
|
|
68
|
+
like dobble` — pulls dobble's actual CSS as the design baseline
|
|
69
|
+
- Applies 12 opinionated design principles distilled from Refactoring UI,
|
|
70
|
+
Linear, and Vercel/Geist (every one cited)
|
|
71
|
+
- Avoids 15 specific AI-slop signatures (purple-gradient hero, identical
|
|
72
|
+
bento cards, decorative emoji on every list item, glassmorphism, etc.)
|
|
73
|
+
- Saves to `~/artifold-inbox/2026-05-26-<topic>.html` — auto-indexed in
|
|
74
|
+
Artifold within ~2 seconds
|
|
75
|
+
|
|
76
|
+
Your past work becomes your style guide for the next one. The loop closes.
|
|
77
|
+
|
|
78
|
+
## Install
|
|
79
|
+
|
|
80
|
+
### 🪄 Easiest: ask Claude Code to do it
|
|
81
|
+
|
|
82
|
+
If you have [Claude Code](https://claude.com/claude-code), paste this
|
|
83
|
+
prompt — Claude figures out the rest, installs everything, and walks
|
|
84
|
+
you through first-run:
|
|
85
|
+
|
|
86
|
+
> [!TIP]
|
|
87
|
+
> **Copy this into Claude Code:**
|
|
88
|
+
>
|
|
89
|
+
> ```
|
|
90
|
+
> Install Artifold from https://github.com/shubhamgoel27/artifold using pipx
|
|
91
|
+
> (or pip if pipx isn't installed). Then run `artifold init` and help me
|
|
92
|
+
> pick a folder to watch. After that, run `artifold install-skill` to set
|
|
93
|
+
> up the /craft skill. Open the dashboard when ready and tell me what
|
|
94
|
+
> to try first.
|
|
95
|
+
> ```
|
|
96
|
+
|
|
97
|
+
That's the whole install. No terminal commands to memorize, no
|
|
98
|
+
dependencies to debug — Claude handles the awkward parts.
|
|
99
|
+
|
|
100
|
+
### Or do it yourself
|
|
101
|
+
|
|
102
|
+
If you'd rather drive:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
pipx install artifold # or: pip install artifold
|
|
106
|
+
artifold init # interactive wizard
|
|
107
|
+
artifold # serves dashboard + opens browser
|
|
108
|
+
artifold install-skill # adds /craft to ~/.claude/skills/
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Don't have `pipx`? Run `brew install pipx` (mac) or `python -m pip
|
|
112
|
+
install --user pipx` (anywhere), then the above.
|
|
113
|
+
|
|
114
|
+
### After install, in Claude Code
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
/craft a one-pager comparing three SF apartments
|
|
118
|
+
/craft a 30-day strength tracker, like my last one
|
|
119
|
+
/craft a probability explainer for poker, in the style of dobble
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
(Restart Claude Code once after `artifold install-skill` so the skill loads.)
|
|
123
|
+
|
|
124
|
+
The first run installs Playwright's headless Chromium (~170 MB) for
|
|
125
|
+
artifact thumbnails. After that, only new/changed files re-shoot.
|
|
126
|
+
|
|
127
|
+
## What it actually does
|
|
128
|
+
|
|
129
|
+
**Auto-indexes** every `*.html` in your watched folders. Groups
|
|
130
|
+
`-v2`, ` (1)`, `print` variants into one card with a version dropdown.
|
|
131
|
+
Skips templates, `.git` repos, and anything buried 3 levels deep — your
|
|
132
|
+
library stays clean even when your folders aren't.
|
|
133
|
+
|
|
134
|
+
**Source-aware** — fingerprints Claude / ChatGPT / v0 / Lovable / Bolt
|
|
135
|
+
/ Gemini artifacts from HTML markers, tags each card with the tool that
|
|
136
|
+
made it. Also reads `<meta name="artifold:*">` tags (which the `/craft`
|
|
137
|
+
skill emits) for zero-effort provenance.
|
|
138
|
+
|
|
139
|
+
**Visual** — every artifact gets a real screenshot thumbnail. Click a
|
|
140
|
+
card → slide-out preview pane with tabs for Provenance (source URL,
|
|
141
|
+
prompt, model, tags) and Design (palette swatches, fonts, mood flags).
|
|
142
|
+
|
|
143
|
+
**Live** — `artifold serve` watches your folders. Drop in a new artifact
|
|
144
|
+
and it appears in the dashboard within ~2 seconds, no refresh.
|
|
145
|
+
|
|
146
|
+
**Searchable** — ⌘K palette runs across titles, prompts, intents, and
|
|
147
|
+
exposed actions (toggle theme, switch view, rescan, import). Linear /
|
|
148
|
+
Raycast pattern.
|
|
149
|
+
|
|
150
|
+

|
|
151
|
+

|
|
152
|
+
|
|
153
|
+
## All commands
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
artifold # default: scan + serve + open browser
|
|
157
|
+
artifold init # interactive setup wizard
|
|
158
|
+
artifold add <dir> # watch another folder
|
|
159
|
+
artifold roots # list watched folders
|
|
160
|
+
artifold scan # one-shot rescan
|
|
161
|
+
artifold open # open the existing dashboard
|
|
162
|
+
|
|
163
|
+
artifold share <file> # publish to public URL + copy to clipboard
|
|
164
|
+
artifold share --list # all shares
|
|
165
|
+
artifold share --revoke <id> # take a public share down
|
|
166
|
+
|
|
167
|
+
artifold import <url> # fetch a public Claude/v0/Lovable share URL
|
|
168
|
+
artifold link <file> --tool claude --source URL --prompt "..."
|
|
169
|
+
artifold info <file> # show provenance for a file
|
|
170
|
+
|
|
171
|
+
artifold designs # list design fingerprints
|
|
172
|
+
artifold designs <id> --template # dump CSS + skeleton (paste into Claude)
|
|
173
|
+
|
|
174
|
+
artifold inbox [topic] # print the canonical path for a new artifact
|
|
175
|
+
artifold install-skill # install /craft into ~/.claude/skills/
|
|
176
|
+
artifold doctor # check setup; tells you exactly what to fix
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Config
|
|
180
|
+
|
|
181
|
+
`~/Library/Application Support/artifold/config.json` on macOS,
|
|
182
|
+
`~/.config/artifold/config.json` on Linux:
|
|
183
|
+
|
|
184
|
+
```jsonc
|
|
185
|
+
{
|
|
186
|
+
"roots": ["/Users/me/Downloads", "/Users/me/work"],
|
|
187
|
+
"allow_repos": [], // dirs with their own .git to include anyway
|
|
188
|
+
"max_depth": 3,
|
|
189
|
+
"drop_dir": null, // where `artifold import` saves (default ~/artifold-inbox)
|
|
190
|
+
"enable_intent": false, // opt-in LLM intent metadata (Claude Haiku)
|
|
191
|
+
"categories": { // extend the auto-tag keywords
|
|
192
|
+
"Research": ["paper", "experiment", "ablation"]
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Cache (thumbnails, manifest, dashboard, Playwright Chromium) lives
|
|
198
|
+
under `~/Library/Caches/artifold/`. Wiping it just regenerates everything
|
|
199
|
+
from your real files — cache is replaceable, your source files are sacred.
|
|
200
|
+
|
|
201
|
+
## Keyboard
|
|
202
|
+
|
|
203
|
+
| Key | What |
|
|
204
|
+
|-----------------|------|
|
|
205
|
+
| `⌘K` / `Ctrl+K` | palette (actions + artifact search) |
|
|
206
|
+
| `↵` | open selected in preview / run action |
|
|
207
|
+
| `⇧↵` | open selected in new tab |
|
|
208
|
+
| `Esc` | close palette / preview |
|
|
209
|
+
| `/` | focus the search box |
|
|
210
|
+
| Click card | open in preview pane (in-app, no tab spam) |
|
|
211
|
+
| `⌘`/`Ctrl`-click | open in a new browser tab |
|
|
212
|
+
|
|
213
|
+
## Optional: AI intent layer
|
|
214
|
+
|
|
215
|
+
Artifold's core is **fully local — no LLM, no network, no API key required**.
|
|
216
|
+
|
|
217
|
+
If you want richer metadata (a one-line intent per artifact, topic tags,
|
|
218
|
+
audience detection — used for smarter search):
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
pipx install 'artifold[intent]'
|
|
222
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
223
|
+
artifold scan --intent
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
~$0.003 per artifact with Claude Haiku, cached forever by content hash
|
|
227
|
+
so re-scans are free. ~$0.05 for 15 artifacts. Toggle off with
|
|
228
|
+
`artifold scan --no-intent`. Skip the extra and the feature simply
|
|
229
|
+
doesn't appear.
|
|
230
|
+
|
|
231
|
+
## What Artifold is not
|
|
232
|
+
|
|
233
|
+
- **Not a cloud product.** Nothing leaves your machine unless you
|
|
234
|
+
explicitly `artifold share`. There's no sign-up, no account, no Artifold
|
|
235
|
+
server somewhere. Your library is `~/artifold-inbox/` and the dirs you
|
|
236
|
+
pointed it at — that's it.
|
|
237
|
+
- **Not a replacement for git** or your existing organization. It's a
|
|
238
|
+
*lens* on whatever you already have.
|
|
239
|
+
- **Not opinionated about where your files live.** Multi-root by
|
|
240
|
+
design. Want it to watch `~/Downloads` + `~/Documents` +
|
|
241
|
+
`~/work/reports`? Run `artifold add` three times.
|
|
242
|
+
- **Not trying to be everything for everyone.** Built for the specific
|
|
243
|
+
pain of "where did I put that thing I generated last month."
|
|
244
|
+
|
|
245
|
+
## Why "Artifold"
|
|
246
|
+
|
|
247
|
+
A artifold is a working collection of pages that informs your next piece
|
|
248
|
+
of work. Your past artifacts become the reference set for the next one.
|
|
249
|
+
It's not an archive (cold storage), it's a working library.
|
|
250
|
+
|
|
251
|
+
The PyPI package is `artifold` because `artifold` was taken. CLI command is
|
|
252
|
+
`artifold`. Same pattern as `open-interpreter` / `interpreter`.
|
|
253
|
+
|
|
254
|
+
## Status
|
|
255
|
+
|
|
256
|
+
**v0.5, alpha.** Tested on macOS Sequoia; Linux should work; Windows
|
|
257
|
+
untested. Single-developer project made in evenings — issues + PRs
|
|
258
|
+
welcome, but I'm shipping what I personally use rather than what's
|
|
259
|
+
broadly polished.
|
|
260
|
+
|
|
261
|
+
If you try it and something feels off, [open an issue](../../issues/new) —
|
|
262
|
+
even one line is helpful, "the X button is confusing" is exactly the
|
|
263
|
+
feedback that improves things.
|
|
264
|
+
|
|
265
|
+
## Roadmap
|
|
266
|
+
|
|
267
|
+
In rough priority order:
|
|
268
|
+
|
|
269
|
+
- [ ] **Mobile dashboard** — currently breaks below 760px
|
|
270
|
+
- [ ] **`artifold adopt <file>`** — opt-in consolidation into `~/artifold-inbox/`
|
|
271
|
+
for existing files (keeping multi-root for those who want it)
|
|
272
|
+
- [ ] **Cloudflare Pages backend** for `artifold share` (alternative to GH
|
|
273
|
+
Pages for users without `gh` CLI)
|
|
274
|
+
- [ ] **`artifold generate --like <id>`** — direct one-command generation,
|
|
275
|
+
opt-in via `[intent]` extra
|
|
276
|
+
- [ ] **Markdown rendering** — first-class support for `*.md`
|
|
277
|
+
- [ ] **Semantic search** — when you remember the gist but not the title
|
|
278
|
+
- [ ] **Version diff view** — when you iterate v1/v2/v3, see what changed
|
|
279
|
+
- [ ] **A real test suite** — currently human-tested
|
|
280
|
+
|
|
281
|
+
## Made by
|
|
282
|
+
|
|
283
|
+
[@shubhamgoel27](https://github.com/shubhamgoel27) — built because I
|
|
284
|
+
genuinely needed it. If you find it useful, **starring the repo is the
|
|
285
|
+
single best thing you can do** so other people building with AI find it.
|
|
286
|
+
|
|
287
|
+
The `/craft` skill took real research to make non-generic — the 12
|
|
288
|
+
design principles trace to Refactoring UI chapters, Linear's
|
|
289
|
+
[Method](https://linear.app/method/introduction), Vercel's
|
|
290
|
+
[Geist](https://vercel.com/geist), and a couple of recent AI-slop
|
|
291
|
+
critique articles. If you ship cool reports with it, tag me — I love
|
|
292
|
+
seeing what people make.
|
|
293
|
+
|
|
294
|
+
## License
|
|
295
|
+
|
|
296
|
+
MIT
|