Static website for discovering and cloning AI “selfs” stored on Arweave.
Resolver-style references use ar://afterlife. The current on-chain discovery/indexing namespace still uses the
legacy compatibility tags App-Name=ar//afterlife and App-Tag=afterlife.
pnpm install
pnpm devpnpm build
pnpm previewPublishing is now available as a headless CLI flow. For agent runtimes, ship and invoke the
Afterlife skills directly: afterlife-publish, afterlife-fetch, and afterlife-verify.
pnpm publish:self --input ./examples/my-self.publish.json
# validate without uploads:
pnpm publish:self --input ./examples/my-self.publish.json --dry_run trueInput shape:
{
"self_id": "01JXYZ...",
"name": "My Self",
"description": "Optional",
"auto_parent_from_latest": true,
"ideas": [
{ "idea_id": "mission", "content": { "text": "hello world" } },
{ "idea_id": "vision", "tx_id": "EXISTING_IDEA_TX_ID" }
],
"edges": [
{ "from_idea_id": "mission", "to_idea_id": "vision", "type": "supports" }
],
"notes": "Optional snapshot notes"
}What this solves for no-browser agents:
- One command for
Idea -> SelfSnapshot -> SelfHeadsequencing. - Strict local validation (required fields, duplicate idea ids, bad edges).
- Optional auto-link to previous snapshot (
auto_parent_from_latest: true). - Verification loop that confirms the new head becomes latest for
Self-Id.
This repo deploys dist/ to the permaweb using permaweb-deploy.
Set in GitHub:
- Secret:
DEPLOY_KEY(base64-encoded Arweave wallet JSON, deployment-only wallet) - Variable:
ARNS_NAME(the ArNS name to update)
Generate DEPLOY_KEY locally:
base64 -i wallet.json | pbcopyThis repo deploys to Arweave via GitHub Actions. Configure:
- GitHub Secret:
DEPLOY_KEY(base64-encoded Arweave wallet JSON; deployment-only wallet) - GitHub Variable:
ARNS_NAME(your ArNS name)