Repository files navigation

ForgetMeNot

ForgetMeNot is an iOS app that turns photos, voice notes, calendar items, and manual input into actionable event plans with tasks and reminders.

On the App Store, the app is published as PlanPilot.

ForgetMeNot app preview

App Store

Highlights

  • Photo-to-plan from posters, flyers, and screenshots
  • Speech-to-plan with record, transcribe, review, and generate flow
  • Calendar/reminder-to-plan from upcoming items
  • Manual plan creation
  • Auto-generate task lists and reminder timing with AI
  • Add recurring reminders with bounded reminder windows
  • Add per-task reminders
  • Attach reference images to tasks
  • Use iOS subject lift to isolate important parts of a photo
  • Complete tasks and mark plans as done
  • Local persistence via SwiftData

Tech Stack

  • SwiftUI
  • SwiftData
  • EventKit (Calendar + Reminders)
  • UserNotifications
  • VisionKit (image subject lift / analysis interaction)
  • OpenAI APIs
  • whisper-1 for speech transcription
  • gpt-4o-mini for plan generation from text/image
  • gpt-3.5-turbo for calendar-based plan suggestions

Project Structure

  • ForgetMeNot/App app entry and model container setup
  • ForgetMeNot/Root home screen and walkthrough
  • ForgetMeNot/Features/EventPlan create/edit/detail plan flow
  • ForgetMeNot/Features/SpeechToText voice recording and transcription flow
  • ForgetMeNot/Features/ImageToEvent photo-to-plan generation flow
  • ForgetMeNot/Features/CalendarProcessing calendar/reminder ingestion and AI suggestions
  • ForgetMeNot/Features/ImageProcessing image picking, subject lift, and task attachments
  • ForgetMeNot/Common shared helpers (notifications, API key loading, utils)

Requirements

  • macOS with Xcode 15+
  • iOS deployment target: 17.6 (app target)
  • OpenAI API key

Getting Started

  1. Clone the repository and open ForgetMeNot.xcodeproj in Xcode.
  2. Create ForgetMeNot/Root/Secrets.plist with your API key:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEplist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="1.0">
<dict>
<key>OPENAI_API_KEY</key>
<string>YOUR_OPENAI_API_KEY</string>
</dict>
</plist>
  1. Ensure ForgetMeNot/Root/Secrets.plist is excluded from git.
  2. Select an iOS simulator/device and run the app.

If an API key was ever committed to a remote repo, rotate it immediately in your OpenAI dashboard.

Permissions Used

  • Camera: capture event photos
  • Photo Library: choose existing images
  • Microphone: voice-to-plan and voice-to-task
  • Calendars: read upcoming events
  • Reminders: read upcoming reminders
  • Notifications: plan and task reminders

Privacy Notes

  • Plans, tasks, reminders, and attachment metadata are stored locally using SwiftData.
  • Content you explicitly provide for AI features (voice transcript, selected image, calendar/reminder text) is sent to OpenAI APIs for processing.
  • Audio recordings are temporary and removed after transcription in current flows.

Testing

  • Includes starter unit and UI test targets
  • ForgetMeNotTests
  • ForgetMeNotUITests

License

No license file is currently included in this repository.

About

A simple, elegant travel checklist app for iPhone. Create travel plans, set reminders, and organize your packing or preparation tasks with ease. Get notified before your trip and check off items as you complete them—no clutter, just what you need to travel stress-free.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

ForgetMeNot

ForgetMeNot is an iOS app that turns photos, voice notes, calendar items, and manual input into actionable event plans with tasks and reminders.

On the App Store, the app is published as PlanPilot.

ForgetMeNot app preview

App Store

Highlights

  • Photo-to-plan from posters, flyers, and screenshots
  • Speech-to-plan with record, transcribe, review, and generate flow
  • Calendar/reminder-to-plan from upcoming items
  • Manual plan creation
  • Auto-generate task lists and reminder timing with AI
  • Add recurring reminders with bounded reminder windows
  • Add per-task reminders
  • Attach reference images to tasks
  • Use iOS subject lift to isolate important parts of a photo
  • Complete tasks and mark plans as done
  • Local persistence via SwiftData

Tech Stack

  • SwiftUI
  • SwiftData
  • EventKit (Calendar + Reminders)
  • UserNotifications
  • VisionKit (image subject lift / analysis interaction)
  • OpenAI APIs
  • whisper-1 for speech transcription
  • gpt-4o-mini for plan generation from text/image
  • gpt-3.5-turbo for calendar-based plan suggestions

Project Structure

  • ForgetMeNot/App app entry and model container setup
  • ForgetMeNot/Root home screen and walkthrough
  • ForgetMeNot/Features/EventPlan create/edit/detail plan flow
  • ForgetMeNot/Features/SpeechToText voice recording and transcription flow
  • ForgetMeNot/Features/ImageToEvent photo-to-plan generation flow
  • ForgetMeNot/Features/CalendarProcessing calendar/reminder ingestion and AI suggestions
  • ForgetMeNot/Features/ImageProcessing image picking, subject lift, and task attachments
  • ForgetMeNot/Common shared helpers (notifications, API key loading, utils)

Requirements

  • macOS with Xcode 15+
  • iOS deployment target: 17.6 (app target)
  • OpenAI API key

Getting Started

  1. Clone the repository and open ForgetMeNot.xcodeproj in Xcode.
  2. Create ForgetMeNot/Root/Secrets.plist with your API key:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEplist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="1.0">
<dict>
<key>OPENAI_API_KEY</key>
<string>YOUR_OPENAI_API_KEY</string>
</dict>
</plist>
  1. Ensure ForgetMeNot/Root/Secrets.plist is excluded from git.
  2. Select an iOS simulator/device and run the app.

If an API key was ever committed to a remote repo, rotate it immediately in your OpenAI dashboard.

Permissions Used

  • Camera: capture event photos
  • Photo Library: choose existing images
  • Microphone: voice-to-plan and voice-to-task
  • Calendars: read upcoming events
  • Reminders: read upcoming reminders
  • Notifications: plan and task reminders

Privacy Notes

  • Plans, tasks, reminders, and attachment metadata are stored locally using SwiftData.
  • Content you explicitly provide for AI features (voice transcript, selected image, calendar/reminder text) is sent to OpenAI APIs for processing.
  • Audio recordings are temporary and removed after transcription in current flows.

Testing

  • Includes starter unit and UI test targets
  • ForgetMeNotTests
  • ForgetMeNotUITests

License

No license file is currently included in this repository.

About

A simple, elegant travel checklist app for iPhone. Create travel plans, set reminders, and organize your packing or preparation tasks with ease. Get notified before your trip and check off items as you complete them—no clutter, just what you need to travel stress-free.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ForgetMeNot

ForgetMeNot is an iOS app that turns photos, voice notes, calendar items, and manual input into actionable event plans with tasks and reminders.

On the App Store, the app is published as PlanPilot.

ForgetMeNot app preview

App Store

Highlights

  • Photo-to-plan from posters, flyers, and screenshots
  • Speech-to-plan with record, transcribe, review, and generate flow
  • Calendar/reminder-to-plan from upcoming items
  • Manual plan creation
  • Auto-generate task lists and reminder timing with AI
  • Add recurring reminders with bounded reminder windows
  • Add per-task reminders
  • Attach reference images to tasks
  • Use iOS subject lift to isolate important parts of a photo
  • Complete tasks and mark plans as done
  • Local persistence via SwiftData

Tech Stack

  • SwiftUI
  • SwiftData
  • EventKit (Calendar + Reminders)
  • UserNotifications
  • VisionKit (image subject lift / analysis interaction)
  • OpenAI APIs
  • whisper-1 for speech transcription
  • gpt-4o-mini for plan generation from text/image
  • gpt-3.5-turbo for calendar-based plan suggestions

Project Structure

  • ForgetMeNot/App app entry and model container setup
  • ForgetMeNot/Root home screen and walkthrough
  • ForgetMeNot/Features/EventPlan create/edit/detail plan flow
  • ForgetMeNot/Features/SpeechToText voice recording and transcription flow
  • ForgetMeNot/Features/ImageToEvent photo-to-plan generation flow
  • ForgetMeNot/Features/CalendarProcessing calendar/reminder ingestion and AI suggestions
  • ForgetMeNot/Features/ImageProcessing image picking, subject lift, and task attachments
  • ForgetMeNot/Common shared helpers (notifications, API key loading, utils)

Requirements

  • macOS with Xcode 15+
  • iOS deployment target: 17.6 (app target)
  • OpenAI API key

Getting Started

  1. Clone the repository and open ForgetMeNot.xcodeproj in Xcode.
  2. Create ForgetMeNot/Root/Secrets.plist with your API key:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEplist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="1.0">
<dict>
<key>OPENAI_API_KEY</key>
<string>YOUR_OPENAI_API_KEY</string>
</dict>
</plist>
  1. Ensure ForgetMeNot/Root/Secrets.plist is excluded from git.
  2. Select an iOS simulator/device and run the app.

If an API key was ever committed to a remote repo, rotate it immediately in your OpenAI dashboard.

Permissions Used

  • Camera: capture event photos
  • Photo Library: choose existing images
  • Microphone: voice-to-plan and voice-to-task
  • Calendars: read upcoming events
  • Reminders: read upcoming reminders
  • Notifications: plan and task reminders

Privacy Notes

  • Plans, tasks, reminders, and attachment metadata are stored locally using SwiftData.
  • Content you explicitly provide for AI features (voice transcript, selected image, calendar/reminder text) is sent to OpenAI APIs for processing.
  • Audio recordings are temporary and removed after transcription in current flows.

Testing

  • Includes starter unit and UI test targets
  • ForgetMeNotTests
  • ForgetMeNotUITests

License

No license file is currently included in this repository.

About

A simple, elegant travel checklist app for iPhone. Create travel plans, set reminders, and organize your packing or preparation tasks with ease. Get notified before your trip and check off items as you complete them—no clutter, just what you need to travel stress-free.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ForgetMeNot

ForgetMeNot is an iOS app that turns photos, voice notes, calendar items, and manual input into actionable event plans with tasks and reminders.

On the App Store, the app is published as PlanPilot.

ForgetMeNot app preview

App Store

Highlights

  • Photo-to-plan from posters, flyers, and screenshots
  • Speech-to-plan with record, transcribe, review, and generate flow
  • Calendar/reminder-to-plan from upcoming items
  • Manual plan creation
  • Auto-generate task lists and reminder timing with AI
  • Add recurring reminders with bounded reminder windows
  • Add per-task reminders
  • Attach reference images to tasks
  • Use iOS subject lift to isolate important parts of a photo
  • Complete tasks and mark plans as done
  • Local persistence via SwiftData

Tech Stack

  • SwiftUI
  • SwiftData
  • EventKit (Calendar + Reminders)
  • UserNotifications
  • VisionKit (image subject lift / analysis interaction)
  • OpenAI APIs
  • whisper-1 for speech transcription
  • gpt-4o-mini for plan generation from text/image
  • gpt-3.5-turbo for calendar-based plan suggestions

Project Structure

  • ForgetMeNot/App app entry and model container setup
  • ForgetMeNot/Root home screen and walkthrough
  • ForgetMeNot/Features/EventPlan create/edit/detail plan flow
  • ForgetMeNot/Features/SpeechToText voice recording and transcription flow
  • ForgetMeNot/Features/ImageToEvent photo-to-plan generation flow
  • ForgetMeNot/Features/CalendarProcessing calendar/reminder ingestion and AI suggestions
  • ForgetMeNot/Features/ImageProcessing image picking, subject lift, and task attachments
  • ForgetMeNot/Common shared helpers (notifications, API key loading, utils)

Requirements

  • macOS with Xcode 15+
  • iOS deployment target: 17.6 (app target)
  • OpenAI API key

Getting Started

  1. Clone the repository and open ForgetMeNot.xcodeproj in Xcode.
  2. Create ForgetMeNot/Root/Secrets.plist with your API key:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEplist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="1.0">
<dict>
<key>OPENAI_API_KEY</key>
<string>YOUR_OPENAI_API_KEY</string>
</dict>
</plist>
  1. Ensure ForgetMeNot/Root/Secrets.plist is excluded from git.
  2. Select an iOS simulator/device and run the app.

If an API key was ever committed to a remote repo, rotate it immediately in your OpenAI dashboard.

Permissions Used

  • Camera: capture event photos
  • Photo Library: choose existing images
  • Microphone: voice-to-plan and voice-to-task
  • Calendars: read upcoming events
  • Reminders: read upcoming reminders
  • Notifications: plan and task reminders

Privacy Notes

  • Plans, tasks, reminders, and attachment metadata are stored locally using SwiftData.
  • Content you explicitly provide for AI features (voice transcript, selected image, calendar/reminder text) is sent to OpenAI APIs for processing.
  • Audio recordings are temporary and removed after transcription in current flows.

Testing

  • Includes starter unit and UI test targets
  • ForgetMeNotTests
  • ForgetMeNotUITests

License

No license file is currently included in this repository.

About

A simple, elegant travel checklist app for iPhone. Create travel plans, set reminders, and organize your packing or preparation tasks with ease. Get notified before your trip and check off items as you complete them—no clutter, just what you need to travel stress-free.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

ForgetMeNot

ForgetMeNot is an iOS app that turns photos, voice notes, calendar items, and manual input into actionable event plans with tasks and reminders.

On the App Store, the app is published as PlanPilot.

ForgetMeNot app preview

App Store

Highlights

  • Photo-to-plan from posters, flyers, and screenshots
  • Speech-to-plan with record, transcribe, review, and generate flow
  • Calendar/reminder-to-plan from upcoming items
  • Manual plan creation
  • Auto-generate task lists and reminder timing with AI
  • Add recurring reminders with bounded reminder windows
  • Add per-task reminders
  • Attach reference images to tasks
  • Use iOS subject lift to isolate important parts of a photo
  • Complete tasks and mark plans as done
  • Local persistence via SwiftData

Tech Stack

  • SwiftUI
  • SwiftData
  • EventKit (Calendar + Reminders)
  • UserNotifications
  • VisionKit (image subject lift / analysis interaction)
  • OpenAI APIs
  • whisper-1 for speech transcription
  • gpt-4o-mini for plan generation from text/image
  • gpt-3.5-turbo for calendar-based plan suggestions

Project Structure

  • ForgetMeNot/App app entry and model container setup
  • ForgetMeNot/Root home screen and walkthrough
  • ForgetMeNot/Features/EventPlan create/edit/detail plan flow
  • ForgetMeNot/Features/SpeechToText voice recording and transcription flow
  • ForgetMeNot/Features/ImageToEvent photo-to-plan generation flow
  • ForgetMeNot/Features/CalendarProcessing calendar/reminder ingestion and AI suggestions
  • ForgetMeNot/Features/ImageProcessing image picking, subject lift, and task attachments
  • ForgetMeNot/Common shared helpers (notifications, API key loading, utils)

Requirements

  • macOS with Xcode 15+
  • iOS deployment target: 17.6 (app target)
  • OpenAI API key

Getting Started

  1. Clone the repository and open ForgetMeNot.xcodeproj in Xcode.
  2. Create ForgetMeNot/Root/Secrets.plist with your API key:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEplist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="1.0">
<dict>
<key>OPENAI_API_KEY</key>
<string>YOUR_OPENAI_API_KEY</string>
</dict>
</plist>
  1. Ensure ForgetMeNot/Root/Secrets.plist is excluded from git.
  2. Select an iOS simulator/device and run the app.

If an API key was ever committed to a remote repo, rotate it immediately in your OpenAI dashboard.

Permissions Used

  • Camera: capture event photos
  • Photo Library: choose existing images
  • Microphone: voice-to-plan and voice-to-task
  • Calendars: read upcoming events
  • Reminders: read upcoming reminders
  • Notifications: plan and task reminders

Privacy Notes

  • Plans, tasks, reminders, and attachment metadata are stored locally using SwiftData.
  • Content you explicitly provide for AI features (voice transcript, selected image, calendar/reminder text) is sent to OpenAI APIs for processing.
  • Audio recordings are temporary and removed after transcription in current flows.

Testing

  • Includes starter unit and UI test targets
  • ForgetMeNotTests
  • ForgetMeNotUITests

License

No license file is currently included in this repository.

About

A simple, elegant travel checklist app for iPhone. Create travel plans, set reminders, and organize your packing or preparation tasks with ease. Get notified before your trip and check off items as you complete them—no clutter, just what you need to travel stress-free.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ForgetMeNot

ForgetMeNot is an iOS app that turns photos, voice notes, calendar items, and manual input into actionable event plans with tasks and reminders.

On the App Store, the app is published as PlanPilot.

ForgetMeNot app preview

App Store

Highlights

  • Photo-to-plan from posters, flyers, and screenshots
  • Speech-to-plan with record, transcribe, review, and generate flow
  • Calendar/reminder-to-plan from upcoming items
  • Manual plan creation
  • Auto-generate task lists and reminder timing with AI
  • Add recurring reminders with bounded reminder windows
  • Add per-task reminders
  • Attach reference images to tasks
  • Use iOS subject lift to isolate important parts of a photo
  • Complete tasks and mark plans as done
  • Local persistence via SwiftData

Tech Stack

  • SwiftUI
  • SwiftData
  • EventKit (Calendar + Reminders)
  • UserNotifications
  • VisionKit (image subject lift / analysis interaction)
  • OpenAI APIs
  • whisper-1 for speech transcription
  • gpt-4o-mini for plan generation from text/image
  • gpt-3.5-turbo for calendar-based plan suggestions

Project Structure

  • ForgetMeNot/App app entry and model container setup
  • ForgetMeNot/Root home screen and walkthrough
  • ForgetMeNot/Features/EventPlan create/edit/detail plan flow
  • ForgetMeNot/Features/SpeechToText voice recording and transcription flow
  • ForgetMeNot/Features/ImageToEvent photo-to-plan generation flow
  • ForgetMeNot/Features/CalendarProcessing calendar/reminder ingestion and AI suggestions
  • ForgetMeNot/Features/ImageProcessing image picking, subject lift, and task attachments
  • ForgetMeNot/Common shared helpers (notifications, API key loading, utils)

Requirements

  • macOS with Xcode 15+
  • iOS deployment target: 17.6 (app target)
  • OpenAI API key

Getting Started

  1. Clone the repository and open ForgetMeNot.xcodeproj in Xcode.
  2. Create ForgetMeNot/Root/Secrets.plist with your API key:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEplist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="1.0">
<dict>
<key>OPENAI_API_KEY</key>
<string>YOUR_OPENAI_API_KEY</string>
</dict>
</plist>
  1. Ensure ForgetMeNot/Root/Secrets.plist is excluded from git.
  2. Select an iOS simulator/device and run the app.

If an API key was ever committed to a remote repo, rotate it immediately in your OpenAI dashboard.

Permissions Used

  • Camera: capture event photos
  • Photo Library: choose existing images
  • Microphone: voice-to-plan and voice-to-task
  • Calendars: read upcoming events
  • Reminders: read upcoming reminders
  • Notifications: plan and task reminders

Privacy Notes

  • Plans, tasks, reminders, and attachment metadata are stored locally using SwiftData.
  • Content you explicitly provide for AI features (voice transcript, selected image, calendar/reminder text) is sent to OpenAI APIs for processing.
  • Audio recordings are temporary and removed after transcription in current flows.

Testing

  • Includes starter unit and UI test targets
  • ForgetMeNotTests
  • ForgetMeNotUITests

License

No license file is currently included in this repository.

About

A simple, elegant travel checklist app for iPhone. Create travel plans, set reminders, and organize your packing or preparation tasks with ease. Get notified before your trip and check off items as you complete them—no clutter, just what you need to travel stress-free.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ForgetMeNot

ForgetMeNot is an iOS app that turns photos, voice notes, calendar items, and manual input into actionable event plans with tasks and reminders.

On the App Store, the app is published as PlanPilot.

ForgetMeNot app preview

App Store

Highlights

  • Photo-to-plan from posters, flyers, and screenshots
  • Speech-to-plan with record, transcribe, review, and generate flow
  • Calendar/reminder-to-plan from upcoming items
  • Manual plan creation
  • Auto-generate task lists and reminder timing with AI
  • Add recurring reminders with bounded reminder windows
  • Add per-task reminders
  • Attach reference images to tasks
  • Use iOS subject lift to isolate important parts of a photo
  • Complete tasks and mark plans as done
  • Local persistence via SwiftData

Tech Stack

  • SwiftUI
  • SwiftData
  • EventKit (Calendar + Reminders)
  • UserNotifications
  • VisionKit (image subject lift / analysis interaction)
  • OpenAI APIs
  • whisper-1 for speech transcription
  • gpt-4o-mini for plan generation from text/image
  • gpt-3.5-turbo for calendar-based plan suggestions

Project Structure

  • ForgetMeNot/App app entry and model container setup
  • ForgetMeNot/Root home screen and walkthrough
  • ForgetMeNot/Features/EventPlan create/edit/detail plan flow
  • ForgetMeNot/Features/SpeechToText voice recording and transcription flow
  • ForgetMeNot/Features/ImageToEvent photo-to-plan generation flow
  • ForgetMeNot/Features/CalendarProcessing calendar/reminder ingestion and AI suggestions
  • ForgetMeNot/Features/ImageProcessing image picking, subject lift, and task attachments
  • ForgetMeNot/Common shared helpers (notifications, API key loading, utils)

Requirements

  • macOS with Xcode 15+
  • iOS deployment target: 17.6 (app target)
  • OpenAI API key

Getting Started

  1. Clone the repository and open ForgetMeNot.xcodeproj in Xcode.
  2. Create ForgetMeNot/Root/Secrets.plist with your API key:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEplist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="1.0">
<dict>
<key>OPENAI_API_KEY</key>
<string>YOUR_OPENAI_API_KEY</string>
</dict>
</plist>
  1. Ensure ForgetMeNot/Root/Secrets.plist is excluded from git.
  2. Select an iOS simulator/device and run the app.

If an API key was ever committed to a remote repo, rotate it immediately in your OpenAI dashboard.

Permissions Used

  • Camera: capture event photos
  • Photo Library: choose existing images
  • Microphone: voice-to-plan and voice-to-task
  • Calendars: read upcoming events
  • Reminders: read upcoming reminders
  • Notifications: plan and task reminders

Privacy Notes

  • Plans, tasks, reminders, and attachment metadata are stored locally using SwiftData.
  • Content you explicitly provide for AI features (voice transcript, selected image, calendar/reminder text) is sent to OpenAI APIs for processing.
  • Audio recordings are temporary and removed after transcription in current flows.

Testing

  • Includes starter unit and UI test targets
  • ForgetMeNotTests
  • ForgetMeNotUITests

License

No license file is currently included in this repository.

About

A simple, elegant travel checklist app for iPhone. Create travel plans, set reminders, and organize your packing or preparation tasks with ease. Get notified before your trip and check off items as you complete them—no clutter, just what you need to travel stress-free.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

ForgetMeNot

ForgetMeNot is an iOS app that turns photos, voice notes, calendar items, and manual input into actionable event plans with tasks and reminders.

On the App Store, the app is published as PlanPilot.

ForgetMeNot app preview

App Store

Highlights

  • Photo-to-plan from posters, flyers, and screenshots
  • Speech-to-plan with record, transcribe, review, and generate flow
  • Calendar/reminder-to-plan from upcoming items
  • Manual plan creation
  • Auto-generate task lists and reminder timing with AI
  • Add recurring reminders with bounded reminder windows
  • Add per-task reminders
  • Attach reference images to tasks
  • Use iOS subject lift to isolate important parts of a photo
  • Complete tasks and mark plans as done
  • Local persistence via SwiftData

Tech Stack

  • SwiftUI
  • SwiftData
  • EventKit (Calendar + Reminders)
  • UserNotifications
  • VisionKit (image subject lift / analysis interaction)
  • OpenAI APIs
  • whisper-1 for speech transcription
  • gpt-4o-mini for plan generation from text/image
  • gpt-3.5-turbo for calendar-based plan suggestions

Project Structure

  • ForgetMeNot/App app entry and model container setup
  • ForgetMeNot/Root home screen and walkthrough
  • ForgetMeNot/Features/EventPlan create/edit/detail plan flow
  • ForgetMeNot/Features/SpeechToText voice recording and transcription flow
  • ForgetMeNot/Features/ImageToEvent photo-to-plan generation flow
  • ForgetMeNot/Features/CalendarProcessing calendar/reminder ingestion and AI suggestions
  • ForgetMeNot/Features/ImageProcessing image picking, subject lift, and task attachments
  • ForgetMeNot/Common shared helpers (notifications, API key loading, utils)

Requirements

  • macOS with Xcode 15+
  • iOS deployment target: 17.6 (app target)
  • OpenAI API key

Getting Started

  1. Clone the repository and open ForgetMeNot.xcodeproj in Xcode.
  2. Create ForgetMeNot/Root/Secrets.plist with your API key:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEplist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="1.0">
<dict>
<key>OPENAI_API_KEY</key>
<string>YOUR_OPENAI_API_KEY</string>
</dict>
</plist>
  1. Ensure ForgetMeNot/Root/Secrets.plist is excluded from git.
  2. Select an iOS simulator/device and run the app.

If an API key was ever committed to a remote repo, rotate it immediately in your OpenAI dashboard.

Permissions Used

  • Camera: capture event photos
  • Photo Library: choose existing images
  • Microphone: voice-to-plan and voice-to-task
  • Calendars: read upcoming events
  • Reminders: read upcoming reminders
  • Notifications: plan and task reminders

Privacy Notes

  • Plans, tasks, reminders, and attachment metadata are stored locally using SwiftData.
  • Content you explicitly provide for AI features (voice transcript, selected image, calendar/reminder text) is sent to OpenAI APIs for processing.
  • Audio recordings are temporary and removed after transcription in current flows.

Testing

  • Includes starter unit and UI test targets
  • ForgetMeNotTests
  • ForgetMeNotUITests

License

No license file is currently included in this repository.

About

A simple, elegant travel checklist app for iPhone. Create travel plans, set reminders, and organize your packing or preparation tasks with ease. Get notified before your trip and check off items as you complete them—no clutter, just what you need to travel stress-free.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages