{"slug": "show-hn-artifold-a-local-first-library-for-ai-generated-html-artifacts", "title": "Show HN: Artifold – A local-first library for AI-generated HTML artifacts", "summary": "Artifold, a new local-first library for managing AI-generated HTML artifacts, launched today to help users index, search, preview, and share outputs from tools like Claude Artifacts, ChatGPT Canvas, and v0. The tool addresses the problem of losing AI-generated HTML files in cluttered download folders by providing automatic indexing, one-click sharing to permanent public URLs via GitHub Pages, and a sidebar for filtering by tool, status, and category. Artifold also includes a Claude Code skill called `/craft` that applies design principles from Refactoring UI and Linear to generate visually distinct artifacts while avoiding common AI-slop signatures.", "body_md": "**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.\n\n\"I've started preferring HTML as an output format instead of Markdown. The added expressiveness means I get overall better output, and the chance of someone actually reading your spec, report or PR writeup is much higher if it's in HTML. … When writing this article, I asked Claude Code to read through my code folder and find all the HTML files I've generated, group and categorize them …\"— Thariq,\n\n(Claude Code team)[The Unreasonable Effectiveness of HTML]\n\n**Artifold is that library.** If you're shifting from Markdown to HTML for\nspecs, reports, designs, prototypes, throwaway editors — the way Thariq\ndescribes — Artifold is where they live.\n\nYou've been making a lot of HTML with AI lately: Claude Artifacts,\nChatGPT Canvas, v0, Lovable, Cursor. They land in `~/Downloads`\n\nor some\nproject folder, you bookmark a tab, you mean to come back to that ROI\ncalculator you made three weeks ago — and you can't find it.\n\nThat's the whole reason this exists. I made a 30-day workout tracker for my partner, lost it in a maze of folders, regenerated a worse version, and decided to just build the index myself.\n\nLocal-first, fast, runs entirely on your machine. Plus the part where,\nwhen you *do* want to share an artifact, it's one click to a permanent\npublic URL.\n\nClick any card → hit the share icon → in ~30 seconds you get back a\npermanent URL like `https://you.github.io/artifold-share/abc12345.html`\n\nthat you can paste into iMessage, Slack, email, anywhere. URL is copied\nto your clipboard automatically.\n\nFree forever (uses your GitHub Pages quota — no Artifold infrastructure, no sign-up, no per-share fees, no expiry). Anyone with the link sees the fully-rendered report; recipient needs nothing installed.\n\nSidebar filters by tool, status (shared / local), category, date. ⌘K palette to jump to anything by name, prompt, or intent. Click → in-app preview pane, no tab spam. Dark/light themes. Live auto-rescan — drop a new file in any watched folder and it appears within seconds.\n\n→ **See the side-by-side gallery**:\nfour prompts run through\n\n`claude-sonnet-4`\n\n*twice*— once plainly, once via\n\n`/craft`\n\n. Same model, same prompt, visibly different output.After installing the Claude Code skill, type `/craft a 30-day strength tracker for a beginner`\n\nin any session. The skill:\n\n- Reads your library to see styles you've used, then deliberately picks\na\n*different*direction so your next artifact doesn't look like the last one (the \"all AI output looks the same\" problem, actively fought) - OR inherits a specific style:\n`/craft a poker probability explainer, like dobble`\n\n— pulls dobble's actual CSS as the design baseline - Applies 12 opinionated design principles distilled from Refactoring UI, Linear, and Vercel/Geist (every one cited)\n- Avoids 15 specific AI-slop signatures (purple-gradient hero, identical bento cards, decorative emoji on every list item, glassmorphism, etc.)\n- Saves to\n`~/artifold-inbox/2026-05-26-<topic>.html`\n\n— auto-indexed in Artifold within ~2 seconds\n\nYour past work becomes your style guide for the next one. The loop closes.\n\nIf you have [Claude Code](https://claude.com/claude-code), paste this\nprompt — Claude figures out the rest, installs everything, and walks\nyou through first-run:\n\nTip\n\n**Copy this into Claude Code:**\n\n```\nInstall Artifold from https://github.com/shubhamgoel27/artifold using pipx\n(or pip if pipx isn't installed). Then run `artifold init` and help me\npick a folder to watch. After that, run `artifold install-skill` to set\nup the /craft skill. Open the dashboard when ready and tell me what\nto try first.\n```\n\nThat's the whole install. No terminal commands to memorize, no dependencies to debug — Claude handles the awkward parts.\n\nIf you'd rather drive:\n\n```\npipx install artifold          # or: pip install artifold\nartifold init                     # interactive wizard\nartifold                          # serves dashboard + opens browser\nartifold install-skill            # adds /craft to ~/.claude/skills/\n```\n\nDon't have `pipx`\n\n? Run `brew install pipx`\n\n(mac) or `python -m pip install --user pipx`\n\n(anywhere), then the above.\n\n```\n/craft a one-pager comparing three SF apartments\n/craft a 30-day strength tracker, like my last one\n/craft a probability explainer for poker, in the style of dobble\n```\n\n(Restart Claude Code once after `artifold install-skill`\n\nso the skill loads.)\n\nThe first run installs Playwright's headless Chromium (~170 MB) for artifact thumbnails. After that, only new/changed files re-shoot.\n\n**Auto-indexes** every `*.html`\n\nin your watched folders. Groups\n`-v2`\n\n, ` (1)`\n\n, `print`\n\nvariants into one card with a version dropdown.\nSkips templates, `.git`\n\nrepos, and anything buried 3 levels deep — your\nlibrary stays clean even when your folders aren't.\n\n**Source-aware** — fingerprints Claude / ChatGPT / v0 / Lovable / Bolt\n/ Gemini artifacts from HTML markers, tags each card with the tool that\nmade it. Also reads `<meta name=\"artifold:*\">`\n\ntags (which the `/craft`\n\nskill emits) for zero-effort provenance.\n\n**Visual** — every artifact gets a real screenshot thumbnail. Click a\ncard → slide-out preview pane with tabs for Provenance (source URL,\nprompt, model, tags) and Design (palette swatches, fonts, mood flags).\n\n**Live** — `artifold serve`\n\nwatches your folders. Drop in a new artifact\nand it appears in the dashboard within ~2 seconds, no refresh.\n\n**Searchable** — ⌘K palette runs across titles, prompts, intents, and\nexposed actions (toggle theme, switch view, rescan, import). Linear /\nRaycast pattern.\n\n```\nartifold                  # default: scan + serve + open browser\nartifold init             # interactive setup wizard\nartifold add <dir>        # watch another folder\nartifold roots            # list watched folders\nartifold scan             # one-shot rescan\nartifold open             # open the existing dashboard\n\nartifold share <file>     # publish to public URL + copy to clipboard\nartifold share --list     # all shares\nartifold share --revoke <id>   # take a public share down\n\nartifold import <url>     # fetch a public Claude/v0/Lovable share URL\nartifold link <file> --tool claude --source URL --prompt \"...\"\nartifold info <file>      # show provenance for a file\n\nartifold designs                     # list design fingerprints\nartifold designs <id> --template     # dump CSS + skeleton (paste into Claude)\n\nartifold inbox [topic]    # print the canonical path for a new artifact\nartifold install-skill    # install /craft into ~/.claude/skills/\nartifold doctor           # check setup; tells you exactly what to fix\n```\n\n`~/Library/Application Support/artifold/config.json`\n\non macOS,\n`~/.config/artifold/config.json`\n\non Linux:\n\n```\n{\n  \"roots\": [\"/Users/me/Downloads\", \"/Users/me/work\"],\n  \"allow_repos\": [],          // dirs with their own .git to include anyway\n  \"max_depth\": 3,\n  \"drop_dir\": null,           // where `artifold import` saves (default ~/artifold-inbox)\n  \"enable_intent\": false,     // opt-in LLM intent metadata (Claude Haiku)\n  \"categories\": {             // extend the auto-tag keywords\n    \"Research\": [\"paper\", \"experiment\", \"ablation\"]\n  }\n}\n```\n\nCache (thumbnails, manifest, dashboard, Playwright Chromium) lives\nunder `~/Library/Caches/artifold/`\n\n. Wiping it just regenerates everything\nfrom your real files — cache is replaceable, your source files are sacred.\n\n| Key | What |\n|---|---|\n`⌘K` / `Ctrl+K` |\npalette (actions + artifact search) |\n`↵` |\nopen selected in preview / run action |\n`⇧↵` |\nopen selected in new tab |\n`Esc` |\nclose palette / preview |\n`/` |\nfocus the search box |\n| Click card | open in preview pane (in-app, no tab spam) |\n`⌘` /`Ctrl` -click |\nopen in a new browser tab |\n\nArtifold's core is **fully local — no LLM, no network, no API key required**.\n\nIf you want richer metadata (a one-line intent per artifact, topic tags, audience detection — used for smarter search):\n\n```\npipx install 'artifold[intent]'\nexport ANTHROPIC_API_KEY=sk-ant-...\nartifold scan --intent\n```\n\n~$0.003 per artifact with Claude Haiku, cached forever by content hash\nso re-scans are free. ~$0.05 for 15 artifacts. Toggle off with\n`artifold scan --no-intent`\n\n. Skip the extra and the feature simply\ndoesn't appear.\n\n**Not a cloud product.** Nothing leaves your machine unless you explicitly`artifold share`\n\n. There's no sign-up, no account, no Artifold server somewhere. Your library is`~/artifold-inbox/`\n\nand the dirs you pointed it at — that's it.**Not a replacement for git** or your existing organization. It's a*lens*on whatever you already have.**Not opinionated about where your files live.** Multi-root by design. Want it to watch`~/Downloads`\n\n+`~/Documents`\n\n+`~/work/reports`\n\n? Run`artifold add`\n\nthree times.**Not trying to be everything for everyone.** Built for the specific pain of \"where did I put that thing I generated last month.\"\n\nA artifold is a working collection of pages that informs your next piece of work. Your past artifacts become the reference set for the next one. It's not an archive (cold storage), it's a working library.\n\nThe PyPI package is `artifold`\n\nbecause `artifold`\n\nwas taken. CLI command is\n`artifold`\n\n. Same pattern as `open-interpreter`\n\n/ `interpreter`\n\n.\n\n**v0.5.2, alpha — live on PyPI.** Tested on macOS Sequoia; Linux should\nwork; Windows untested. Single-developer project made in evenings —\nissues + PRs welcome, but I'm shipping what I personally use rather than\nwhat's broadly polished. The [ /craft gallery](https://shubhamgoel27.github.io/artifold/)\nshows side-by-side outputs (default Claude vs\n\n`/craft`\n\n) on four prompts\nthrough Opus 4.7 — if you want to see what the skill actually does\nbefore installing, start there.If you try it and something feels off, [open an issue](/shubhamgoel27/artifold/issues/new) —\neven one line is helpful, \"the X button is confusing\" is exactly the\nfeedback that improves things.\n\nIn rough priority order:\n\n-\n**Mobile dashboard**— currently breaks below 760px -\n— opt-in consolidation into`artifold adopt <file>`\n\n`~/artifold-inbox/`\n\nfor existing files (keeping multi-root for those who want it) -\n**Cloudflare Pages backend** for`artifold share`\n\n(alternative to GH Pages for users without`gh`\n\nCLI) -\n— direct one-command generation, opt-in via`artifold generate --like <id>`\n\n`[intent]`\n\nextra -\n**Markdown rendering**— first-class support for`*.md`\n\n-\n**Semantic search**— when you remember the gist but not the title -\n**Version diff view**— when you iterate v1/v2/v3, see what changed -\n**A real test suite**— currently human-tested\n\n[@shubhamgoel27](https://github.com/shubhamgoel27) — built because I\ngenuinely needed it. If you find it useful, **starring the repo is the\nsingle best thing you can do** so other people building with AI find it.\n\nThe `/craft`\n\nskill took real research to make non-generic — the 12\ndesign principles trace to Refactoring UI chapters, Linear's\n[Method](https://linear.app/method/introduction), Vercel's\n[Geist](https://vercel.com/geist), and a couple of recent AI-slop\ncritique articles. If you ship cool reports with it, tag me — I love\nseeing what people make.\n\nMIT", "url": "https://wpnews.pro/news/show-hn-artifold-a-local-first-library-for-ai-generated-html-artifacts", "canonical_source": "https://github.com/shubhamgoel27/artifold", "published_at": "2026-05-26 23:48:42+00:00", "updated_at": "2026-05-27 00:08:28.309787+00:00", "lang": "en", "topics": ["ai-tools", "ai-products", "generative-ai", "ai-startups"], "entities": ["Artifold", "Claude Code", "Thariq", "Claude Artifacts", "ChatGPT Canvas", "v0", "Lovable", "Cursor"], "alternates": {"html": "https://wpnews.pro/news/show-hn-artifold-a-local-first-library-for-ai-generated-html-artifacts", "markdown": "https://wpnews.pro/news/show-hn-artifold-a-local-first-library-for-ai-generated-html-artifacts.md", "text": "https://wpnews.pro/news/show-hn-artifold-a-local-first-library-for-ai-generated-html-artifacts.txt", "jsonld": "https://wpnews.pro/news/show-hn-artifold-a-local-first-library-for-ai-generated-html-artifacts.jsonld"}}