AI Newsletter Digest improvements: fixed QP soft line break decoding, URL extraction, and content cleaning

This commit is contained in:
Krilly
2026-03-04 13:29:22 +00:00
parent 29a98137a7
commit 57dd294675
13706 changed files with 2114953 additions and 237629 deletions

View File

@@ -0,0 +1,113 @@
---
name: reflect
description: Append to daily notes and create notes in Reflect. Use for capturing thoughts, todos, or syncing information to your knowledge graph.
homepage: https://reflect.app
---
# Reflect Notes Skill
Reflect is a networked note-taking app. Notes are E2E encrypted, so the API is **append-only** — we can write but not read note contents.
## Setup
1. Create OAuth credentials at https://reflect.app/developer/oauth
2. Generate an access token from that interface
3. Set environment variables:
```bash
export REFLECT_TOKEN="your-access-token"
export REFLECT_GRAPH_ID="your-graph-id" # Find via: curl -H "Authorization: Bearer $REFLECT_TOKEN" https://reflect.app/api/graphs
```
Or store in 1Password and update `scripts/reflect.sh` with your vault/item path.
## What We Can Do
1. **Append to daily notes** — Add items to today's note (or a specific date)
2. **Create new notes** — Create standalone notes with subject + markdown content
3. **Create links** — Save bookmarks with highlights
4. **Get links/books** — Retrieve saved links and books
## API Reference
Base URL: `https://reflect.app/api`
Auth: `Authorization: Bearer <access_token>`
### Append to Daily Note
```bash
curl -X PUT "https://reflect.app/api/graphs/$REFLECT_GRAPH_ID/daily-notes" \
-H "Authorization: Bearer $REFLECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"text": "Your text here",
"transform_type": "list-append",
"date": "2026-01-25", # optional, defaults to today
"list_name": "[[List Name]]" # optional, append to specific list
}'
```
### Create a Note
```bash
curl -X POST "https://reflect.app/api/graphs/$REFLECT_GRAPH_ID/notes" \
-H "Authorization: Bearer $REFLECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"subject": "Note Title",
"content_markdown": "# Heading\n\nContent here...",
"pinned": false
}'
```
### Create a Link
```bash
curl -X POST "https://reflect.app/api/graphs/$REFLECT_GRAPH_ID/links" \
-H "Authorization: Bearer $REFLECT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"title": "Page Title",
"description": "Optional description",
"highlights": ["Quote 1", "Quote 2"]
}'
```
### Get Links
```bash
curl "https://reflect.app/api/graphs/$REFLECT_GRAPH_ID/links" \
-H "Authorization: Bearer $REFLECT_TOKEN"
```
## Helper Script
Use `scripts/reflect.sh` for common operations:
```bash
# Append to daily note
./scripts/reflect.sh daily "Remember to review PR #6"
# Append to specific list in daily note
./scripts/reflect.sh daily "Buy milk" "[[Shopping]]"
# Create a new note
./scripts/reflect.sh note "Meeting Notes" "# Standup\n\n- Discussed X\n- Action item: Y"
# Save a link
./scripts/reflect.sh link "https://example.com" "Example Site" "Great resource"
```
## Use Cases
- **Capture todos** from chat → append to daily note
- **Save interesting links** mentioned in conversation
- **Create meeting notes** or summaries
- **Sync reminders** to Reflect for persistence
- **Backlink to lists** like `[[Ideas]]` or `[[Project Name]]`
## Limitations
- **Cannot read note contents** (E2E encrypted)
- **Append-only** — can't edit or delete existing content
- **No search** — can't query existing notes

View File

@@ -0,0 +1,6 @@
{
"ownerId": "kn7dc3y2vjvgj20sxwzn58htth7zxk5g",
"slug": "reflect",
"version": "1.0.0",
"publishedAt": 1769370070278
}

View File

@@ -0,0 +1,113 @@
#!/usr/bin/env bash
set -euo pipefail
# Reflect API helper script
# Usage:
# reflect.sh daily "text" ["list_name"]
# reflect.sh note "subject" "content_markdown"
# reflect.sh link "url" "title" ["description"]
# reflect.sh links
# Configuration: Set these environment variables
# REFLECT_TOKEN - Your Reflect API access token (required)
# REFLECT_GRAPH_ID - Your graph ID (required, find via /api/graphs endpoint)
# Check for required environment variables
if [[ -z "${REFLECT_TOKEN:-}" ]]; then
echo "Error: REFLECT_TOKEN environment variable not set" >&2
echo "Get your token at: https://reflect.app/developer/oauth" >&2
exit 1
fi
if [[ -z "${REFLECT_GRAPH_ID:-}" ]]; then
echo "Error: REFLECT_GRAPH_ID environment variable not set" >&2
echo "Find your graph ID by running:" >&2
echo " curl -H \"Authorization: Bearer \$REFLECT_TOKEN\" https://reflect.app/api/graphs" >&2
exit 1
fi
API_BASE="https://reflect.app/api/graphs/$REFLECT_GRAPH_ID"
case "${1:-help}" in
daily)
TEXT="${2:?Usage: reflect.sh daily \"text\" [\"list_name\"]}"
LIST_NAME="${3:-}"
PAYLOAD=$(jq -n \
--arg text "$TEXT" \
--arg list "$LIST_NAME" \
'{
text: $text,
transform_type: "list-append"
} + (if $list != "" then {list_name: $list} else {} end)')
curl -s -X PUT "$API_BASE/daily-notes" \
-H "Authorization: Bearer $REFLECT_TOKEN" \
-H "Content-Type: application/json" \
-d "$PAYLOAD"
;;
note)
SUBJECT="${2:?Usage: reflect.sh note \"subject\" \"content_markdown\" [pinned]}"
CONTENT="${3:?Usage: reflect.sh note \"subject\" \"content_markdown\" [pinned]}"
PINNED="${4:-false}"
curl -s -X POST "$API_BASE/notes" \
-H "Authorization: Bearer $REFLECT_TOKEN" \
-H "Content-Type: application/json" \
-d "$(jq -n \
--arg subject "$SUBJECT" \
--arg content "$CONTENT" \
--argjson pinned "$PINNED" \
'{subject: $subject, content_markdown: $content, pinned: $pinned}')"
;;
link)
URL="${2:?Usage: reflect.sh link \"url\" \"title\" [\"description\"]}"
TITLE="${3:?Usage: reflect.sh link \"url\" \"title\" [\"description\"]}"
DESC="${4:-}"
PAYLOAD=$(jq -n \
--arg url "$URL" \
--arg title "$TITLE" \
--arg desc "$DESC" \
'{url: $url, title: $title} + (if $desc != "" then {description: $desc} else {} end)')
curl -s -X POST "$API_BASE/links" \
-H "Authorization: Bearer $REFLECT_TOKEN" \
-H "Content-Type: application/json" \
-d "$PAYLOAD"
;;
links)
curl -s "$API_BASE/links" \
-H "Authorization: Bearer $REFLECT_TOKEN" | jq .
;;
books)
curl -s "$API_BASE/books" \
-H "Authorization: Bearer $REFLECT_TOKEN" | jq .
;;
graphs)
# Helper to find your graph ID
curl -s "https://reflect.app/api/graphs" \
-H "Authorization: Bearer $REFLECT_TOKEN" | jq .
;;
*)
echo "Reflect API Helper"
echo ""
echo "Setup:"
echo " export REFLECT_TOKEN=\"your-access-token\""
echo " export REFLECT_GRAPH_ID=\"your-graph-id\""
echo ""
echo "Usage:"
echo " reflect.sh daily \"text\" [\"[[List Name]]\"] - Append to daily note"
echo " reflect.sh note \"subject\" \"markdown\" - Create a new note"
echo " reflect.sh link \"url\" \"title\" [\"desc\"] - Save a link"
echo " reflect.sh links - List saved links"
echo " reflect.sh books - List books"
echo " reflect.sh graphs - List your graphs (to find graph ID)"
;;
esac