Hemisphere ingests your mail, calendar, chats, tickets, code, voice memos and the sessions of your coding agent into a graph you own. Every fact has a date and a source you can open. Nobody else can read it.
curl -fsSL https://hemisphere.almansa.dev/install.sh | HEMI_LICENSE=HEMI-XXXX-XXXX-XXXX-XXXX bash
Illustrative. The facts, the people and the channels are yours.
A fact is an extraction and loses nuance. Each one points to the episode behind it, and the episode keeps the original message, ticket or memo, so the exact wording is one call away.
Every fact records when it became true and when it stopped. A superseded fact stays, marked invalid, with its dates, so "when did the deadline move, from what, and who moved it" has an answer.
The graph, the raw text and the credentials live on your machine, under your login. Sources are off until you enable them, one by one, and the only party that sees plaintext besides you is the model you pick.
Mail, calendar, Teams, Slack, WhatsApp, Telegram, Jira, GitHub, voice memos, notes, support cases and every session of your coding agent. Each source is off until you switch it on. Every item is kept verbatim, with the time it happened.
A model reads each episode and extracts entities and facts. A first name in a chat and a full name in a mail become one person. A new fact that contradicts an old one marks it superseded instead of deleting it.
Every prompt you type gets the few relevant valid facts, the people involved and the raw passages behind them, before the agent answers. Every session ends as a new episode, so tomorrow's assistant knows what today's decided.
A document index knows the latest version. Hemisphere knows every version and when each was true. Superseded facts stay in the graph with their dates, so the answer to today's question can also explain how it got there.
Each one is a connector you turn on and authenticate yourself. Ingestion runs every 30 minutes. A new source is one Python file and a configuration block.
One sign-in covers Microsoft 365 mail, calendar and Teams. Gmail and Calendar share another. WhatsApp scans a QR from your phone and is off unless you ask for it.
Hemisphere is built so that the vendor cannot hold your memory, even if it wanted to.
On a server the data directory is encrypted with a passphrase that exists only in your head; after a reboot it stays sealed until you unseal it. On a Mac it sits inside FileVault, under your login.
A Mac, a Linux box you own, or a Confidential VM in a cloud project you own. Anyone who helps run it never logs into the machine.
The only party that sees plaintext besides you is the model you choose: a local one, or a gateway with no-training terms. Embeddings run locally by default.
Sources are off by default. Telemetry carries version, counts, sizes and cost, bound to your licence so we can help you; never text, people or tokens. hemi telemetry off stops even that.
Publish what you choose from your private lake to your team's, at a scope you pick each time, and withdraw it whenever you want. The company learns who knows what, why it decided what it decided, and what its agents did. Your hemisphere stays yours.
an episode, at the scope you choose: team, project, organization.
with what the company knows that you are entitled to see.
when knowledge is out of your scope, it names the team, not the text.
and every fact derived only from it is invalidated.
The installer puts you on stable. hemi channel beta switches. edge is built from every commit and is for us. The files themselves download only with a licence key; the manifests below are public and signed.
| Channel | Version | |||
|---|---|---|---|---|
| loading… | ||||
Every channel manifest is signed with the release key, hemisphere-release.pub, and carries the tarball's SHA-256. The same check hemi update performs:
curl -sO https://hemisphere.almansa.dev/channels/stable.json
curl -sO https://hemisphere.almansa.dev/channels/stable.json.sig
curl -sO https://hemisphere.almansa.dev/hemisphere-release.pub
openssl pkeyutl -verify -rawin -pubin -inkey hemisphere-release.pub \
-sigfile stable.json.sig -in stable.json