Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chainmemory-extension

Browser extension for ChainMemory — save and recall AI conversations across ChatGPT, Claude, Gemini, and Perplexity.

What it does

  • Save: a "Save to ChainMemory" button appears on AI responses. One click writes the response to ChainMemory, where it is encrypted and anchored on the ChainMemory blockchain.
  • Inject: a floating "Inject memory" button opens a panel where you pick which memories to send into the current chat, giving the AI continuity with what you discussed on other platforms and other models.
  • Inject project state: if you keep a Project Brain, one click injects its consolidated state — vision, phase, current focus, decisions in force, open risks and priorities — together with its on-chain anchor.
  • Verify: every memory is anchored on-chain with its own event_hash. Anyone can verify a memory was not altered, without your API key and without seeing its content.
  • Work as a team: if your organization issued you a member or project key, the extension works with it exactly as it does with a personal key.

Supported platforms

  • ChatGPT (chatgpt.com, chat.openai.com)
  • Claude (claude.ai)
  • Gemini (gemini.google.com)
  • Perplexity (www.perplexity.ai, perplexity.ai)

Costs — read this before using inject

ChainMemory charges protocol fees in AIC, the native token of its chain. The extension performs two operations that cost:

Action Cost
Save a response 0.001 AIC protocol fee + on-chain storage, which grows with length
Inject memories into a chat 0.1 AIC per injection, regardless of how many memories
Inject project state free
Reading, filtering, tagging, archiving free

Half of every protocol fee is burned, half goes to the ecosystem treasury. Claim free AIC at faucet.chainmemory.ai.

Saving is priced by size, because the encrypted content is written on-chain and every byte is permanent. Measured on the live chain: roughly 0.0008 AIC per 1,000 characters on top of the protocol fee. A typical response costs a fraction of a cent of AIC; the extension shows the estimate on the Save button before you click, and confirms the actual size after.

If you use an organization key, the fees are paid from the organization's balance, not from a wallet of your own.

Current limits

  • There is no character limit on what you save. Until v3.1.2 responses were silently cut at 1,500 characters, which truncated about a quarter of all stored memories without telling anyone. That cut is gone.
  • A single response must fit in one blockchain transaction, which at current gas rates means roughly 20,000 characters. Above that the extension tells you and refuses to save, rather than cutting the text or failing silently. It is a limit of the chain, not of your plan.
  • Project state injection is capped at 7,000 characters, so it fits inside the input box of every supported platform. Only current items are sent — superseded decisions and closed risks stay in the Brain and are not injected.
  • On Perplexity, only the most recent response can be saved. That platform re-renders its page constantly, so the extension keeps a single Save button at the end of the conversation instead of one per response. Saving older responses there is not supported yet.

Installation (unpacked, for development)

  1. Clone this repo:
    git clone https://github.com/chaelynet/chainmemory-extension.git
    cd chainmemory-extension
  2. Open Chrome → chrome://extensions
  3. Enable Developer mode (top right)
  4. Click Load unpacked and select this folder
  5. Click the ChainMemory icon in the toolbar to set up your API key

The published version is available on the Chrome Web Store.

Configuration

When you first open the popup, you have two options:

  • Generate API key automatically: creates a new wallet on the ChainMemory blockchain. Save the key in a password manager — there is no recovery.
  • I already have a key: paste an existing key. Three formats are accepted:
Prefix What it is Where it comes from
aic_ Personal key. Owns its own wallet and pays its own fees generated by you, here or via the API
aicm_ Member key. Operates inside an organization, under your member identity and role issued by your organization's administrator
aicp_ Project key. Same as above, but restricted to a single project issued by your organization's administrator

After setup, claim free AIC at faucet.chainmemory.ai so you can save and inject. Organization keys do not need the faucet — they draw on the organization's balance.

Working inside an organization

Member and project keys are not generated from the extension. Your administrator issues them and gives you the key; you paste it here like any other.

What changes when you use one:

  • Everything you save is attributed to your member identity, not to an anonymous key.
  • Fees are charged to the organization, not to you.
  • Your role decides what you can do. A viewer can read and inject but not save; if you try, the extension tells you plainly — "your role (viewer) cannot write" — instead of showing an HTTP error.
  • A project key only works within the project it was issued for.
  • The organization must be active. If your administrator's subscription is suspended, its keys stop authenticating.

Project Brain

In Settings → Project Brain, set the name of your project. There is no default: if you leave it empty, the "Inject project state" button will tell you to set one. The project must already exist in your ChainMemory account.

Note that the Project Brain is built through the MCP server or the API, not from the extension. The extension can read and inject a project state; it cannot consolidate one.

How injection works

  1. Click the floating "Inject memory" button on any supported AI page.
  2. The panel lists your memories, filterable by project, with an estimated token count each.
  3. Select the ones you want and click Inject.
  4. The text is inserted at the top of the chat input. If the platform's input cannot be detected — rare, happens when a platform changes its HTML — the text is copied to your clipboard instead.

The injection is optimistic: the text arrives immediately and the on-chain payment confirms in the background.

File structure

chainmemory-extension/
├── manifest.json          # Chrome MV3 manifest
├── background.js          # Service worker (opens faucet on install)
├── content.js             # Save buttons, floating FAB, inject panel, project state
├── content.css            # In-page UI styles
├── popup.html             # Extension popup UI
├── popup.js               # Popup logic (onboarding, memories, projects, settings)
├── popup.css              # Popup styles
└── icons/                 # 16/48/128 px brand icons

Version history

  • 3.1.4 (August 2026) — accepts organization keys (aicm_ member, aicp_ project) alongside personal aic_ keys, so a team member can use the extension with the key their administrator issued; a write refused by role now reports "your role (viewer) cannot write" instead of a bare HTTP 403; the version shown in the popup and in the console is read from the manifest, fixing a mismatch where 3.1.3 displayed itself as "v3.1.2".
  • 3.1.3 (July 2026) — removes the 1,500-character cut on saved responses; shows the estimated cost on the Save button before saving and the actual size after; corrects the injection fee shown to the user (it reported 0.001 AIC while the protocol charged 0.1); adds a technical ceiling derived from the chain's block gas limit, which warns instead of truncating; opens the memory panel with its API calls in parallel; response scanning is now linear instead of quadratic on long conversations.
  • 3.1.2 (July 2026) — manifest description now declares the AIC wallet, required by the Chrome Web Store; memory addressing migrated to per-key numbering.
  • 3.1.1 — rejected by the Chrome Web Store and never published. Its changes are included in 3.1.2: compact project-state injection with a hard character cap (fixes "over the limit" on Perplexity), no default project name, and a fix for text duplication in React-based editors.
  • 3.1.0 (July 2026) — project state injection, memory re-tagging and archiving from the popup, project management, per-platform save button strategies.
  • 2.1.0 (May 2026) — floating "Inject memory" button and preview panel.
  • 2.0.x — chain migration to ID 202604, native AIC support, Save flow on 4 platforms.
  • 1.0.x — initial release: Save to ChainMemory on Claude.

Releases 3.1.0 and 3.1.2 were published to the Chrome Web Store before being committed here. This repository was brought up to date in July 2026; the commits for those versions were created from their released sources.

Related projects

Privacy

  • Your API key is stored in chrome.storage.sync, which Chrome syncs across the browsers signed into your Google account. It is not stored by ChainMemory in your browser beyond that.
  • Memory content is encrypted before being written on-chain. The chain stores ciphertext and a hash; the plaintext is never public.
  • The extension talks to api.chainmemory.ai, and opens faucet.chainmemory.ai in a tab when you claim AIC.
  • No analytics, no telemetry, no ads.

Permissions, and why

Permission Why
storage keep your API key and settings
clipboardWrite fallback when a platform's input box cannot be detected
host access to the 4 AI platforms inject the Save button and the memory panel into the page
host access to chainmemory.ai, api.chainmemory.ai, faucet.chainmemory.ai talk to the API and open the faucet

Unchanged since 3.1.2 — 3.1.4 requests no new permissions.

Links

License

MIT — see LICENSE.

About

Browser extension for ChainMemory — save and recall AI conversations across ChatGPT, Claude, Gemini, Perplexity

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages