Native macOS · Next-generation clipboard manager

The next-generation
clipboard manager
Keep · Use · Connect

Traditional clipboard tools only list what you copied; what the content itself looks like is not their business. Hangli adds three layers — it still holds your seven types of history, but it also reshapes content on the spot: one ⌃⌥⌘W turns Markdown into rich text Word understands, the context menu hands it to AI or exports it to a file, and with MCP on, Claude Code and Cursor can come and read it themselves.

  • KeepSeven content types · Clothesline · Groups & sync
  • UseAI actions · Format conversion · Delivery anywhere
  • ConnectBuilt-in MCP · Let agents pull
macOS 14 or later Builds for Apple Silicon and Intel No Pandoc or Python needed
Hangli · Clothesline (mockup)
Clothesline Grid List
Text ⌘1 ChatGPT
# Q3 review
Link ⌘2
developer.apple.com
Image ⌘3
Table ⌘4
Converted · press ⌘V in Word
Origin story

In a crowded market, why build another clipboard tool?

Clipboard managers were nothing new, and they increasingly looked alike. We rebuilt one not because history lists aren't pretty enough, but because nobody ever took over the part that comes after the copy.

01 · The spark

The idea of hanging a screenshot

A screenshot tool from overseas doesn't nag you to save the file. It hangs the shot on a line across the top of the screen: look up when you need it, let it slide away when you're done. The first time I saw it, one thought landed — isn't the clipboard the same? Mostly temporary, single-use, worth being seen and not worth filing.

So the Clothesline became Hangli's first foundation stone: copy and it hangs, look up and it's there.

02 · The pain

What really hurt was the paste

Almost everything AI hands back is Markdown. Paste it straight into Word and you get **bold** and | tables | everywhere; switch to “keep text only” and all the layout is gone. The only everyday workaround was to find an online converter, paste the content in, convert it, and copy it back out.

Something that should have been solved inside the clipboard took a full detour.

03 · Building it

Stitching the two ideas together

One idea kept things hanging, the other made them useful. If the content is already on the clipboard, then formatting, translating, summarizing and exporting should happen before it leaves. Following the gaps real work kept opening up, custom prompts arrived, then one-key export to DOCX / PDF / XLSX / Markdown / HTML / SVG / XMind, and share images rendered in ten styles as PNG / JPEG / WebP.

Features kept piling up; the starting point never changed.

So Hangli isn't another prettier history list. Traditional clipboard managers work on layer one — listing what you copied. Hangli fills in the two layers above it: content that can be delivered the moment it leaves your hands, and that AI agents can read directly. This isn't running faster on the same road, it's taking a different one. See the three layers.
New generation

Clipboard managers are due for a new generation

For over a decade these tools have done the same three things: list what you copied, let you search it, let you paste it again. What the content becomes after the copy has never been anyone's job — Markdown from AI gets smeared into Word as-is, a table screenshot stays a picture. Hangli fills in the two layers above.

Traditional clipboard managers

One layer only

  • Records copy history
  • Search, favorite, group
  • Pastes it back unchanged
Whatever you copied, handed back exactly as it was
Layer 3 Connect

Your AI agent reads it directly

The built-in MCP server is read-only and binds to the loopback address only. Whichever agent you work in can look up what you just copied — no switching back to paste it by hand.

  • One-click setupSettings → AI → Connect AI tool…
  • Read-only MCP server127.0.0.1:39817 (configurable)
  • Three toolslist_clips / search_clips / get_clip
Layer 2 Use

Turn content into something you can deliver

This is the stretch traditional tools never touch: what the content becomes once copied. Hangli rewrites the delivery format on the clipboard itself, or writes it straight to a file and hands it to the next tool.

  • One shortcut to format⌃⌥⌘W: Markdown → rich text in Word
  • AI actionsSummarize / translate / polish + custom prompts
  • Table photos to ExcelOCR a table screenshot into XLSX
  • Export to filesDOCX · PDF · XLSX · HTML · SVG · XMind · share images
  • Deliver elsewhereDesktop sticky notes · Obsidian · Apple Notes
Layer 1 Keep

History, search, tidying

Everything a traditional clipboard manager does, Hangli does too: seven content types sorted automatically, hanging storage at the top of the screen, groups and pins that stop getting lost, and history that follows you across Macs through iCloud.

  • Seven content typesText · Links · Images · Video · PDF · Files · Audio
  • TidyingGroups / favorites / pins / full-text search
  • ClotheslineThree views · eight themes · ⌘1–⌘0
  • SynciCloud Drive snapshots + iOS reader
All three layers share one local history. On the AI layer, keys live in the local Keychain and requests go to the service you configure; the MCP layer is read-only, with a separate token for every connected tool. More doors, same rule: your data never leaves this Mac.
Overview

One tool that walks the whole road from copy to delivery

A clothesline at the top of your screen

Clipboard history hangs on a line: three views, eight themes. Glance at the menu bar to bring it down, then ⌘1–⌘0 to copy the first ten items.

One shortcut to Word

⌃⌥⌘W rewrites the Markdown on your clipboard as rich text Word understands — real headings, real lists, real tables.

Seven content types, all hangable

Text, links, images, video, PDF, files and audio each get their own type. Turn capture on or off per type and filter history by it.

Export anywhere

DOCX, PDF, XLSX, Markdown, HTML, SVG — plus rendered share images, notes written into Obsidian, or Apple Notes.

AI summarize · translate · polish

Straight from the context menu, with editable results you can save as new items. Works with any OpenAI-compatible service; the key stays in your local Keychain.

Table photos to Excel

Copy a screenshot of a table, have it recognized as a real table and export XLSX. Local recognition or Baidu cloud recognition, your choice.

MCP: let AI read your clipboard

A built-in read-only MCP server bound to 127.0.0.1:39817. Claude Code, Cursor and Codex each connect with a single command.

iCloud sync

History snapshots sync through iCloud Drive, and merging never drops a pin or a favorite. A companion iOS reader renders Markdown into long images and PDFs.

ClotheslineKeep

Your clipboard shouldn't hide in a menu

Press ⌃⌥Space, or rest the pointer on the menu bar for a moment, and the Clothesline unfolds from the top of the screen. It's a borderless floating panel that follows the pointer's display, never steals focus, and hands focus straight back to the app you came from.

All Work Assets + Text ▾ Source: ChatGPT ▾
Text⌘1ChatGPT
Product brief
Table⌘2Claude
Comparison table
Link⌘3
Swift.org
Image⌘4
  • Pinned means visible — once pinned it won't collapse when you switch apps or copy something new, and the state is remembered.
  • Groups and filters — build your own group tabs, filter by type or source app, and switch groups with Tab / ⇧Tab.
  • Keyboard first — the first ten items sit on ⌘1–⌘0; ⌘D favorites, ⌘P pins as a sticky note, Delete removes the hovered item.
  • Modifier drag — drag a card with ⌥ to get Word format, with ⇧ to get a table.
  • Deduplication — identical content is stored once, and pinned or favorited items ignore both the item cap and the retention window.
  • Out of your way — a 0.18-second fade, no shadows, no border. It takes the keyboard only once focused, and gives it straight back after you paste.

Eight clothesline themes

Default · Minimal
Christmas
Lunar New Year
Star lights
Neon rainbow
Flowering vine
Sunny sky
Morning garden
The problem

From AI to Word, one shortcut short

AI answers always come back as Markdown. Paste straight into Word and you get **bold** and | tables |; choose “keep text only” and the formatting is lost. Hangli rewrites the clipboard itself, so pasting works in any rich-text editor.

Paste Markdown as is source
# Q3 review This week's **focus** is three things: - Ship the export system - Round out the AI actions - Fix 2 paste issues | Metric | Target | Actual | | --- | --- | --- | | Build pass rate | 100% | 100% |
Paste after Hangli converts rich text

Q3 review

This week's focus is three things:

  • Ship the export system
  • Round out the AI actions
  • Fix 2 paste issues
MetricTargetActual
Build pass rate100%100%
⌃ ⌥ ⌘ W

Click here to see what it does

ClipboardMarkdown source
Parse structureHeadings / lists / tables
Write RTFRich text + plain-text fallback
Back to WordJust press ⌘V
What lands on the clipboard is RTF plus a plain-text fallback — DOCX bytes are never shoved in there. And nothing sends a paste keystroke to another app for you: focus stays where it was, and ⌘V is yours to press.
Export systemUse

Start from one record, end up anywhere

Word, Excel, Markdown, HTML, PDF and share images all live in one export system: document formats do real file writes, tables land directly as worksheets, and share images render as 3:4 cards.

DOCX

Laid out by the export template as a standalone OOXML document — no Word or Pandoc needed.

PDF

Paginated for you, ready to preview and share from the system.

XLSX

Markdown tables or recognition results written as worksheets.

Markdown

Exported as-is, ready for any static site or note vault.

HTML

Ships with its own preview window; the code is ready to reuse.

SVG

Vector output with scripts and external references sanitized away.

Copy as table

Writes both HTML and TSV representations, so whatever you paste into understands it.

Pin as Sticky Note

Posts a sticky note that floats above every app, with adjustable color, size and opacity.

Export system · Share imagesUse

Markdown rendered straight into share images

440×586 by default — the 3:4 card ratio social platforms like. Ten built-in themes. Cover title, body font, palette, line height, page margins, page-number position and ruled lines are all adjustable; long content paginates automatically, and a single --- forces a page break.

  • Exports PNG / JPEG / WebP at 1x–4x
  • Multi-page files are named automatically (“name”, “name-2”…), up to 100 pages
  • Right-click a card → “Export as Image” and pick a style
Hang your
clipboard
1 / 3
2 / 3
Light
Ivory
Paper
Dark
Midnight
Retro
Pink
Mint
Ocean
Lavender
Export templates · Word

One shortcut into Word, with the styling kept in a config file

Exporting isn't just stripping Markdown symbols — what the output looks like is a separate question. Hangli pulls that out into a config file, the template: fonts, sizes, line spacing, indentation, heading levels, table styling, margins, headers and footers all live in there.

  • Supports CommonMark / GFM: headings, paragraphs, bold, italic, strikethrough, links, quotes, nested lists, task lists, code blocks, line breaks
  • Tables become editable tables in Word, not fake tables lined up with spaces
  • Import styles from a Word file: pick the cleanly formatted .docx you already have and its fonts, sizes, line spacing and table styling are copied over — no retyping parameters
  • One template, four consumers: rich-text paste into Word, DOCX, PDF and Excel table styling all read the same config — edit it once and everything follows
  • Templates can be created, duplicated and set as default; each one is a JSON file you can back up, carry to another Mac, or hand to someone else
  • Conversion runs through our own RTF and Office Open XML writers: no Word, no Pandoc, no Python, no external service
Terminal · optional local conversion CLI
# writes .docx / .rtf / .html / .txt directly
swift run HangliConvert docs/sample.md /tmp/hangli-output
When you paste in Word, don't pick “Keep Text Only” — Word throws the formatting away itself. Word and WPS builds differ slightly here, so test it on your own.
Edit template · Standard (default)
Style sourceQ3-report.docx
MarginsTop/bottom 2.54 · left/right 3.18 cm
Page backgroundNone / solid / image
Heading levels22 / 18 / 16 / 14 pt
Body stylePingFang 12 pt · line height 1.5
Table styleBordered · bold, shaded header
Header & footerFooter text · centered page number 9 pt
ExportTemplates / standard.json
{
  "name": "Standard",
  "sourceDocument": "Q3-report.docx",
  "margins": { "top": 2.54, "left": 3.18 },
  "body": {
    "chineseFont": "PingFang SC",
    "size": 12, "lineSpacing": 1.5
  },
  "table": {
    "kind": "bordered",
    "cellPadding": 8, "autoHeader": false
  }
}
Tables & Excel

Tables land as Excel worksheets, not one smeared paste

What you copied was a table, so what you export should be a table. Hangli writes the .xlsx itself — no CSV detour, no Excel required.

Tables become worksheets

Markdown tables are written out in order as “Table 1”, “Table 2”…, header row intact and ready to use.

Prose gets its own sheet

Paragraphs and lists go into a “Body” sheet, one row per paragraph, still editable back in Excel.

Web tables just work

A table copied from a web page (HTML or tab-separated text) becomes a single “Table” sheet — no manual realigning first.

Table screenshots count too

Table screenshots and PDFs go through OCR and export to XLSX the same way, so nothing has to be retyped.

Copy is already a table

Copying a table writes both HTML and TSV, so it pastes as a table into Excel, Sheets or Notion.

Styling follows the template

Border weight, color and header shading come from the shared settings; the “Body” sheet can get borders too.

From AI to Excel: also one shortcut short

Tables from AI are Markdown too. Paste one straight into Excel and the whole thing crams into a single cell, pipes and dash lines included, and you're left doing “Text to Columns” by hand. A screenshot of a table is worse still — you type it out. Hangli parses the header and every row first, then writes the .xlsx itself: open it and it's a real worksheet you can sort and calculate in.

Paste straight into Excel all crammed in A1
ABC
1
| Metric | Target | Actual | | --- | --- | --- | | Build pass rate | 100% | 100% |
2
3

Header, numbers and pipes all sit in A1; Excel has no idea this was four columns by three rows.

Open what Hangli exported worksheet
ABC
1
Metric
Target
Actual
2
Build pass rate
100%
100%
3
Test cases
128
128
Table 1Body

Header is a header, numbers are numbers — sorting, filtering and formulas all work.

ClipboardMarkdown Table
Parse header & rowssplit on the separator row
Write the XLSX“Table 1” + “Body” sheets
It's a worksheetno CSV in between
Markdown isn't the only source: tables copied from the web (HTML or tab-separated) become a single “Table” sheet, and table screenshots or PDFs are recognized first and written to the same .xlsx. Recognition results live in memory only and clear on restart.
Mind map · XMindUse

AI only hands back a Markdown outline — Hangli hands you .xmind

Ask AI to lay out a structure and what comes back is Markdown full of hash marks. Turning that into a real mind map normally means: save it as .md, open XMind, create a blank map → import Markdown → save as .xmind. Three or four steps there and back, plus a temp file to clean up afterwards. Hangli writes that outline straight to .xmind — double-click and it is a map you can fold and unfold.

Headings are the hierarchy

The shallowest heading becomes the root and every deeper level nests one step; lists, tables and code blocks hang off whichever branch is open where they appear.

A real package, not a renamed file

XMind's own ZIP package: content.json + metadata.json + manifest.json, with the core version declared, so opening it never prompts you to upgrade an old document.

Long input stays readable

Topic titles longer than 180 characters get cut and tables contribute at most their first 60 rows — the map never turns into a wall of text.

From a Markdown outline to a mind map you just open

A Markdown outline reads as indentation but it is not a map: you count hash marks to tell levels apart, and collapsing, dragging branches or recolouring them is simply not something it does. Hangli builds the outline into a tree by heading level and writes it in XMind's own package format — the exported file opens straight into XMind, with no import step in between.

The outline AI gave you Markdown source
# Product roadmap ## Export system - DOCX - PDF - XLSX ## Connection layer - MCP - Shortcuts

The hierarchy is there, but it is only text: to get a map you still save a file, open an app, import, then save again.

Double-click what Hangli exported .xmind file
Product roadmap
Export system DOCXPDFXLSX
Connection layer MCPShortcuts
Clothesline Hover previewSearch

The root topic, the branch colours and the one-sided layout are all written into the file — it opens ready to expand and collapse.

ClipboardMarkdown outline
Build the treeshallowest level is the root
Write .xminda ZIP with three JSON files
Double-clickit is a mind map
A document with no heading at all still gets a map: it falls back to lists and paragraphs to build the structure. The file needs no XMind account and no network — and as with Excel, only text records get this entry.
AI & recognitionUse

The part that needs judgment, handled too

AI is optional and off by default. Once enabled, requests go only to the service address you fill in — Hangli has no server of its own.

AI summarize / translate / polish

Right-click text on the Clothesline or in the history list; each action has its own global shortcut.

  • Works with any OpenAI Chat Completions service; localhost can use plain HTTP
  • Translation defaults to “auto”: Chinese to English, anything else to Chinese — or name a target language
  • Five preset prompts — extract key points, proofread, pull out to-dos, data highlights, rewrite — each one bindable to a shortcut
  • Results are editable, copyable and saveable as new items; the original stays put, and requests can be cancelled or retried
At most 128 KB of selected text per request; redirects are never followed; the API key is written only to the local Keychain and is neither read at launch nor synced.
AI · Custom PromptsUse

Save the question you keep asking as one line in the context menu

Summarize, translate and polish are generic actions, but what you actually ask again and again is usually the same few things: pull out the key points, list the action items, rewrite it in your weekly-report voice. Hangli lets you save that sentence as a prompt — give it a name, pick an icon, write the body, then bind a global shortcut to it.

By the third time you ask the same question, it should be saved

Using AI in a chat box means repeating every step: paste the text, type the prompt, wait, copy the answer back. The prompt itself is something you maintain — write “list it as bullets” today, phrase it differently tomorrow, and the output changes. Hangli turns it into a record: kept on this Mac, shown in the context menu, one click on the selected text and it runs.

Typed by hand in an AI chat box every single time
(the original text you pasted…) Extract the key points of the following, listed as concise bullets, keeping the important facts and conclusions, in the source language.

You paste the text once and retype this once as well; switch windows and the wording you used last time is gone.

A prompt inside Hangli one menu line
Key PointsProofreadData PointsMy weekly report template
NameMy weekly report template
Iconpick one of 12
Bodysent together with your selection
Shortcutoptional, one per prompt

Once enabled it shows up right in the context menu for clipboard text; the ones you are not using can be switched off.

Copy or select textthe item on the clipboard
Pick a promptor press its shortcut
Prompt + text sentto the address you filled in
Editable resultcopy it, or save it as a new record
Five presets are ready to use — Key Points, Proofread, Extract To-Dos, Data Points and Rewrite, with the first two on by default; each can be edited on its own and bound to its own shortcut. The prompt body is sent together with your selection to the service address you filled in; the original record is left alone, and whether the result becomes a new record is up to you.
MCP serverConnect

Let AI read your clipboard directly

Hangli ships a read-only MCP server that listens on 127.0.0.1:39817 by default (port configurable) and binds to the loopback address only. Every connected tool gets its own token, and Host and Origin are validated against DNS rebinding.

Note that it is not in the context menu: MCP is a read-only door for AI tools. Flip the switch in Settings → AI, then use “Connect AI tool…” to hook up Claude Code, Cursor and Codex one by one.

  • list_clips — lists items, filterable by type, favorite and pinned, 20 by default and up to 100
  • search_clips — searches by text, title or source app
  • get_clip — fetches the full content by id
Security
Off by default, switched on manually in settings. Image content is never shared over MCP — only source and time metadata. Failed auth returns 401/403, unknown paths return 404.

One-click setup

Choose “Connect AI tool…” in Settings → AI and Hangli writes the config straight into that tool and stores this separate token — no hand-copying JSON.

Claude Code Claude Desktop Codex Cursor WorkBuddy Other tools

After changing the port, connected tools need to be disconnected and reconnected.

Other tools · copy config
{
  "mcpServers": {
    "hangli": {
      "url": "http://127.0.0.1:39817/mcp",
      "headers": { "Authorization": "Bearer <a token created for this tool>" }
    }
  }
}

Hangli must stay open while the server runs. Writes, deletions and image content are all unavailable.

Shortcuts

Eight slots, all rebindable

These are the defaults. Change them in Settings → Shortcuts, and give each custom prompt a shortcut of its own.

ActionAboutDefault shortcut
Convert to WordRewrite the Markdown on the clipboard as RTF rich text⌃⌥⌘W
Show / hide the ClotheslineOr rest the pointer on the menu bar icon⌃⌥Space
Copy as plain textStrip all formatting before it hits the clipboard⌃⌥⌘V
Table conversionTurn a Markdown table into a pasteable table⌃⌥⌘E
Table photo to ExcelRecognize the table screenshot on the clipboard and export XLSX⌃⌥⌘I
AI SummarizeSummarize the current clipboard text⌃⌥⌘S
AI TranslateTranslate into the target language, direction detected automatically by default⌃⌥⌘T
AI PolishRewrite the wording while keeping the meaning⌃⌥⌘P
Odds and ends

These jobs never had to leave the clipboard

Clean a link, strip the formatting, split a sentence, convert to SVG — none of it is big, yet each one normally means hunting for another small app, website or utility. Here you select the content, click once, and it's done.

More features All in the same context menu, ready when you are 9 items
Word split (Big Bang)Chinese is cut by dictionary word, English by space, across three granularities — word, character, sentence — then every piece can be tapped out or composed back together.
Export SVGSVG is exported as-is after scripts, external references and on* handlers are stripped; Markdown is rendered into a vector image instead.
Export HTMLHTML stays HTML; Markdown is rendered into styled HTML. Both can be previewed first.
Clean URLStrips the redirect wrapper and tracking parameters that ride along with shared links, leaving the clean original.
Copy as plain textDrops font, colour and formatting and puts only the text back on the clipboard.
Copy as tableWrites a real table you can paste, instead of the raw text with all its pipes.
Preview & Export…See the result in one window first, then decide whether it leaves as Word, PDF, Markdown or something else.
Pin as Sticky NotePins a record as a note floating on your desktop — editable, movable, one ⌘P away.
Save to Obsidian and NotesWrites the record straight into your Obsidian vault or exports it to Notes, so nothing has to be pasted back and forth.
FAQ

Questions you might have

Is my clipboard content uploaded anywhere?

Network requests happen in exactly three cases, all of them triggered by you:

  • AI actions you configure and click — requests go to the address you filled in, not to a Hangli server.
  • OCR where you explicitly choose “Baidu cloud recognition (uploads the image)”.
  • iCloud sync, if you turn it on.

Everything else runs locally. There is no analytics code in the app.