Loading...
Loading...
Create, edit, comment on, and share markdown documents via Proof's web API and local bridge. Use when asked to "proof", "share a doc", "create a proof doc", "comment on a document", "suggest edits", "review in proof", or when given a proofeditor.ai URL.
npx skill4agent add everyinc/compound-engineering-plugin proofcurl -X POST https://www.proofeditor.ai/share/markdown \
-H "Content-Type: application/json" \
-d '{"title":"My Doc","markdown":"# Hello\n\nContent here."}'{
"slug": "abc123",
"tokenUrl": "https://www.proofeditor.ai/d/abc123?token=xxx",
"accessToken": "xxx",
"ownerSecret": "yyy",
"_links": {
"state": "https://www.proofeditor.ai/api/agent/abc123/state",
"ops": "https://www.proofeditor.ai/api/agent/abc123/ops"
}
}tokenUrl_linkscurl -s "https://www.proofeditor.ai/api/agent/{slug}/state" \
-H "x-share-token: <token>"POST https://www.proofeditor.ai/api/agent/{slug}/ops/api/agent/{slug}/ops_links/api/documents/{slug}/opsx-share-token: <token>Authorization: Bearer <token>?token=xxxaccessToken{"op": "comment.add", "quote": "text to comment on", "by": "ai:<agent-name>", "text": "Your comment here"}{"op": "comment.reply", "markId": "<id>", "by": "ai:<agent-name>", "text": "Reply text"}{"op": "comment.resolve", "markId": "<id>", "by": "ai:<agent-name>"}{"op": "suggestion.add", "kind": "replace", "quote": "original text", "by": "ai:<agent-name>", "content": "replacement text"}{"op": "suggestion.add", "kind": "delete", "quote": "text to delete", "by": "ai:<agent-name>"}{"op": "rewrite.apply", "content": "full new markdown", "by": "ai:<agent-name>"}suggestion.addkind: "insert"kind: "replace"rewrite.apply/d/{slug}/bridge/*x-proof-client-versionx-proof-client-buildx-proof-client-protocol/api/agent/{slug}/opshttp://localhost:9847X-Agent-Id: claudeContent-Type: application/jsonX-Window-Id: <uuid>| Method | Endpoint | Purpose |
|---|---|---|
| GET | | List open documents |
| GET | | Read markdown, cursor, word count |
| GET | | List all suggestions and comments |
| POST | | |
| POST | | |
| POST | | |
| POST | | |
| POST | | |
| POST | | |
| POST | | |
| POST | | |
| POST | | |
| POST | | |
| GET | | Poll for user actions |
thinkingreadingidleactingwaitingcompletedhttps://www.proofeditor.ai/d/abc123?token=xxxabc123# Read
curl -s "https://www.proofeditor.ai/api/agent/abc123/state" \
-H "x-share-token: xxx"
# Comment
curl -X POST "https://www.proofeditor.ai/api/agent/abc123/ops" \
-H "Content-Type: application/json" \
-H "x-share-token: xxx" \
-d '{"op":"comment.add","quote":"text","by":"ai:compound","text":"comment"}'
# Suggest edit
curl -X POST "https://www.proofeditor.ai/api/agent/abc123/ops" \
-H "Content-Type: application/json" \
-H "x-share-token: xxx" \
-d '{"op":"suggestion.add","kind":"replace","quote":"old","by":"ai:compound","content":"new"}'# 1. Create
RESPONSE=$(curl -s -X POST https://www.proofeditor.ai/share/markdown \
-H "Content-Type: application/json" \
-d '{"title":"My Doc","markdown":"# Title\n\nContent here."}')
# 2. Extract URL and token
URL=$(echo "$RESPONSE" | jq -r '.tokenUrl')
SLUG=$(echo "$RESPONSE" | jq -r '.slug')
TOKEN=$(echo "$RESPONSE" | jq -r '.accessToken')
# 3. Share the URL
echo "$URL"
# 4. Make edits using the ops endpoint
curl -X POST "https://www.proofeditor.ai/api/agent/$SLUG/ops" \
-H "Content-Type: application/json" \
-H "x-share-token: $TOKEN" \
-d '{"op":"comment.add","quote":"Content here","by":"ai:compound","text":"Added a note"}'/stateby