AI Meeting Notes w/ Action Items + To-Do List Tracker
by @jeffjhunter
Messy notes → Clear action items. Instantly. Paste any meeting notes, transcript, or text. Get summaries, action items with owners and deadlines. Auto-saved, searchable, with integrated to-do tracking. No bot. No subscription. No setup.
clawhub install ai-meeting-notes📖 About This Skill
name: ai-meeting-notes version: 1.0.3 description: "Messy notes → Clear action items. Instantly. Paste any meeting notes, transcript, or text. Get summaries, action items with owners and deadlines. Auto-saved, searchable, with integrated to-do tracking. No bot. No subscription. No setup." author: Jeff J Hunter homepage: https://jeffjhunter.com tags: [meeting-notes, action-items, meeting-assistant, productivity, notes-to-tasks, meeting-summary, transcript, notetaker, follow-up, task-extraction, todo, task-tracker]
📋 AI Meeting Notes
Messy notes → Clear action items. Instantly.
Paste any meeting notes, transcript, or text. Get a clean summary with action items, owners, and deadlines.
No bot. No subscription. No setup.
⚠️ CRITICAL: RESPONSE FORMAT (READ FIRST)
When extracting meeting notes, you MUST respond with ALL of the following in ONE SINGLE MESSAGE:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 [MEETING TITLE] — [YYYY-MM-DD]
Duration: [X min] | Attendees: [Names]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━SUMMARY
[2-3 sentence overview]
⚡ ACTION ITEMS ([X] of [Total])
1. [ ] @Owner: Task — Deadline
2. [ ] @Owner: Task — Deadline
3. [ ] @Owner: Task — Deadline
4. [ ] @Owner: Task — Deadline
5. [ ] @Owner: Task — Deadline
[Show up to 10, note "(+X more in file)" if more exist]
✅ KEY DECISIONS
• Decision 1
• Decision 2
📎 Saved: meeting-notes/YYYY-MM-DD_topic-name.md
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Add to your to-do list?
• "all" — Add all [X] items
• "1,2,4" — Add specific items
• "none" — Skip
MANDATORY RULES
| Rule | Requirement |
|------|-------------|
| ONE response | NEVER split into multiple messages. Display + file + to-do prompt in SINGLE response. |
| Filename format | MUST be YYYY-MM-DD_topic.md — Date FIRST, always. Example: 2026-02-02_anne-call.md |
| Action items numbered | ALWAYS show numbered list (1, 2, 3...) in chat for easy selection |
| To-do prompt | ALWAYS include the "Add to your to-do list?" prompt if action items exist |
| File attachment | ALWAYS attach/save the full .md file |
❌ NEVER DO THIS
anne-call-notes.md✅ ALWAYS DO THIS
2026-02-02_anne-call.md (date first)Why This Exists
You have notes. They're messy. You need to figure out who's doing what by when.
You could:
Or paste your notes and get clean action items in 10 seconds.
What It Does
| Input | Output | |-------|--------| | Messy meeting notes | ✅ Clean summary | | Otter/Fireflies transcript | ✅ Action items with owners | | Voice memo transcription | ✅ Deadlines extracted | | Email thread | ✅ Decisions captured | | Slack conversation | ✅ Follow-ups identified | | Any unstructured text | ✅ Saved & searchable |
File Storage System
Every extraction is automatically saved for future reference.
Folder Structure
meeting-notes/
├── 2025-01-27_product-sync.md
├── 2025-01-28_client-call-acme.md
├── 2025-01-29_weekly-standup.md
└── ...
Naming Convention
YYYY-MM-DD_meeting-topic.md
What Gets Saved
Each file includes:
Reference Previous Meetings
Ask things like:
To-Do List Tracker
After extracting action items, you'll be asked which ones to track.
Adding Items
ACTION ITEMS EXTRACTED (5 items):1. [ ] @Sarah: Share mockups — Friday
2. [ ] @Mike: Call Acme Corp — Tomorrow
3. [ ] @John: Handle social campaigns
4. [ ] @Lisa: Coordinate with agency — Today
5. [ ] @Team: Resolve vendor situation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Add to your to-do list?
• "all" — Add all 5 items
• "1,2,4" — Add specific items
• "none" — Skip
Managing Your To-Dos
| Command | What It Does | |---------|--------------| | "show todos" | Display full to-do list | | "todo check" | Daily review of status | | "done 3" or "completed 3" | Mark item #3 complete | | "remove 5" | Delete item #5 | | "add deadline to 3: Friday" | Set/update deadline | | "what's overdue?" | Show overdue items | | "Sarah's tasks" | Filter by owner |
Daily Check
Run "todo check" (or include in your daily routine) to see:
📋 TO-DO CHECK — Jan 28, 2025⚠️ OVERDUE (1 item):
#3 @Sarah: Send proposal — was due Jan 25 (3 days ago)
📅 DUE TODAY (2 items):
#5 @Mike: Call Acme Corp
#7 @Lisa: Follow up with vendor
📋 NO DEADLINE (2 items):
#4 @John: Handle social campaigns
#8 @Team: Review server costs
Any updates? ("done 3,5" / "move 3 to Friday" / "remove 4")
To-Do File Location
todo.md ← Your active to-do list
meeting-notes/ ← Saved meeting notes
How to Use
Just paste your notes and ask:
That's it. No commands. No setup. Just paste and go.
Output Formats
Request any format:
| Say | Get | |-----|-----| | *(default)* | Plain text | | "as markdown" | Markdown formatted | | "as a table" | Table format | | "as JSON" | Structured JSON | | "for Slack" | Copy-paste ready | | "for email" | Send to attendees |
What Gets Extracted
| Section | Description | |---------|-------------| | Summary | 2-3 sentence overview of the meeting | | Action Items | Tasks with owners and deadlines | | Decisions | What was agreed upon | | Open Questions | Unresolved items needing follow-up | | Next Steps | What happens after this meeting |
For the AI: How to Extract and Save Meeting Notes
⚠️ FIRST: Review the CRITICAL RESPONSE FORMAT section above. Your response MUST follow that exact format.
When a user pastes meeting notes or asks you to extract action items, follow these instructions.
Step 0: Pre-Flight Checklist
Before responding, confirm you will:
YYYY-MM-DD_topic.md (date FIRST)Step 1: Setup Check
On first use, ensure the meeting-notes/ folder exists in the workspace:
Step 2: Identify the Content Type
Determine what kind of input you received:
Supported file formats:
.md, .txt — Plain text/markdown.vtt, .srt — Video caption files (common from Zoom, Teams, etc.)Adapt your extraction based on the format, but output should always be consistent.
Step 3: Extract These Elements
ALWAYS extract:
1. Meeting Title/Topic (for filename) - Extract from content if obvious - If unclear, ask: "What should I call this meeting?" - Use generic if needed: "meeting", "sync", "call"
2. Date - Extract from content if mentioned - If not mentioned, use today's date - Format: YYYY-MM-DD
3. Summary (2-3 sentences max) - What was this meeting about? - What was the main outcome?
4. Action Items (most important)
- Format: - [ ] @Owner: Task — Deadline
- If no owner mentioned: - [ ] @Team: Task
- If no deadline mentioned: - [ ] @Owner: Task — TBD
- Be specific about the task
- Extract ALL action items, even implicit ones
EXTRACT IF PRESENT:
5. Decisions Made - What was agreed upon? - What choices were finalized?
6. Open Questions - What wasn't resolved? - What needs more information?
7. Next Steps - When's the next meeting? - What happens after this?
8. Attendees (if detectable) - Who was mentioned? - Who spoke?
Step 4: Save the File
⚠️ FILENAME FORMAT IS CRITICAL:
YYYY-MM-DD_topic.md
Examples:
| Meeting | Correct Filename |
|---------|------------------|
| Anne call on Feb 2, 2026 | 2026-02-02_anne-call.md |
| Product sync on Jan 27 | 2025-01-27_product-sync.md |
| Client call with Acme | 2025-01-27_client-call-acme.md |
| 1-on-1 with Sarah | 2025-01-27_1on1-sarah.md |
❌ WRONG (never do these):
anne-call-notes.md — Missing date prefix!meeting-notes-2026-02-02.md — Date not first!2026-02-02-anne-call.md — Use underscore after date, not hyphen!Anne Call Notes.md — No spaces, no caps!Validation checklist:
YYYY-MM-DD_ (date + underscore).mdCRITICAL — Encoding & Characters:
— (em dash), → (arrow), 📅, ✅, ⚠️, ❓â€" or ðŸ"… in output, encoding is brokenFile template:
---
date: YYYY-MM-DD
title: Meeting Title
attendees: [Name1, Name2, Name3]
source: pasted notes | transcript | email | chat
Meeting Title
Date: YYYY-MM-DD
Attendees: Name1, Name2, Name3
Summary
[2-3 sentence overview]
Action Items
[ ] @Owner: Task description — *Deadline*
[ ] @Owner: Task description — *Deadline*
Decisions
Decision 1
Decision 2
Open Questions
Question 1
Question 2
Next Steps
Next meeting: [date/time if known]
[Other next steps]
📝 Raw Notes (click to expand)
[Preserve the original input exactly as pasted]
After saving, ALWAYS do all three in ONE response:
1. Display condensed summary in chat 2. Attach the full .md file 3. Show to-do list prompt
CRITICAL: All three must happen in a single response. User should never need to ask separately.
Response format (display in chat):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 [MEETING TITLE] — [Date]
Duration: [X min] | Attendees: [Names...]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━SUMMARY
[2-3 sentence overview of the meeting]
⚡ CRITICAL ACTION ITEMS ([X] of [Total])
1. [ ] @Owner: Task — Deadline
2. [ ] @Owner: Task — Deadline
3. [ ] @Owner: Task — Deadline
4. [ ] @Owner: Task — Deadline
5. [ ] @Owner: Task — Deadline
✅ KEY DECISIONS
• Decision 1
• Decision 2
📎 Full notes attached: [filename.md]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Add to your to-do list?
• "all" — Add all [X] items
• "1,2,4" — Add specific items
• "none" — Skip
Smart truncation rules:
| Action Items | Display in Chat | In File | |--------------|-----------------|---------| | 1-10 items | Show all | All | | 11-20 items | Show top 10 + "(+X more in file)" | All | | 21+ items | Show top 10 critical + "(+X more in file)" | All |
Prioritize for chat display: 1. Items with explicit deadlines (especially "today", "tomorrow", "ASAP") 2. Items marked critical/urgent in the notes 3. Items with clear owners 4. Remaining items by order of mention
File attachment is mandatory:
Step 5: To-Do List Management
File location: todo.md in workspace root
To-do file format:
# To-Do ListLast updated: YYYY-MM-DD
⚠️ Overdue
| # | Task | Owner | Due | Source |
|---|------|-------|-----|--------|
| 3 | Send proposal | @Sarah | Jan 25 | client-call.md |
📅 Due Today
| # | Task | Owner | Source |
|---|------|-------|--------|
| 5 | Coordinate with agency | @Lisa | product-sync.md |
📆 This Week
| # | Task | Owner | Due | Source |
|---|------|-------|-----|--------|
| 1 | Share mockups | @Sarah | Fri | product-sync.md |
📋 No Deadline
| # | Task | Owner | Source |
|---|------|-------|--------|
| 4 | Handle social campaigns | @John | product-sync.md |
✅ Completed
| # | Task | Owner | Completed |
|---|------|-------|-----------|
| 2 | Schedule meeting | @Sarah | Jan 26 |
Adding items to to-do list:
When user responds to the prompt:
For each added item: 1. Assign next available # (auto-increment) 2. Place in correct section based on deadline 3. Record source meeting file 4. Update "Last updated" date
Confirm after adding:
✅ Added 5 items to todo.md (#12-#16)#12 @Sarah: Share mockups — Friday
#13 @Sarah: Update timeline — No deadline
#14 @Lisa: Coordinate with agency — Today
#15 @Mike: Call Acme Corp — Tomorrow
#16 @Sarah: Post job listing — EOW
View full list: "show todos"
Handling to-do commands:
| User Says | Action | |-----------|--------| | "show todos" / "my todos" | Display full todo.md organized by section | | "todo check" / "check todos" | Run daily review (see below) | | "done 3" / "completed 3" / "finished 3" | Move #3 to Completed section with today's date | | "done 3,5,7" | Mark multiple as complete | | "remove 5" / "delete 5" | Remove item entirely from list | | "add deadline to 4: Friday" | Update item #4 with deadline, move to correct section | | "move 3 to Monday" | Update deadline | | "what's overdue?" | Show only Overdue section | | "due today" | Show only Due Today section | | "Sarah's tasks" / "@Sarah todos" | Filter all items where owner is Sarah | | "no deadline" | Show items without deadlines |
Daily check ("todo check"):
📋 TO-DO CHECK — [Today's Date]⚠️ OVERDUE ([X] items):
#3 @Sarah: Send proposal — was due Jan 25 (3 days ago)
#7 @Mike: Review contract — was due Jan 26 (2 days ago)
📅 DUE TODAY ([X] items):
#5 @Lisa: Coordinate with agency
#9 @John: Send assets
📆 COMING UP ([X] items due this week):
#12 @Sarah: Share mockups — Friday
#15 @Mike: Call Acme — Tomorrow
📋 NO DEADLINE ([X] items):
#4 @John: Handle social campaigns
#8 @Team: Review server costs
→ Consider adding deadlines to these items
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Any updates?
• "done 3,5" — Mark as complete
• "move 3 to Friday" — Update deadline
• "remove 4" — Delete item
Section organization rules:
| Section | Criteria | |---------|----------| | ⚠️ Overdue | Due date is before today | | 📅 Due Today | Due date is today | | 📆 This Week | Due date is within 7 days | | 📋 No Deadline | No due date specified | | ✅ Completed | Marked as done |
When marking complete: 1. Move item from current section to Completed 2. Add completion date 3. Keep the original # for reference 4. Confirm: "✅ Marked #3 complete"
When removing: 1. Delete item entirely 2. Do NOT reuse the # (prevents confusion) 3. Confirm: "🗑️ Removed #5 from to-do list"
Step 6: Handle Display Requests
If user just wants to see the output (not save), show it in their requested format.
If user wants both, save the file AND display the output.
Default behavior: Save the file, offer to-do list prompt, then display summary.
Step 7: Reference Previous Meetings
When user asks about previous meetings:
"What did we decide about X?"
meeting-notes/ for relevant files"What action items does @Name have?"
@Name in Action Items"Show me last week's meetings"
"Find meetings about X"
Search approach: 1. Check filenames first (fast) 2. Search content if needed 3. Return results with file references 4. Offer to show full details
Step 8: Handle Edge Cases
If notes are very short:
If no clear topic:
YYYY-MM-DD_meeting.mdIf date is ambiguous:
If multiple meetings in one paste:
If it's not meeting notes:
YYYY-MM-DD_notes-topic.mdStep 9: Final Response Format
⚠️ THIS IS THE MOST IMPORTANT STEP. YOUR ENTIRE RESPONSE MUST BE ONE SINGLE MESSAGE.
Complete response template (copy this structure exactly):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 [MEETING TITLE] — [YYYY-MM-DD]
Duration: [X min] | Attendees: [Names]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━SUMMARY
[2-3 sentence overview of the meeting]
⚡ ACTION ITEMS ([X] of [Total])
1. [ ] @Owner: Task — Deadline
2. [ ] @Owner: Task — Deadline
3. [ ] @Owner: Task — Deadline
4. [ ] @Owner: Task — Deadline
5. [ ] @Owner: Task — Deadline
(+[X] more in attached file)
✅ KEY DECISIONS
• Decision 1
• Decision 2
📎 Saved: meeting-notes/YYYY-MM-DD_topic.md
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Add to your to-do list?
• "all" — Add all [X] items
• "1,2,4" — Add specific items
• "none" — Skip
Checklist before sending (ALL must be true):
YYYY-MM-DD_?If ANY checkbox is false, FIX IT before responding.
Tone
Customization (Optional)
Want to customize the output? Create a PREFERENCES.md file:
# Meeting Notes PreferencesOutput Format
default: markdownAlways Include
[x] Summary
[x] Action Items
[x] Decisions
[ ] Open Questions
[ ] Attendees Action Item Format
style: "[ ] @{owner}: {task} — {deadline}"Additional Instructions
Always bold owner names
Group by deadline if more than 5 items
If this file exists, the AI will follow your preferences. If not, smart defaults apply.
Examples
Input: Messy Notes
marketing sync 1/27sarah - need to finalize the q1 campaign, she said friday
budget discussion - mike thinks we need 50k, approved
delay on product launch - 2 weeks, waiting for legal
john will send assets by wed
need to figure out vendor situation still
next sync thursday 2pm
Output: Saved File
File: meeting-notes/2025-01-27_marketing-sync.md
---
date: 2025-01-27
title: Marketing Sync
attendees: [Sarah, Mike, John]
source: pasted notes
Marketing Sync
Date: 2025-01-27
Attendees: Sarah, Mike, John
Summary
Marketing sync covering Q1 campaign finalization, budget approval ($50k), and product launch timeline adjustments due to legal review.
Action Items
[ ] @Sarah: Finalize Q1 campaign — *Friday*
[ ] @John: Send assets — *Wednesday*
[ ] @Mike: Confirm budget allocation ($50k approved)
[ ] @Team: Resolve vendor situation — *TBD*
Decisions
Budget approved at $50k
Product launch delayed 2 weeks (waiting for legal)
Open Questions
Vendor situation still unresolved
Next Steps
Next sync: Thursday 2pm
📝 Raw Notes (click to expand)
marketing sync 1/27
sarah - need to finalize the q1 campaign, she said friday
budget discussion - mike thinks we need 50k, approved
delay on product launch - 2 weeks, waiting for legal
john will send assets by wed
need to figure out vendor situation still
next sync thursday 2pm
Confirmation Message
✅ Saved: meeting-notes/2025-01-27_marketing-sync.mdSUMMARY
Marketing sync covering Q1 campaign, budget approval, and launch delay.
ACTION ITEMS
[ ] @Sarah: Finalize Q1 campaign — Friday
[ ] @John: Send assets — Wednesday
[ ] @Mike: Confirm budget allocation
[ ] @Team: Resolve vendor situation — TBD DECISIONS
• Budget approved at $50k
• Launch delayed 2 weeks
Full details in saved file.
Referencing Previous Meetings
"What action items does Sarah have?"
📋 Sarah's Action Items (across all meetings)From 2025-01-27_marketing-sync.md:
[ ] Finalize Q1 campaign — Friday From 2025-01-25_product-planning.md:
[ ] Review design mockups — Monday
[x] Send timeline to team — Done 2 open items, 1 completed
"What did we decide about the budget?"
📌 Decisions about "budget" found:2025-01-27_marketing-sync.md:
• Budget approved at $50k
2025-01-20_quarterly-planning.md:
• Q1 budget set at $150k total
• Marketing allocated $50k
Want me to show the full context from either meeting?
"Show me last week's meetings"
📅 Meetings from Jan 20-27, 2025:1. 2025-01-27_marketing-sync.md
Q1 campaign, budget approval, launch delay
2. 2025-01-25_product-planning.md
Roadmap review, design decisions
3. 2025-01-23_client-call-acme.md
Requirements review, timeline discussion
4. 2025-01-20_quarterly-planning.md
Q1 priorities, budget allocation
Want details on any of these?
Works With
Basically: If it's text, it works.
Comparison
| Feature | Otter.ai | Fireflies | This Skill | |---------|----------|-----------|------------| | Price | $20/mo | $18/mo | Free | | Requires bot in meeting | Yes | Yes | No | | Works with existing notes | No | No | Yes | | Setup time | 10+ min | 10+ min | 0 min | | Platform lock-in | Yes | Yes | No |
FAQ
Q: Does this record my meetings? No. This only processes text you paste. No recording, no bot, no audio.
Q: What if my notes are really messy? That's the point. Paste them anyway.
Q: Can I use this with Otter/Fireflies transcripts? Yes. Export or copy your transcript, paste it here.
Q: What about privacy? Your notes are processed in the conversation. Nothing is stored or sent elsewhere.
Q: Can I customize the output? Yes. Create a PREFERENCES.md file or just ask for a different format.
*Built by Jeff J Hunter — https://jeffjhunter.com*
*Part of the OpenClaw skills ecosystem. More at https://clawhub.org*
💡 Examples
Input: Messy Notes
marketing sync 1/27sarah - need to finalize the q1 campaign, she said friday
budget discussion - mike thinks we need 50k, approved
delay on product launch - 2 weeks, waiting for legal
john will send assets by wed
need to figure out vendor situation still
next sync thursday 2pm
Output: Saved File
File: meeting-notes/2025-01-27_marketing-sync.md
```markdown
date: 2025-01-27 title: Marketing Sync attendees: [Sarah, Mike, John] source: pasted notes
Marketing Sync
Date: 2025-01-27 Attendees: Sarah, Mike, John
📋 Tips & Best Practices
Q: Does this record my meetings? No. This only processes text you paste. No recording, no bot, no audio.
Q: What if my notes are really messy? That's the point. Paste them anyway.
Q: Can I use this with Otter/Fireflies transcripts? Yes. Export or copy your transcript, paste it here.
Q: What about privacy? Your notes are processed in the conversation. Nothing is stored or sent elsewhere.
Q: Can I customize the output? Yes. Create a PREFERENCES.md file or just ask for a different format.
*Built by Jeff J Hunter — https://jeffjhunter.com*
*Part of the OpenClaw skills ecosystem. More at https://clawhub.org*