Skip to content

Add --grab flag for file attachments (cold storage) #3

@miratcan

Description

@miratcan

Feature Request: Personal Cold Storage Layer

Add --grab flag to attach files/directories to entries by zipping and moving to attachments/{id}.zip.

Use Cases

1. EVENTS (completed work archival):

  • Invoices/receipts: kaydet 'Sent invoice to client X' --grab invoice.pdf
  • Conference talks: kaydet 'Spoke at PyConf' --grab slides.pdf
  • Research papers: kaydet 'Read distributed systems paper' --grab paper.pdf
  • Screenshots: kaydet 'Found UI bug' --grab screenshot.png

Benefit: Context + artifact in one place, searchable, tax/legal compliance

2. TODOS (deferred decisions):

  • Download cleanup: kaydet --todo 'Choose melody version' --grab v1.json v2.json
  • Paused projects: kaydet --todo 'Resume parser experiment' --grab project/
  • Config backups: kaydet --todo 'Try new nvim config' --grab ~/.config/nvim/

Benefit: Workspace zen, reversible decisions

3. NOTES (reference material):

  • Code snippets: kaydet 'Error handling pattern' --grab example.py
  • Design files: kaydet 'Logo concepts' --grab concepts/

Benefit: Personal cookbook, grep-able knowledge base

Commands

  • --grab file1 file2 - Universal: works with entries/todos/notes
  • --files ID - List archive contents + mime types (no unzip)
  • --extract ID [PATH] - Retrieve to temp or specified location
  • --open ID - Extract and open in default apps

Implementation Notes

  • Disk efficient: 80% compression for text/JSON/code
  • Atomic operations: single .zip file per entry
  • Auto-delete prompt on --done (for todos only)
  • Normal entries: attachments preserved forever (archival)

Vision

Transform kaydet into personal cold storage layer - like AWS Glacier but human-scale, local-first, context-rich.

Effort: ~5h

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions