Skip to content

Quick daily task logging CLI for developers to improve productivity and context switching. Sync with GitHub, search past work, and never lose track of what you were working on.

License

Notifications You must be signed in to change notification settings

dholdaway/TaskCache

Repository files navigation

Task Cache

Quick daily task logging for developers to improve productivity and context switching

npm version License: MIT

Task Cache is a simple command-line tool that helps developers track their daily progress in just a few minutes. By maintaining a structured log of what you did, what's next, and what issues occurred, you can dramatically reduce context switching costs and start each day with clarity.

┌─────────────────────────────────────────────────────────────┐
│                    📝 Task Cache Demo                       │
├─────────────────────────────────────────────────────────────┤
│ $ tcache                                                    │
│                                                             │
│ 📝 Task Cache - Quick Daily Task Log                       │
│ 💡 Tip: Use double spaces to create bullet points          │
│                                                             │
│ What did you do today?                                      │
│ > Fixed auth bug  Added rate limiting  Deployed to prod ✨ │
│                                                             │
│ What's next on your plate?                                  │
│ > Write tests  Review PRs  Update docs                     │
│                                                             │
│ ✅ Task cache saved to ~/.task-cache/2025-05-22.md         │
│ ✅ Task cache pushed to GitHub successfully                 │
└─────────────────────────────────────────────────────────────┘

✨ Features

  • ⚡ 5-minute daily logging - Quick, structured logging that doesn't interrupt your workflow
  • 📝 Smart markdown formatting - Automatically formats your entries into clean, readable markdown
  • 🔍 Powerful search - Find solutions to problems you've solved before
  • ☁️ GitHub sync - Back up your logs and access them from any device
  • 🧠 Context preservation - Never lose track of where you left off
  • 👥 Team sharing - Share knowledge with teammates (optional)
  • ✨ Double-space formatting - Type naturally, get perfect bullet points

📦 Installation

NPM (Recommended)

npm install -g task-cache

Verify Installation

tcache help

🚀 Quick Start

┌─────────────────────────────────────────────────────────────┐
│                  🚀 Your First Task Cache                   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Step 1: Run the command                                    │
│  $ tcache                                                   │
│                                                             │
│  Step 2: Answer the prompts naturally                       │
│  ┌─────────────────────────────────────────────────────┐   │
│  │ What did you do today?                              │   │
│  │ > Fixed login bug  Added authentication  Deployed  │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  Step 3: Enjoy perfectly formatted logs! 📝                │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Smart Formatting Magic

Task Cache automatically converts your natural typing into clean markdown:

┌─── What You Type ────────────────┐    ┌─── What Gets Saved ──────────────┐
│                                  │    │                                  │
│ Fixed login bug  Added rate      │───▶│ - Fixed login bug                │
│ limiting  Deployed session fix   │    │ - Added rate limiting            │
│                                  │    │ - Deployed session fix           │
└──────────────────────────────────┘    └──────────────────────────────────┘

📋 All Commands

┌─────────────────────────────────────────────────────────────┐
│                    📋 Command Reference                     │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Basic Commands:                                            │
│  tcache              Create new task cache                  │
│  tcache view         View today's cache                     │
│  tcache view 2025-05-20  View specific date                │
│  tcache list         List all cached logs                  │
│  tcache search "bug" Search through logs                   │
│                                                             │
│  GitHub Sync:                                               │
│  tcache github setup    Configure GitHub backup            │
│  tcache github status   Check sync status                  │
│  tcache github push     Push to GitHub                     │
│  tcache github pull     Pull from GitHub                   │
│  tcache github debug    Debug configuration                │
│                                                             │
└─────────────────────────────────────────────────────────────┘

💡 Why Task Cache?

The Problem

    Developer's Day Without Task Cache
    ═══════════════════════════════════
    
9:00 AM  😵 "What was I working on yesterday?"
         🔍 Searches through Slack messages...
         📧 Checks email for clues...
         🤔 Tries to remember context...
    
9:23 AM  💡 "Oh right, the login bug!"
         🐛 Starts debugging...
    
11:30 AM 🔥 "Wait, didn't I solve this before?"
         🔍 Searches codebase...
         📝 Checks old tickets...
    
12:15 PM 😤 "I KNOW I fixed this same issue!"
    
         Total time lost: 1.5+ hours ⏰

The Solution

    Developer's Day WITH Task Cache
    ═══════════════════════════════════
    
9:00 AM  📋 tcache view
         ✅ "Yesterday I was debugging the login timeout"
         ✅ "Next: Check the session middleware"
         ✅ "Note: Solution is in commit abc123"
    
9:03 AM  🚀 Immediately starts productive work
    
11:30 AM 🔍 tcache search "login timeout"
         ✨ "Found it! I solved this 2 weeks ago"
         📝 "The fix was in the cookie expiration logic"
    
11:32 AM ✅ Problem solved with context
    
         Time saved: 1.5+ hours ⏰

Task Cache implements the Zeigarnik Effect - by closing mental loops at the end of each day, you:

  • ✅ Clear your mental RAM
  • ✅ Build continuity between workdays
  • ✅ Create searchable knowledge base
  • ✅ Reduce cognitive load

📁 Example Output

# Task Cache: Wednesday, May 22nd, 2025

## What I Did
- Refactored authentication middleware to handle rate limiting
- Fixed bug #231 with session expiration (was a cookie timing issue)
- Started investigating memory leak in analytics module
- PR review for team member's frontend components

## What's Next
- Write unit tests for the new rate limiter
- Complete memory leak investigation (focus on third-party SDK)
- Start implementing the new notification system
- Prepare for tomorrow's API design review meeting

## What Broke or Got Weird
- Memory leak appears to be coming from third-party analytics SDK
- AWS Lambda logs are delayed by ~5 minutes today
- Intermittent 401 errors from auth service during peak load
- Database query for user profiles suddenly running 2x slower

## Notes
- Productivity today: 4/5
- Need to follow up with DevOps about AWS CloudWatch alerts
- Good conversation with product team about notification priority levels

---
*Cached at 5:32 PM*

⚙️ GitHub Sync Setup

┌─────────────────────────────────────────────────────────────┐
│                  ⚙️ GitHub Sync Setup                       │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Step 1: Generate Personal Access Token                     │
│  ┌─────────────────────────────────────────────────────┐   │
│  │ 🌐 github.com/settings/tokens                      │   │
│  │ ✅ Create new token (classic)                       │   │
│  │ ✅ Select "repo" scope                             │   │
│  │ ✅ Generate & copy token                           │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  Step 2: Configure Task Cache                               │
│  $ tcache github setup                                      │
│  📦 Repository: username/task-logs                          │
│  🌿 Branch: main                                            │
│  🔑 Token: github_pat_xxxxx                                │
│  ⚡ Auto-sync: yes                                          │
│                                                             │
│  Step 3: Verify                                             │
│  $ tcache github status                                     │
│  ✅ GitHub sync enabled and working!                        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

GitHub Status Display

┌─────────────────────────────────────────────────────────────┐
│                   📦 GitHub Sync Status                     │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ✅ Enabled: Yes                                            │
│  📦 Repository: dholdaway/task-logs                         │
│  🌿 Branch: main                                            │
│  ⚡ Auto Sync: Yes                                          │
│  🔄 Sync on Start: Yes                                      │
│  🕐 Last Sync: May 22, 2025 at 5:32 PM                     │
│                                                             │
│  🔗 Remote URL: https://***@github.com/dholdaway/task-logs  │
│  📝 Uncommitted files: No                                   │
│  🌿 Current branch: main                                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

🔍 Search Your Past Work

┌─────────────────────────────────────────────────────────────┐
│                    🔍 Search Example                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│ $ tcache search "memory leak"                               │
│                                                             │
│ 🔍 Searching task cache for "memory leak":                 │
│                                                             │
│ ✅ Found in 2025-05-22:                                     │
│    In section: What I Did                                   │
│    - Started investigating memory leak in analytics module  │
│                                                             │
│ ✅ Found in 2025-05-15:                                     │
│    In section: What Broke or Got Weird                     │
│    - Memory leak in user session handling                  │
│    - Fixed by updating cleanup intervals                    │
│                                                             │
│ ✅ Found in 2025-05-08:                                     │
│    In section: Notes                                        │
│    - Memory leak was caused by event listeners not         │
│      being properly removed                                 │
│                                                             │
└─────────────────────────────────────────────────────────────┘

🏢 Team Usage

┌─────────────────────────────────────────────────────────────┐
│                     👥 Team Benefits                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Individual Use:                                            │
│  👤 Personal task cache + optional sharing                  │
│                                                             │
│  Team Repository:                                           │
│  👥 Shared knowledge base                                   │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  Better Standups    Fewer Repeat Issues            │   │
│  │  ┌─────────────┐    ┌─────────────────────────────┐ │   │
│  │  │ "Yesterday  │    │ "I solved this same bug    │ │   │
│  │  │  I worked   │    │  last month - check my     │ │   │
│  │  │  on X, Y,   │    │  May 15th log for the      │ │   │
│  │  │  and Z"     │    │  solution!"                 │ │   │
│  │  └─────────────┘    └─────────────────────────────┘ │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  Smoother Handoffs   Accurate Retros               │   │
│  │  ┌─────────────┐    ┌─────────────────────────────┐ │   │
│  │  │ "The issue  │    │ "Based on daily logs, our  │ │   │
│  │  │  is in the  │    │  main blockers were API     │ │   │
│  │  │  analytics  │    │  timeouts and database      │ │   │
│  │  │  module -   │    │  performance issues"        │ │   │
│  │  │  see log"   │    │                             │ │   │
│  │  └─────────────┘    └─────────────────────────────┘ │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

🎨 Advanced Formatting Tips

┌─────────────────────────────────────────────────────────────┐
│                  🎨 Formatting Examples                     │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Double Space Magic:                                        │
│  Input:  "Item one  Item two  Item three"                  │
│  Output: - Item one                                         │
│          - Item two                                         │
│          - Item three                                       │
│                                                             │
│  Numbered Sections:                                         │
│  Input:  "1. Frontend  Fixed bugs  2. Backend  Added API"  │
│  Output: **1. Frontend**                                    │
│          - Fixed bugs                                       │
│          **2. Backend**                                     │
│          - Added API                                        │
│                                                             │
│  Mixed Content:                                             │
│  Input:  "Fixed login bug. Added rate limiting  Tests"     │
│  Output: - Fixed login bug. Added rate limiting            │
│          - Tests                                            │
│                                                             │
└─────────────────────────────────────────────────────────────┘

🔧 Debug Your Setup

┌─────────────────────────────────────────────────────────────┐
│                    🔍 Debug Output                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│ $ tcache github debug                                       │
│                                                             │
│ 🔍 GitHub Sync Debug Information:                          │
│                                                             │
│ 📁 Directory: /Users/you/.task-cache                       │
│ 🔧 Config file: /Users/you/.task-cache/.github-config.json │
│ 📊 Config exists: true                                      │
│ ✅ Enabled: true                                            │
│ 📦 Repository: username/task-logs                           │
│ 🌿 Branch: main                                             │
│ 🔑 Token length: 113 characters                            │
│ 🔄 Auto sync: true                                          │
│                                                             │
│ 📋 Git Configuration:                                       │
│ 🔗 Remote URL: https://***@github.com/username/task-logs   │
│ 📝 Uncommitted files: No                                   │
│ 🌿 Current branch: main                                     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

🐛 Troubleshooting

┌─────────────────────────────────────────────────────────────┐
│                  🐛 Common Issues & Solutions               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ❌ Problem: Permission denied when pushing                 │
│  ✅ Solution:                                               │
│     $ git credential-osxkeychain erase <<EOF               │
│     protocol=https                                          │
│     host=github.com                                         │
│     EOF                                                     │
│     $ tcache github setup                                   │
│                                                             │
│  ❌ Problem: Divergent branches error                       │
│  ✅ Solution:                                               │
│     $ cd ~/.task-cache                                      │
│     $ git pull origin main --allow-unrelated-histories     │
│     $ tcache github push                                    │
│                                                             │
│  ❌ Problem: Command not found                              │
│  ✅ Solution:                                               │
│     $ npm install -g task-cache                            │
│                                                             │
│  ❌ Problem: Token authentication fails                     │
│  ✅ Solution:                                               │
│     • Ensure token has "repo" scope                        │
│     • Generate fresh token on GitHub                       │
│     • Run: tcache github setup                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

📊 Usage Analytics

After using Task Cache for a week, developers typically report:

┌─────────────────────────────────────────────────────────────┐
│                    📊 Impact Metrics                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Morning Startup:        🚀 23% faster                     │
│  ████████████████████████▓▓▓▓▓▓▓▓▓▓▓▓                      │
│                                                             │
│  Repeated Investigations: 🔍 35% fewer                     │
│  ██████████████████████████████████▓▓▓▓▓▓▓▓                │
│                                                             │
│  Handoff Quality:        🤝 67% better                     │
│  ████████████████████████████████████████████████▓▓▓▓      │
│                                                             │
│  Standup Confidence:     💪 89% more confident             │
│  ████████████████████████████████████████████████████████▓ │
│                                                             │
└─────────────────────────────────────────────────────────────┘

🔧 Configuration & File Locations

Task Cache stores files in your home directory:

~/.task-cache/
├── 2025-05-22.md                 # Today's task cache
├── 2025-05-21.md                 # Yesterday's log
├── 2025-05-20.md                 # Previous logs
├── .github-config.json           # GitHub sync config (excluded from sync)
└── .gitignore                    # Protects sensitive files

🚀 Advanced Usage

Automation Ideas

# Add to your shell profile
alias eod="tcache"

# Create a shutdown script
echo "tcache" >> ~/bin/end-of-day.sh

# Git commit hook to remind you to log
echo "echo 'Don't forget: tcache'" >> .git/hooks/post-commit

Integration with Other Tools

┌─────────────────────────────────────────────────────────────┐
│                 🔗 Tool Integrations                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  💬 Slack                                                   │
│     Share interesting findings with team                     │
│                                                             │
│  📋 Notion                                                  │
│     Copy logs for project documentation                     │
│                                                             │
│  🎫 Jira                                                    │
│     Reference logs in tickets                               │
│                                                             │
│  🗣️ Stand-up Meetings                                      │
│     Review yesterday's log before meeting                   │
│                                                             │
│  📝 Code Reviews                                            │
│     Include context from task cache in PR descriptions      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

🤝 Contributing

Found a bug or have a feature request?

  1. Check existing issues
  2. Create a new issue with detailed description
  3. Or submit a pull request!

Development Setup

git clone https://github.com/dholdaway/TaskCache.git
cd TaskCache
npm install
npm link

🚀 What's Next?

Upcoming features:

┌─────────────────────────────────────────────────────────────┐
│                    🚀 Roadmap                               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  📄 Export to PDF/HTML formats                             │
│  📊 Team analytics and insights                            │
│  🔗 Integration with project management tools              │
│  📝 Custom templates for different work types              │
│  ⏰ Time tracking integration                               │
│  🤖 AI-powered insights and suggestions                    │
│  📱 Mobile companion app                                    │
│  🔔 Smart reminders and notifications                      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

📄 License

MIT License - see LICENSE file for details.

🙏 Inspiration

This tool was inspired by:

  • Research on developer productivity and the Zeigarnik Effect
  • Daily logging practices from productive development teams
  • The need for better context switching in distributed teams

Start building better development habits today:

┌─────────────────────────────────────────────────────────────┐
│                    🚀 Get Started                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  $ npm install -g task-cache                               │
│  $ tcache                                                   │
│                                                             │
│  That's it! Your first task cache is ready 📝              │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Made with ❤️ for developers who want to stay productive and maintain context across their workdays.

About

Quick daily task logging CLI for developers to improve productivity and context switching. Sync with GitHub, search past work, and never lose track of what you were working on.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published