Generate and manage artifacts: self-contained HTML mini-sites that pair presentation with the research backing it.
Project description
artoo
Generate and manage artifacts — self-contained HTML mini-sites that pair presentation with the research backing it.
There's a burgeoning practice of getting explanations of systems out of LLMs as real pages — with navigation, diagrams, and provenance — instead of markdown dumps, and of composing reports from multiple assets. artoo is the tool layer for that practice:
- Artifacts live anywhere. An artifact is a directory with an
artifact.tomlinside whatever repo owns it. A library's explainer lives in that library's repo. One repo can hold many artifacts. - Self-contained, with provenance. The publishable
site/renders from afile://URL — vendored assets, no bundler, no CDN dependencies. Shared components come from versioned, hash-pinned site libraries you can upgrade deliberately. - Deployment-aware. artoo understands GitHub Pages (including whether
your repo serves from
/docs, a workflow, or a branch), ssh/rsync targets, and arbitrary publish commands. Secrets never enter the repo. - Research stays with the piece. Notebooks, working files, and anything
_-prefixed sit next to the presentation but can never ship — the deploy path is deny-by-default. - Generators, not API keys. Model-powered generators (like the repo
explainer) delegate to agent CLIs you already have —
claude,codex— with cheap tiers for fan-out analysis and strong tiers for synthesis. artoo core makes no model calls and holds no keys.
Install
uv tool install artoo-artifacts # or: pipx install artoo-artifacts
artoo --version # the command is `artoo`
Research-notebook support activates automatically when flip is installed alongside artoo.
Quickstart
# Scaffold an artifact inside any repo
artoo init site/my-report --kind report --title "Q3 systems report"
# See every artifact in the repo
artoo list
# Check health: manifest, firewall, library drift
artoo status site/my-report
# Publish (adapter chosen by the manifest's [deploy] table)
artoo deploy site/my-report
Generate a repo explainer
artoo generate explainer --repo . --out site/explainer
artoo deploy site/explainer
The explainer inventories the repo deterministically, fans out per-module
analysis to a cheap worker (codex), synthesizes the narrative with a strong
worker (claude), renders architecture diagrams, and assembles a multi-page
site with the built-in design kit. The result is a dated snapshot with a
colophon saying exactly how it was made.
Status
v0.1.0 — alpha. The manifest format, CLI surface, and plugin entry points are young and may change before 1.0. See DESIGN.md for the architecture and CHANGELOG.md for history.
Development
git clone https://github.com/lavallee/artoo && cd artoo
uv sync
uv run pytest -q
uv run ruff check src tests
MIT licensed. Contributions welcome — see CONTRIBUTING.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file artoo_artifacts-0.1.0.tar.gz.
File metadata
- Download URL: artoo_artifacts-0.1.0.tar.gz
- Upload date:
- Size: 87.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15e410ac02696944364d2cd8734d7db382ba3d44a1367ac9e1a4ac99b0713b11
|
|
| MD5 |
2432221953fb4ee94d7bd32f0da1827c
|
|
| BLAKE2b-256 |
a19fa3b61c1defb926bf06d9edfb543bf5d9bac2b29d9b872fb63b443e4822ed
|
Provenance
The following attestation bundles were made for artoo_artifacts-0.1.0.tar.gz:
Publisher:
publish.yml on lavallee/artoo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
artoo_artifacts-0.1.0.tar.gz -
Subject digest:
15e410ac02696944364d2cd8734d7db382ba3d44a1367ac9e1a4ac99b0713b11 - Sigstore transparency entry: 2140104538
- Sigstore integration time:
-
Permalink:
lavallee/artoo@17dfc0d6ad3ce5115a6961238763b8bcf08dc1fe -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lavallee
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@17dfc0d6ad3ce5115a6961238763b8bcf08dc1fe -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file artoo_artifacts-0.1.0-py3-none-any.whl.
File metadata
- Download URL: artoo_artifacts-0.1.0-py3-none-any.whl
- Upload date:
- Size: 48.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c47ca0d7f48f28f4c719c7c60fc82b69a2f390fdb07bdc6563dac6848442a07
|
|
| MD5 |
e4a03c3d523dfa11f28f55910094b72c
|
|
| BLAKE2b-256 |
904ccdfe38745cdcf34c90f0f036108c221ebd9386be1def521da8da3306e46d
|
Provenance
The following attestation bundles were made for artoo_artifacts-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on lavallee/artoo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
artoo_artifacts-0.1.0-py3-none-any.whl -
Subject digest:
1c47ca0d7f48f28f4c719c7c60fc82b69a2f390fdb07bdc6563dac6848442a07 - Sigstore transparency entry: 2140104613
- Sigstore integration time:
-
Permalink:
lavallee/artoo@17dfc0d6ad3ce5115a6961238763b8bcf08dc1fe -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lavallee
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@17dfc0d6ad3ce5115a6961238763b8bcf08dc1fe -
Trigger Event:
workflow_dispatch
-
Statement type: