Skip to content

Repository files navigation

BitPlan

Create private, versioned HTML plans. Keep them hosted while they change, then publish them on Bitcoin when they should be permanent.

Open BitPlan · Read the docs · Install the CLI

Install the agent skill directly from its owning repository:

npx skills add opldotdev/bitplan.dev --skill bitplan -g

The repository also includes native plugin manifests for Claude Code, Codex, and Grok. Marketplace installations therefore load this canonical skill rather than a copied version maintained by another plugin.

BitPlan turns a self-contained HTML file into an encrypted plan. BRC-100 is the interface BitPlan uses to ask your wallet to encrypt and decrypt. Hosted drafts store only ciphertext on bitplan.dev and cost no BSV. When a plan is ready, the wallet can publish that ciphertext as a 1Sat Ordinal. Each on-chain version moves the same satoshi forward, giving the plan one permanent origin.

Quick start

npx bitplan auth
bunx bitplan upload ./plan.html --hosted --link

The command prints a reader link. Open it in a browser without connecting a wallet. Treat the complete link like a password: anyone who has it can read.

Publish the latest hosted version on chain when it is ready:

bunx bitplan inscribe ./plan.html
npx bitplan list
npx bitplan fetch <origin>
npx bitplan version

How it works

flowchart TD
    Plan[HTML plan] --> CLI[BitPlan CLI]
    CLI -->|Encrypt this plan| Wallet[BRC-100 wallet]
    Wallet --> Hosted[Encrypted hosted draft]
    Wallet -->|Sign and publish| Bitcoin[1Sat Ordinal]
    Hosted --> Site[bitplan.dev]
    Bitcoin --> OrdFS[OrdFS]
    OrdFS --> Site[bitplan.dev]
    Site --> WalletOrLink[Wallet or reader link]
    WalletOrLink -->|Decrypt in the browser| Plaintext[Plan]
Loading

The CLI validates the HTML, then your wallet encrypts it. BitPlan either keeps the sealed envelope in hosted storage or loads it through OrdFS after an on-chain publish. Decryption happens in the browser.

Versions keep the same origin:

flowchart TD
    V1[Version 1<br/>origin] --> V2[Version 2] --> V3[Latest]
Loading

Share a plan

Add one or more wallet identity public keys when publishing:

npx bitplan upload ./plan.html \
  --share-with <identity-key>

The document is encrypted once. Its document key is wrapped separately for the owner and each invited reader.

flowchart TD
    Document[One encrypted document] --> Key[Document key]
    Key --> Owner[Owner wallet]
    Key --> ReaderA[Reader A identity key]
    Key --> ReaderB[Reader B identity key]
Loading

Documentation

Repository

Path Contents
apps/web Next.js website, plan viewer, docs, and sponsorships
packages/cli Published bitplan command-line package
bun install --frozen-lockfile
bun run lint
bun run typecheck
bun test
bun run build

Compatibility tests open CLI-produced envelopes with the website implementation. Wallet and network boundaries use mocks, so the automated suite never publishes a transaction.

BitPlan prefers a BRC-100 wallet already installed by the user. A future 1Sat CLI headless-wallet bridge is tracked separately; today's 1sat serve wallet endpoint is a wallet-storage service and is not a BitPlan wallet endpoint.

Contributions are welcome. Start with CONTRIBUTING.md.

License

MIT · Third-party notices are listed in THIRD_PARTY_NOTICES.md.

About

Encrypted, versioned HTML plans published as 1Sat Ordinal inscriptions. Wallet access uses BRC-100.

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages