{"id":50207663,"url":"https://github.com/agentuse/artifacts","last_synced_at":"2026-06-01T03:01:03.368Z","repository":{"id":354784971,"uuid":"1225028603","full_name":"agentuse/artifacts","owner":"agentuse","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-30T02:24:42.000Z","size":958,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-26T02:33:47.899Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agentuse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-29T21:53:40.000Z","updated_at":"2026-05-10T02:16:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/agentuse/artifacts","commit_stats":null,"previous_names":["agentuse/artifacts"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/agentuse/artifacts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentuse%2Fartifacts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentuse%2Fartifacts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentuse%2Fartifacts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentuse%2Fartifacts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agentuse","download_url":"https://codeload.github.com/agentuse/artifacts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agentuse%2Fartifacts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33652986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-26T02:10:59.509Z","updated_at":"2026-06-01T03:01:03.350Z","avatar_url":"https://github.com/agentuse.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e@agentuse/artifacts\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA local-first artifact viewer for AI agents.\u003c/strong\u003e\u003cbr/\u003e\n  Save reports, dashboards, screenshots, and plans as real files, then browse them in one live gallery.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@agentuse/artifacts\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@agentuse/artifacts.svg?color=cb3837\u0026label=npm\" alt=\"npm version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://nodejs.org\"\u003e\u003cimg src=\"https://img.shields.io/node/v/@agentuse/artifacts.svg?color=43853d\" alt=\"node\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/@agentuse/artifacts.svg?color=blue\" alt=\"license\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshot.png\" alt=\"@agentuse/artifacts viewer screenshot\" width=\"900\"\u003e\n\u003c/p\u003e\n\nAI agents produce useful files, but those files often end up buried in a transcript or scattered across a project. `@agentuse/artifacts` gives them a predictable home and gives you a fast local viewer for everything they make.\n\nVersion 0.2.0 adds project-wide discovery: the viewer can find supported artifact files across registered project directories, not only inside `.agentuse/artifacts`. You can turn that broader scan off in the viewer Settings sheet if you only want the dedicated artifact folder.\n\n## Install\n\nInstall the Skill for your coding agent:\n\n```bash\nnpx skills add agentuse/artifacts\n```\n\nInstall it globally if you want every project to use the same artifact behavior:\n\n```bash\nnpx skills add agentuse/artifacts -g\n```\n\nOptionally install the CLI globally so the viewer starts instantly:\n\n```bash\nnpm install -g @agentuse/artifacts\n```\n\nRequires Node.js 20+.\n\n## Use With Different Agents\n\n`@agentuse/artifacts` is agent-agnostic. There are two ways to use it:\n\n| Agent type | Recommended setup |\n| --- | --- |\n| Claude Code, Cursor, Codex, Windsurf, Cline, and other interactive coding agents | Install the Skill with `npx skills add agentuse/artifacts`, then ask the agent to save reports or dashboards as artifacts. |\n| AgentUse and other async/scheduled agents | Install the same Skill globally with `npx skills add agentuse/artifacts -g`, then tell the agent to write outputs under `.agentuse/artifacts/\u003cname\u003e/index.md` or `.html`. |\n| Custom runners, CI jobs, and shell scripts | Write supported files directly into `.agentuse/artifacts` or anywhere in a registered project, then open the viewer with `npx @agentuse/artifacts open`. |\n| Remote VMs or chat-based agents | Run the viewer on the machine where artifacts are written. It binds to `127.0.0.1:7878`; use SSH port forwarding, Tailscale Serve, or another private tunnel to view it from your laptop. |\n\nIf the `skills` CLI does not know your agent yet, copy `skills/agentuse-artifacts/SKILL.md` into that agent's skill or instruction directory. The underlying contract is just files on disk plus the local viewer.\n\n## Use\n\nAsk your agent to save something as an artifact:\n\n```text\nsave this report as an artifact\nrender this plan as a viewable HTML artifact\n/agentuse-artifacts drop this to artifacts\n```\n\nThe Skill guides the agent toward this layout:\n\n```text\n\u003cproject\u003e/.agentuse/artifacts/\n  market-analysis/index.md\n  customer-report/index.html\n  customer-report/chart.png\n```\n\nOpen the viewer from any registered project:\n\n```bash\nnpx @agentuse/artifacts open\n```\n\nThe viewer renders Markdown, AgentUse `.agentuse`, HTML, PNG/JPG/WebP, and PDF files. HTML artifacts are sanitized and loaded in a sandboxed iframe.\n\n## What 0.2.0 Changes\n\n- Project-wide artifact discovery is on by default for registered projects.\n- The Settings sheet can add/remove projects, edit ignore patterns, and disable project-wide discovery.\n- The viewer lazy-loads only the selected project's artifact inventory for better performance.\n- Markdown, AgentUse, HTML, image, and PDF previews render directly on the canvas.\n- Canvas navigation, image zoom, mobile behavior, and hot reload performance are improved.\n\n## Discovery Rules\n\nThe dedicated `.agentuse/artifacts` folder is always scanned. This is still the best place for generated agent output.\n\nWhen project-wide discovery is enabled, the viewer also scans registered project roots for supported files:\n\n```text\ndocs/report.md\nagents/daily.agentuse\nscreenshots/flow.png\ndashboards/revenue.html\n```\n\nDependency, build, cache, VCS, hidden dot paths, and configured ignore patterns are skipped. Manage these patterns in Settings.\n\nViewer state lives under:\n\n```text\n~/.agentuse/artifacts/\n  manifest.json\n  settings.json\n  preview-cache/\n  .serve.pid\n```\n\nSet `AGENTUSE_ARTIFACTS_HOME` to use a different storage root.\n\n## CLI\n\nEvery command supports `--json`.\n\n| Command | Description |\n| --- | --- |\n| `artifacts init` | Register the current directory and create `.agentuse/artifacts`. |\n| `artifacts open [--port N] [--detach] [--no-browser]` | Register the current project, start or reuse the viewer, and print its URL. |\n| `artifacts serve [--port N] [--detach] [--stop] [--fail-if-running]` | Manage only the local viewer server. |\n| `artifacts list` | List supported artifacts discovered in the current project. |\n| `artifacts url [name]` | Print a viewer URL for the project or a specific artifact name. |\n| `artifacts where` | Print the global storage path. |\n| `artifacts project list / add / forget / prune` | Manage registered project directories. |\n\n## Security\n\nStored HTML artifacts are treated as untrusted:\n\n- HTML is parsed and sanitized at render time.\n- Rendered HTML gets a strict CSP with `connect-src 'none'`.\n- HTML runs inside an iframe sandbox without `allow-same-origin`.\n\nDo not relax these defaults casually. Artifacts are often generated from untrusted web pages, PRs, scraped docs, and model output.\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm test\nnpm run typecheck\n```\n\nFor local development:\n\n```bash\nnpm run dev:server\nnpm run dev:viewer\n```\n\n## License\n\n[MIT](LICENSE) (c) 2026 Leon Ho.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentuse%2Fartifacts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagentuse%2Fartifacts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentuse%2Fartifacts/lists"}