← All These Scraps

Developers

All These Scraps is built to be talked to. Everything below ships in the app today, works on the same rules as the app itself (locked scraps stay locked, shared piles keep their permissions), and needs no account with us: your scraps stay in your own iCloud. Questions and ideas: hello@allthesescraps.com.

URL scheme Siri & Shortcuts MCP server (Claude and other agents) Export Library format Your data in iCloud The web app

URL scheme

Any app, script, bookmarklet, or launcher that can open a URL can make a scrap. Mac, iPhone, and iPad. Parameters are URL-encoded query items.

Make a scrap

allthesescraps://new?title=Call%20the%20plumber&body=Kitchen%20tap%20drips&thread=House&lane=To%20Do
ParameterMeaning
titleRequired. The scrap's title.
bodyBody text. Line breaks are kept; URLs become tappable links.
threadTag it with a thread (a pile). The pile is created if it doesn't exist. threads is accepted too.
laneDock it in a kanban lane on that thread's board.
checkChecklist items, separated by |.
dateEvent date, ISO 8601, for example 2026-10-01T09:00:00Z.
tintCard colour: yellow, pink, blue, green, orange, purple.

Browsers ask before handing a link to the app, so nothing is created without a tap. Joining a shared pile from a link always shows the pile's name and asks first.

Open a view

allthesescraps://open?view=tasks
allthesescraps://open?view=pile&name=House

view is one of home, tasks, calendar, box, archive, attachments, or pile with name.

Accept a shared pile

allthesescraps://accept-share?url=https://www.icloud.com/share/…

Invitation links on allthesescraps.com/join do the same from a web page.

From a shell on the Mac: open "allthesescraps://new?title=Hello".

Siri & Shortcuts

The app publishes App Intents, so every action below appears in the Shortcuts app and works by voice with no setup. Say "New scrap in All These Scraps" or "Voice scrap in All These Scraps" to Siri, or build your own automations.

ActionWhat it does
New ScrapTitle, body, threads, lane, and date.
Voice ScrapOpens a new scrap recording, transcribed as you speak.
Append to ScrapAdds text to an existing scrap's body.
Add Thread / Remove ThreadTags a scrap with a pile, or takes it off one.
Move to LaneDocks a scrap in a kanban lane.
Complete Scrap / Reopen ScrapArchives a scrap or brings it back.
Pin ScrapPins or unpins.
Add Checklist Item / Check Off ItemChecklist changes.
Attach FileAttaches a file or picture to a scrap.
Find ScrapsSearch by text, thread, lane, or completion; returns scraps for later actions.
Get BoardA pile's kanban board, or the combined Tasks board, lane by lane.
Open Scrap / Open PileNavigation.

Scrap and pile parameters are chosen from lists in Shortcuts, so actions chain: Find Scraps → Move to Lane, for example.

MCP server for Claude and other agents

On the Mac, the app can host a Model Context Protocol server on your own machine, so Claude, or any MCP client, can read and change your scraps under your control. It listens on loopback only (127.0.0.1:8977), never off your Mac, and every request needs the bearer token the app shows you.

Turn it on

☰ menu → Claude Access…. Switch it on and copy the command it shows, which registers the server with Claude Code:

claude mcp add --transport http scraps http://127.0.0.1:8977/mcp --header "Authorization: Bearer <your token>"

Any other MCP client works the same way: streamable HTTP transport, endpoint /mcp, JSON-RPC 2.0 over POST, plain JSON responses. Regenerate the token from the same screen at any time.

Tools

ToolArgumentsReturns
search_scrapstext, thread, lane, include_completedMatches with id, title, threads, lane, completed.
get_scrapidBody text, checklist, threads, dates.
create_scraptitle (required), body, threads (array), lane, date (ISO 8601)The new scrap.
append_to_scrapid, textThe scrap.
add_thread / remove_threadid, threadThe scrap.
move_to_laneid, lane, pile (omit for Home)The scrap.
complete_scrapid, completed (default true)The scrap.
add_checklist_itemid, textThe scrap.
check_off_itemid, text (first unchecked match)The scrap.
list_pilesnoneEvery pile with its lanes and active scrap count.
get_boardpile (omit for the combined Tasks board)Lanes with their scraps.

Raw example

curl -s http://127.0.0.1:8977/mcp \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"create_scrap","arguments":{"title":"From a script","threads":["Ideas"]}}}'

Scrap ids are opaque strings returned by search_scraps, create_scrap, and get_board; pass them back unchanged. Locked scraps are never returned, and writes into piles shared with you follow the share's permission.

Export Library format

Export Library… (☰ menu, or File on the Mac) writes one zip you can open anywhere, including as an Obsidian vault:

All These Scraps Library/
  README.md
  Home.md              scraps on the Home table, as [[links]]
  Scraps/<title>.md    one file per scrap
  Archive/<title>.md   scraps marked done
  Piles/<pile>.md      a page per pile: its scraps by lane
  Attachments/<title>/1.jpg …
  library.json         everything, machine-readable

A scrap file

---
title: "Seed order"
created: 2026-03-04T15:02:11Z
modified: 2026-03-05T09:40:00Z
piles: ["Garden"]
lane: { pile: "Garden", lane: "To Do" }
date: 2026-03-10T14:00:00Z
tint: yellow
pinned: true
stitches:
  - { to: "Soil test", label: "after" }
---
# Seed order

Zinnias and cosmos.

- [ ] Order seeds

![](../Attachments/Seed%20order/1.jpg)

Stitched to: [[Soil test]] (after)

Keys appear only when they apply. Headings, bullets, bold, italic, and links in the body come through as Markdown.

library.json

format is allthesescraps-library, version 1. piles lists each pile's name, lanes, and favorite. scraps holds one object per scrap with file, title, summary, created, modified, tint, pinned, draft, locked, date, done, piles, lanes, checklist, stitches, attachments, and body, the body's exact formatting as the app stores it (see below), so a future import restores it byte for byte.

Import Text or Markdown… reads .md and .txt files back as scraps: a leading # line becomes the title, headings and bullets become styles.

Your data in iCloud

There is no server of ours. The apps store everything in your iCloud private database through Core Data's CloudKit mirroring, and the web app reads and writes those same records with CloudKit JS. If you want to read your own library directly, this is the shape:

Read with change tokens (fetchRecordZoneChanges) rather than queries, and you get additions, edits, and deletions in one pass without needing any indexes.

The web app

allthesescraps.com/app is a static page that signs you in with your Apple ID through CloudKit JS and talks to your iCloud directly; nothing passes through us. It installs as an app from Edge or Chrome, and its source is served unminified if you want to see exactly how it reads and writes the records above.

Building something on this? We'd love to hear: hello@allthesescraps.com.