Important
This project has been superseded by inds-space/artifacts and is no longer maintained.
Artifacts is the successor to Plans. It expands the original plan-publishing workflow into a general self-hosted publishing system for agent-generated plans, reports, diagrams, prototypes, and other browser-renderable artifacts.
This repository is preserved as a historical archive of the original Plans project.
Use inds-space/artifacts for new installations and development.
Artifacts provides:
- a general
artifactsCLI instead of the plan-specific CLI; - support for multiple artifact types;
- stable, versioned artifact URLs;
- Cloudflare Workers, D1, R2, and Access self-hosting;
- agent skills for publishing generated artifacts.
Plans was an authenticated static HTML publishing service for Claude, Codex, and Antigravity.
plan create auth-refactor -codex
https://plans.inds.space/codex/auth-refactor
The repository contains one Cloudflare Worker, one D1 database, one R2 bucket, a standalone CLI distributed through GitHub Releases, and the planning-html skill.
plan create <name> -claude|codex|antigravity [--file <path>]
plan update <name> -claude|codex|antigravity [--file <path>]
plan delete <name> -claude|codex|antigravity
plan list [-claude|-codex|-antigravity]create and update discover <name>.html in the current directory. --file overrides discovery. Successful publication prints only the stable URL so agents can capture stdout directly. list prints every plan's agent, name, version, update time, and stable URL; pass an optional agent flag to filter the results.
Protect the entire plans.inds.space hostname with a Cloudflare Access application. Add a Service Auth policy for CLI clients and provide its service token through environment variables:
$env:PLAN_ACCESS_CLIENT_ID = "..."
$env:PLAN_ACCESS_CLIENT_SECRET = "..."Or copy config.example.json to %APPDATA%\plan\config.json on Windows or ~/.config/plan/config.json on Unix. Keep the real config out of Git.
The Worker requires the Access identity header and has workers.dev plus preview URLs disabled. Access remains the security boundary; do not attach an unprotected route to this Worker.
pnpm install
pnpm run types
pnpm run check
pnpm test
pnpm run devApply the D1 migration locally with:
pnpm wrangler d1 migrations apply plans-db --localRequests made directly to local Wrangler must include a test Cf-Access-Jwt-Assertion header.
- Create
plans-dbwithpnpm wrangler d1 create plans-dband replace the placeholderdatabase_idinwrangler.jsonc. - Create
plans-storagewithpnpm wrangler r2 bucket create plans-storage. - Apply migrations with
pnpm wrangler d1 migrations apply plans-db --remote. - Create the Cloudflare Access application and Service Auth policy for
plans.inds.space/*. - Deploy with
pnpm wrangler deploy.
Deployment changes live Cloudflare state and should be performed only after reviewing the account, hostname, Access policy, and generated dry-run bundle.
Install the same skill into the supported agent homes:
.\scripts\install-skill.ps1Custom locations can be supplied with -Targets. The source skill remains at skills/planning-html for versioned distribution.