Get started
By the end of this tutorial you will have Henceforth running locally with the schema applied, and you will be logged into Studio (the admin control plane) and App (the end-user workspace) as the instance’s first administrator.
Install
Section titled “Install”Every release publishes prebuilt tarballs for Linux (x86_64 and arm64); each contains the henceforth server and the hf CLI:
VERSION=v0.1.3curl -fsSLO "https://github.com/henceforth-labs/henceforth/releases/download/${VERSION}/henceforth-${VERSION}-linux-x86_64.tar.gz"curl -fsSLO "https://github.com/henceforth-labs/henceforth/releases/download/${VERSION}/sha256sums"sha256sum -c sha256sums --ignore-missingtar xzf "henceforth-${VERSION}-linux-x86_64.tar.gz"The checksum step is optional but recommended; to skip it, pipe the first download straight into tar xz.
On macOS, install through the Homebrew tap instead (it builds from source at the tagged revision):
brew tap henceforth-labs/tapbrew install henceforthThis tutorial currently drives a source checkout of henceforth-labs/henceforth — the
justcommands below assume the repository root. A tarball-first quickstart is on its way.
Prerequisites
Section titled “Prerequisites”- Rust (stable toolchain) — rustup.rs
- Bun — bun.sh
- just —
cargo install justorbrew install just - Docker or Podman — for running PostgreSQL
- An SSH key without a passphrase — Henceforth ships no built-in
accounts: the first administrator is whoever holds the key the server was
started with.
hfcannot use passphrase-protected keys yet, so if~/.sshhas no key, or only protected ones, create a dedicated one withssh-keygen -t ed25519 -f ~/.ssh/henceforth_dev -N ''and add--identity ~/.ssh/henceforth_devto thehf devandhf logincommands below.
1. Install the binaries
Section titled “1. Install the binaries”From the repository root:
just install-localThis builds the UI and installs henceforth (the server) and hf (the CLI)
into ~/.local/bin. Make sure that directory is on your PATH.
2. Create a project
Section titled “2. Create a project”mkdir my-project && cd my-projecthf inithf init creates hf_project.json5, an empty metadata/ directory, and a
git repository.
3. Start Henceforth
Section titled “3. Start Henceforth”hf devhf dev starts a PostgreSQL container, starts the server with your public
key declared as the key that may claim it, and claims the instance as you (an
administrator named after your OS user; pass --admin-name to choose
another). It then opens the local target’s default surface in your browser,
already signed in. A new project has no default yet, so hf dev lists the
surfaces you can open instead and leaves the server running. A fresh
instance serves only its health and login routes until that claim happens;
once it has, no other key can claim it.
4. Apply metadata
Section titled “4. Apply metadata”With the server running, apply your (still empty) schema:
hf applyVerify
Section titled “Verify”hf whoami prints your principal ID and the target, for example
0198f2c4-… @ local, which confirms you are signed in. hf open henceforth:app opens App, the end-user workspace, signed in as you. In a browser that
is not already signed in as you, the page first asks “Sign in as (your name)?”;
click Continue. Then open
/studio/ in the same browser: Studio loads signed in, with no login form.
If a page shows the login form, your browser session has expired; run
hf open henceforth:app again to sign in. If hf itself is signed out, run
hf login local --ssh first, with the same key.
What’s next
Section titled “What’s next”To model your own data, see Objects, records, and fields. To create your first record through the API, see Create records through the API.