A personal context lake · hosted in Confidential Space on Google Cloud, or on your own Mac or Linux machine

Remember what you know.

Every fact has a source you can open.

Hemilake ingests mail, calendar, chats, tickets, code and agent sessions into a graph you own. Nothing is overwritten: a superseded fact stays, marked invalid, with its dates.

$ curl -fsSL https://hemi.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 in Gemini Enterprise, Claude and any MCP agent
  • Nothing is overwritten, ever
you type, in any agent
prep me for tomorrow's call about the storage rollout
hemilake 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.

Built on Google Cloud

A hosted lake runs in Confidential Space. We operate it and cannot read it.

The hosted fleet runs on Google Cloud in europe-west1. Gemini embeds what each lake stores and transcribes its voice notes, and Gemini Enterprise, Spark and Antigravity recall from the lake and save to it.

Confidential Space

Each node is a Confidential Space VM with memory encrypted by AMD SEV and no SSH. It runs one container, and its image digest has to be on a list signed with our release key. Google's attestation service signs a token that names that digest. Nobody logs in to the machine, us included.

Keys open only for the attested image

Every lake has its own Cloud KMS key and its own Cloud Storage bucket. Workload identity federation grants both to the attested image, never to the VM or to an operator. State is kept as encrypted snapshots, and destroying the key erases the lake. An organisation can keep its people's keys on a key ring in its own Google Cloud project.

Gemini in the pipeline

Hosted lakes embed every entity and fact with gemini-embedding-001 for vector search, and Gemini Flash-Lite transcribes voice notes. Gemini can also run extraction, the daily brief and the small calls, and the owner picks the model for each tier. The hosted defaults are served from Vertex AI.

Gemini Enterprise and Spark

An admin adds mcp.hemilake.app once as a custom MCP server data store. Each person then authorises their own lake with a passkey, and the assistant, the agents built in it and Spark recall from that lake and save to it. Every tool carries MCP annotations, so Gemini asks before it sends a mail and not before a recall.

Google Antigravity

A plugin for the Antigravity app, the IDE and the agy CLI brings the same recall before each prompt, session memory, skills and tools as in Claude Code.

Google Workspace as a source

Gmail, Google Calendar, Drive and Contacts come in through Google's official APIs under the Limited Use rules, and so do Google Cloud support cases. On a hosted lake the Google sign-in completes inside the instance, so the tokens never pass through us.

What the hosted fleet runs on

A memory that keeps its history

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

A document index knows the latest version. Hemilake 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
  • Google Contacts
  • 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.

Hemilake is built so that the vendor cannot hold your memory, even if it wanted to. The privacy policy lists exactly what it reads and what leaves your machine.

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, your project, or our sealed fleet

A Mac, a Linux box you own, a Confidential VM in your own Google Cloud project, or a hosted lake in Confidential Space. Whoever helps run it never logs in to the machine.

Your model, your terms

The only party that sees plaintext besides you is the model you choose: Gemini or Claude on Vertex AI, another gateway with no-training terms, or a local model. A Mac embeds locally; a hosted lake embeds with Gemini.

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.

For one person

One half that keeps what the other forgets. Only the owner reads it.

For an organisation, Plurilake

Many segments, one circle. The centre is what the company remembers; each segment decides what it contributes.

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://hemilake.com/channels/stable.json
curl -sO https://hemilake.com/channels/stable.json.sig
curl -sO https://hemilake.com/hemisphere-release.pub
openssl pkeyutl -verify -rawin -pubin -inkey hemisphere-release.pub \
  -sigfile stable.json.sig -in stable.json