Security

How Morphika keeps agent memory secure

Morphika is built so that no single agent can quietly change what others rely on. Changes to shared memory wait for another person's approval, every call is recorded in a hash-chained audit log you can verify, agents sign in with OAuth instead of API keys, and anything that looks like a credential is refused before it is stored.

This page lists each control as it works today. Morphika is a private pilot; it holds no certifications, and this page claims none.

About Morphika: Morphika is secure, shared memory for personal AI agents like Claude Code, Codex and Claude Desktop. How it is secured.

Who can change memory?

WhereReadsWrites
Your personal memoryYou and your connected agentsSave straight away. You are the only owner, so there is no one else to approve
A shared workspaceEvery member's agentsWait for another member to approve. Nobody can approve their own request
Read-only connectionRead, search and listNever

An undecided request expires after one hour. Policy is checked again when a request is approved, and an approved write runs exactly once, credited to the member whose agent asked.

How do expiry, history, forget and export work?

  • Expiry. An entry can carry an expiry date. Once it passes, the entry is hidden from every read, list, search, history and export, on every address, without waiting for any clean-up.
  • History. memory_history lists an entry's versions: when, by whom, expiry, what it replaced and where it came from. Old text is not kept, so history can't hand back something you overwrote.
  • Forget. memory_forget hides one entry at once. Only its author, or an owner of the workspace, can forget it; in a shared workspace it waits for another member's approval, like a write. It is never on the read-only address.
  • What is deleted, and when. A forgotten or expired entry's version records and search data are deleted 7 days later, the next time that memory space is used. The stored entry itself is erased when your account is deleted or, for a shared workspace entry, when that workspace is deleted; until then it stays hidden. Every expiry and forget is in the audit log.
  • Profile. One reserved entry, profile, holds the context each session starts with. In a workspace only an owner can change it, with another member's approval.
  • Export. Only the dashboard can export your memory in bulk, as a JSON file with secrets still masked. No agent can page through a whole memory space, on any address.

How do approvals and Face ID work?

  • The push notification carries only the request's id, never what the action does.
  • Details load after you unlock the Morphika iPhone app.
  • Every approve or deny in the app needs Face ID or Touch ID, checked on the device by Apple's LocalAuthentication. Your biometric data never leaves your phone or reaches Morphika.
  • You can also decide from the web dashboard.

What does the audit log record?

Every call through the hub, whatever the outcome (allowed, denied, pending approval or failed), is appended to a tamper-evident log. Each entry records which internal account identifier made the call, the tool, when, the verdict, and which client and workspace it came from. Arguments and results are stored as SHA-256 hashes, not as raw content. A few descriptive fields are kept as text, such as the name of the memory entry a call targeted and any note an approver adds.

Each entry is linked to the one before it by a SHA-256 hash, so changing or removing a past entry breaks the chain. You can re-check it at any time with Verify now in the dashboard or the audit_verify tool. Very large logs are checked in batches, and the result says when a check was partial. Attribution details such as the client name sit beside the chain, not inside it.

How do agents sign in?

  • OAuth 2.1 with PKCE. Your agent opens a browser page; you sign in and click Authorize. There are no API keys to copy, paste or leak.
  • Access tokens last one hour and are bound to the address the agent connected to: full access, read-only (https://mcp.morphika.ai/read/mcp), or one workspace.
  • Revoke any connected agent from the dashboard. The hub refuses it immediately and permanently, and the sign-in server revokes its refresh tokens.

How are secrets and prompt injection handled?

  • A call whose arguments contain a credential or financial detail (for example an API key or a card number) is refused before it runs or is queued for approval. Only the type of finding is logged, never the value.
  • Secrets and personal details such as email addresses and phone numbers are masked in results returned to agents.
  • The workspace a call reaches is set by the connection's URL, never by a tool argument, so text an agent reads can't redirect it into another workspace.
  • The read-only address carries only 7 recall tools: read, search and list memory, see an entry's version history, read the profile, and find and read uploaded documents. Nothing on it can write, forget or delete, and approvals, the audit log and connection management are never on it.

What is stored, and where?

ServiceHolds
Sign-in server and dashboard (auth.morphika.ai)Your account (email, optional name, hashed password), sessions, and connected agents' tokens
Memory hub (mcp.morphika.ai)Your memories and workspaces, approvals and the audit log, kept separately for each account and workspace
iPhone appYour sign-in, so it can reach the hub; the app is built with no third-party dependencies

Both services run on Railway. Search by meaning uses an embedding model that runs on the hub itself, so memory content and search queries are not sent to an outside AI service. Workspace invite codes are single use, expire after 7 days, and are stored only as hashes. The processors we use (Railway, Resend, Cloudflare, Apple Push Notification service) are listed in the Privacy Policy.

How do I delete my data?

Delete your account yourself: in the iPhone app under Settings → Delete account (confirmed with Face ID, Touch ID or your passcode), or in the dashboard under Account → Delete account (confirmed by typing DELETE and your current password). That immediately removes your personal memories, workspaces where you are the only member, your pending requests, memberships, devices, connected agents' tokens, sessions and sign-in details.

Entries you wrote into a shared workspace stay with that workspace, and its audit trail stays verifiable, with free text replaced by “removed: account deleted”. The full rules are in the Privacy Policy.

How do I report a security issue?

Email support@morphika.ai with the details. We'll follow up directly.

Published September 25, 2026 · Last updated