A personal context lake · runs on your Mac or your Linux machine, no Docker

Remember what you know.

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

needs a licence key macOS on Apple Silicon Linux, no Docker signed releases

  • Sealed with a key only you hold
  • Works with any agent over MCP
  • Nothing is overwritten, ever
you type, in any agent
prep me for tomorrow's call about the storage rollout
hemisphere recalls, before the agent answers
  • valid since 2026-08-20Rollout deadline moved to 5 November; Marta moved it after the vendor slipped.teams platform-weekly · open source text
  • valid since 2026-07-11Migration cost estimated at €48k, approved in the Q3 budget thread.mail from Finance · open source text
  • valid since 2026-09-15You promised Jon a rollback plan before the call. Still open.voice memo Monday · open source text
  • valid 2026-06-03 → 2026-08-20 · supersededRollout deadline is 15 October.jira INFRA-812

Illustrative. The facts, the people and the channels are yours.

Every fact has a source

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.

Time is first class

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.

You hold the keys

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.

How it works

Everything you've seen, said and decided, in one graph you own.

01 · Collectepisodes

Your channels, as they are

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.

02 · Connectgraph

People, projects, decisions, dates

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.

03 · Recallmcp

Before the agent answers

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 memory that keeps its history

Ask when the deadline moved, from what, and who moved it.

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.

  • 28,943facts in the author's graph
  • 5,784episodes, 22 sources
  • valid 2026-06-03 → 2026-08-20 · mailStorage rollout deadline: 15 October
  • valid since 2026-08-20 · teamsStorage rollout deadline: 5 November
  • valid 2026-06-10 → 2026-07-28 · jiraRollout owner: Jon
  • valid since 2026-07-28 · teamsRollout owner: Marta
Sources

The channels you already work in.

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.

  • Microsoft 365 mail
  • Microsoft 365 calendar
  • Teams chats and meetings
  • Slack
  • Gmail
  • Google Calendar
  • Jira
  • GitHub
  • WhatsApp opt-in
  • Telegram
  • Voice memos transcribed locally
  • OneDrive and SharePoint
  • Google Drive
  • Confluence
  • People directory
  • Local folders
  • mem.ai
  • Google Cloud support cases
  • Claude Code sessions

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.

Privacy is the architecture

Nobody else can read it. Not us, not your employer, not the cloud.

Hemisphere is built so that the vendor cannot hold your memory, even if it wanted to.

Sealed at rest

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.

Your hardware, or your project

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.

Your model, your terms

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.

Counts, never content

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.

pluribus coming 2027

Out of many hemispheres, one memory for the organization.

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.

You publish

an episode, at the scope you choose: team, project, organization.

It answers back

with what the company knows that you are entitled to see.

Existence without content

when knowledge is out of your scope, it names the team, not the text.

Withdraw any time

and every fact derived only from it is invalidated.

Releases

Three channels, one command to move between them.

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.

ChannelVersionReleasedCommit
loading…

Verifying a download by hand

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