AgentMark

GitHub

Bookmarks you and your agent can use

Save it now.
Ask your agent later.

Keep the pages, posts, and videos you want to come back to. Searchable by you, Claude Code, Codex, ChatGPT, and Microsoft Copilot.

  • Claude Code
  • Codex
  • Pi
  • ChatGPT
  • Microsoft Copilot
curl -sSL https://raw.githubusercontent.com/codesoda/agentmark/main/install.sh | bash

One command on macOS with Apple Silicon. Intel Macs and Linux build from source. Needs Google Chrome. Setup happens in Chrome, not in a terminal.

Plain text outlives every app
notes.example.com/plain-text-outlives-every-app

Saved

Plain text outlives every app

ID: am_01JCDX4Q8N3T7V2K9R6M5H1BZE

More options

In the background

Summary ready

  • plain-text
  • markdown
  • durability

01The problem

A bookmark is a link. Your agent needs the page.

Browser bookmarks keep a title and a URL, and you seldom open them again. Read-later services keep the text, but on their servers, behind their account. Neither puts the page where your agent works.

Plain text outlives every app

https://notes.example.com/plain-te…

Browser bookmark

A title and a URL. If the page changes or goes away, so does what you saved.

readlater.example/your-list

stored on their servers

Read-later service

The text is kept, but in someone else's cloud and behind an account with them.

~/Documents/AgentMark/2026/11/12/plain-text-…/

├ article.md · bookmark.md

└ source.html · metadata.json …

AgentMark

The page itself, as markdown and HTML in a folder you own. You and your agent search it the same way.

02Capture

Save what you see, even behind a login.

The extension sends the page as Chrome shows it to you. A LinkedIn profile, which blocks a plain fetch with HTTP 999, saves with its real content.

A button per post
On LinkedIn, X, Hacker News and Reddit every post gets its own save button. Posts you saved before show as saved.
An honest icon
The toolbar icon turns blue when you save. One optional switch lets it show pages you saved before, on every site. Blue only ever means saved.
Videos, with words
YouTube videos save with their chapters and captions when yt-dlp is installed.
One shortcut
Cmd+Shift+S saves the current tab. Cmd+Shift+B opens the side panel.
  • Not saved
  • Saving
  • Just saved
  • Saved
  • Failed
Home · feed.example
feed.example/home

Ines Halvorsen

Members onlyBuild Guild · 1h

Notes from Tuesday's incremental builds session: the cache key rules we agreed on.

14replies3shares

Mara Okafor

Platform engineer · 3h

The best case for plain files I have read this year. Every migration I have done ended this way.

32replies11shares

Jonas Tveit

Writes about databases · 5h

Full-text search in SQLite is better than you remember. A thread on FTS5 ranking, tokenizers and the traps.

21replies6shares

Rina Achterberg

Design lead · 1d

Our rules for status colours. One colour, one meaning, everywhere in the product.

8replies2shares

03On disk

Every save is a folder of plain files.

Each bookmark gets its own dated folder in the storage path you choose. Open it in your editor, grep it, back it up. A local SQLite full-text index makes the whole collection searchable.

article.md
The page as clean markdown
bookmark.md
Front matter, summary, your note
events.jsonl
Saved, enriched, reprocessed
metadata.json
OpenGraph and page metadata
source.html
The page as captured

Path pattern: <storage>/YYYY/MM/DD/<slug>-<id>/

plain-text-outlives-every-app-am_01JCDX4Q8N3T7V2K9R6M5H1BZE

plain-text-outlives-every-app-am_01JCDX4Q8N3T7V2K9R6M5H1BZE

bookmark.md1.2 KB

Front matter, your note and the summary.

---
id: am_01JCDX4Q8N3T7V2K9R6M5H1BZE
url: https://notes.example.com/plain-text-outlives-every-app
canonical_url: https://notes.example.com/plain-text-outlives-every-app
title: Plain text outlives every app
description: Why the notes you keep as files outlast every app you write them in.
author: Mara Okafor
site_name: Field Notes
published_at: 2026-10-30T09:00:00+00:00
saved_at: 2026-11-12T05:14:09.482113Z
capture_source: chrome_extension
user_tags:
- local-first
suggested_tags:
- plain-text
- markdown
- durability
collections: []
note: Settle the notes format for the team wiki.
action_prompt: null
state: inbox
content_status: extracted
summary_status: done
content_hash: sha256:7c1e0b94d2a6f35e8b40c7d19a2e6f03b5d8c41e97a0f26b3c5d8e1f4a7b9c02
schema_version: 1
---
​
# Summary
​
Argues that notes kept as plain files outlast the apps that edit them. Compares three migrations between note apps and shows that only the markdown export survived each one intact. Ends with a short checklist for picking formats that stay readable in ten years.
​
# Why I Saved This
​
Settle the notes format for the team wiki.
​
# Suggested Next Actions
​
[pending enrichment]
​
# Related Items
​
[pending]

04For your agent

Ask your agent what you saved.

Installing AgentMark adds an agent skill for Claude Code and Codex. Mention your bookmarks and the agent uses the CLI: it searches, picks a match and reads the article.

  • agentmark search "query"Full-text search across everything you saved
  • agentmark show <id> --fullSummary, tags and the extracted article
  • agentmark list --tag <tag>Filter by tag, collection or state
  • agentmark save <url>Save a link from the conversation
  • agentmark tag <id> <tags…>Add or remove tags

The same commands work for you in any terminal.

agent — ~/notes

what did I save about plain text formats?

Using the agentmark skill

agentmark search "plain text"

2026-11-12 Plain text … [local-first, plain-text, markdown, durability] inbox

2026-10-28 Writing docs that survive a rewrite [docs, markdown] processed

ls ~/Documents/AgentMark/2026/11/12

a-field-guide-to-sqlite-full-text-search-am_01JCDTF2W7Q9X4B8N1K5R3M6VA

plain-text-outlives-every-app-am_01JCDX4Q8N3T7V2K9R6M5H1BZE

agentmark show am_01JCDX4Q8N3T7V2K9R6M5H1BZE --full

Plain text outlives every app

ID: am_01JCDX4Q8N3T7V2K9R6M5H1BZE

… 52 more lines

The closest match is Plain text outlives every app, saved on 12 November. It argues that plain files outlast the apps that edit them: across three migrations, only the markdown export came through intact. Writing docs that survive a rewrite, from October, makes a similar case for docs.

05Write-up

The summary arrives after you move on.

After a save, AgentMark runs the agent CLI you already use, Claude Code, Codex or pi, in the background. It writes a summary and suggests tags. The popup never waits on a model.

No API key
AgentMark runs your local agent CLI. It needs no key of its own.
Hard pages, clean text
Pages saved from the browser's copy, like LinkedIn posts, X threads, Hacker News discussions and Reddit threads, get turned into readable markdown.
Tags stay yours
Suggested tags wait in the side panel until you accept or reject them.
Your rules
Give summaries your own instructions in the side panel's Settings, or turn them off with one switch.
Plain text outlives every app
notes.example.com/plain-text-outlives-every-app

06Privacy

There is no AgentMark server.

The app, the index and every bundle live on your computer. The extension talks only to the AgentMark app, through Chrome's native messaging, and the app answers on the same machine.

Read the privacy policy
  • No account

    Install it and save. There is nothing to sign up for.

  • No sync

    Bundles stay in the folder you pick. Copy or back them up like any other files.

  • No API key

    Summaries run through the agent CLI you already have signed in.

  • Your agent, your terms

    With summaries on, your agent CLI sends the page text to its model under your account. Turn them off and no model sees it.

07First run

Setup happens in Chrome, not in a terminal.

Click the AgentMark icon. If the app is not on your computer yet, the extension shows how to install it, waits for it, then asks two questions and saves the page you are on.

Your computer first
The platform Chrome runs on sits at the top, with the one way to install there. The others are listed below it.
It notices the app
While the popup is open it checks for the app every two seconds. There is a Check again button too.
Two choices
A folder, ~/Documents/AgentMark unless you pick another, and the agent that writes summaries. Summaries are one switch.
Change it later
Settings in the side panel holds the folder, the agent and your summary instructions. Changing the folder does not move bookmarks you already saved.
Plain text outlives every app
notes.example.com/plain-text-outlives-every-app

Saved!

Plain text outlives every app

ID: am_01JCDX4Q8N3T7V2K9R6M5H1BZE

More options

08Install

Two ways in. Today, start with one command.

The two front doors are the Chrome Web Store and a Mac app. Neither is published yet, so today you install the app from Terminal and load the extension yourself. Setup still happens in Chrome.

Mac app

No download yet

Download for Mac

Until the app is published, one Terminal command installs the same pieces on a Mac with Apple Silicon.

Today

  1. Open Terminal and paste this:

    curl -sSL https://raw.githubusercontent.com/codesoda/agentmark/main/install.sh | bash
  2. It installs the agentmark command to ~/.agentmark/bin, unpacks the extension to ~/.agentmark/extension and adds the agent skill. It asks no questions.

  3. Then add the extension in Chrome, as the Chrome card shows.

Chrome extension

Not in the Chrome Web Store yet

Add to Chrome

Until the listing is live, load the extension yourself. This is the developer path, and it works today.

Today

  1. Open chrome://extensions and turn on Developer mode.

  2. Click Load unpacked and choose ~/.agentmark/extension. The install command put it there.

  3. Click the AgentMark icon. It asks where bookmarks live and which agent writes summaries, then saves the page you are on.

By computer

  • Mac Apple Silicon

    One Terminal command

    curl -sSL https://raw.githubusercontent.com/codesoda/agentmark/main/install.sh | bash
  • Mac Intel

    Build from source (needs Rust and Node.js)

    There is no ready-made build for Mac Intel yet. The command builds AgentMark on your computer, which needs Rust and Node.js.

    curl -sSL https://raw.githubusercontent.com/codesoda/agentmark/main/install.sh | bash -s -- --from-source
  • Linux

    Build from source (needs Rust and Node.js)

    There is no ready-made build for Linux yet. The command builds AgentMark on your computer, which needs Rust and Node.js.

    curl -sSL https://raw.githubusercontent.com/codesoda/agentmark/main/install.sh | bash -s -- --from-source
  • Windows

    Not supported yet

    AgentMark does not run on Windows yet.