Seed is open-source software for the Hypermedia protocol: a network of signed, versioned documents and comments that anyone can publish, link, archive and collaborate on without a central server.
This repository holds all of it:
- the Seed daemon (
backend/), a Go peer-to-peer node that stores, indexes and syncs Hypermedia data - the Seed desktop app and the Seed web app (
frontend/apps/desktop,frontend/apps/web) - the Seed CLI and the SDK,
@seed-hypermedia/client(frontend/apps/cli,frontend/packages/client) - Seed Agents (
agents/), the identity vault (vault/) and the notification service (frontend/apps/notify) - the developer documentation and the Hypermedia Schemas library (
hypermedia/)
The developer docs live in hypermedia/ and are published to the Hypermedia network from this
repository. Start with:
- The Hypermedia protocol
- Building on Hypermedia: the Seed API, the SDK, the CLI and agents
- Contributing: the repository map, dev setup, tests and releases
The permanent data format is stable. The APIs, the SDK and the CLI still change. Keep your own copy of anything valuable you put into the app.
The toolchain is pinned in mise.toml and activated by direnv. Install
mise and direnv, then:
direnv allow
pnpm install./dev is the dev CLI. Run ./dev to list every command. The common ones:
./dev upruns the whole stack on mainnet in one mprocs window (seemprocs.yaml)./dev up-testnetruns the same stack on the dev testnet./dev run-desktopruns the desktop app with its own daemon./dev run-webruns the web app./dev run-backendbuilds and runs the daemon./dev genchecks and regenerates generated code./dev hm-synceditshypermedia/in the desktop dev app
Before a pull request:
pnpm typecheck
pnpm format:check
pnpm testSee Contributing for Go tests, integration tests, migrations, protobuf generation, self-hosting and releasing.