{"id":50138769,"url":"https://github.com/roramirez/pitlist","last_synced_at":"2026-05-24T00:02:46.902Z","repository":{"id":359874929,"uuid":"1247831166","full_name":"roramirez/pitlist","owner":"roramirez","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-23T22:46:41.000Z","size":3474,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T23:13:44.523Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roramirez.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-23T20:55:26.000Z","updated_at":"2026-05-23T22:46:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/roramirez/pitlist","commit_stats":null,"previous_names":["roramirez/pitlist"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/roramirez/pitlist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roramirez%2Fpitlist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roramirez%2Fpitlist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roramirez%2Fpitlist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roramirez%2Fpitlist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roramirez","download_url":"https://codeload.github.com/roramirez/pitlist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roramirez%2Fpitlist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33416315,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T22:14:44.296Z","status":"ssl_error","status_checked_at":"2026-05-23T22:14:43.778Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-24T00:02:44.568Z","updated_at":"2026-05-24T00:02:46.888Z","avatar_url":"https://github.com/roramirez.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pitlist\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/icon.svg\" width=\"128\" alt=\"pitlist logo\"/\u003e\n\u003c/p\u003e\n\nA personal CLI/TUI for daily task planning and activity tracking. Plain YAML files, git-versioned, no database.\n\n```\npitlist add \"Write RFC\" --context work --label auth --priority high\npitlist log \"Deep dive into token bug\" --tag debugging --duration 45\npitlist                  # open TUI\n```\n\n---\n\n![pitlist demo](assets/demo.gif)\n\n---\n\n## Install\n\n```bash\ngit clone https://github.com/roramirez/pitlist\ncd pitlist\nmake install\n```\n\nRequires Go 1.19+.\n\n---\n\n## How it works\n\nTwo separate concerns:\n\n**Tasks** — what you plan to do, organized by day.\n**Activity log** — what you actually did, optionally linked to a task.\n\nData lives in `~/pitlist/` as plain YAML files (one per day). Every write auto-commits to a local git repo inside that directory.\n\n---\n\n## TUI\n\nLaunch with `pitlist` (no subcommand). Four tabs:\n\n| Tab | Key | Purpose |\n|---|---|---|\n| Tasks | `1` | Plan tasks for a day, grouped by context |\n| Activity | `2` | Log what you did |\n| Agenda | `3` | Pending tasks across ±7 days |\n| Search | `4` | Full-text and `#tag` search across all history |\n\n### Tasks view\n\n```\n← Mon May 19 →\n──────────────────────────────\n  work  ────────────────────\n  [ ] Write RFC for auth  [auth] !\n  [~] Review PR #234  [review]\n\n  personal  ──────────────────\n  [ ] Dentist appointment\n\n  ── carried ──\n  [ ] Fix login timeout  ↑\n```\n\n| Key | Action |\n|---|---|\n| `h` / `l` | Previous / next day |\n| `j` / `k` | Move cursor |\n| `tab` | Switch to detail pane |\n| `a` | Add task |\n| `e` | Edit task (title, context, labels, priority) |\n| `d` | Toggle done |\n| `c` | Carry to another day (prompts for date) |\n| `n` | Edit notes |\n| `L` | Log activity linked to this task |\n| `D` | Delete task |\n| `/` | Filter (searches all days) |\n| `w` | Toggle week view |\n\n### Task detail pane\n\nShows status, priority, context, labels, notes, and all linked activity entries with total time:\n\n```\nWrite RFC for auth\n──────────────────\nContext:  work\nStatus:   todo\nPriority: high\nLabels:   auth\n\nActivity:  ∑ 1h 15m\n  May 18 14:30  45m  Deep dive into token bug  [debugging]\n  May 19 09:00  30m  Drafted token rotation section  [auth]\n\nn notes  L log activity  d done  c carry\n```\n\n### Activity Log view\n\n```\n← Activity Log  Mon May 19 →\n\n  09:00  30m  Drafted token rotation section  [auth]  → t-20260519-001\n  11:00  60m  1:1 with manager  [meetings]\n\n  Total logged: 1h 30m\n```\n\n| Key | Action |\n|---|---|\n| `h` / `l` | Previous / next day |\n| `j` / `k` | Move cursor |\n| `a` | Add entry |\n| `D` | Delete entry |\n\nWhen adding an activity, duration auto-calculates the start time (`now - minutes`). The Date field shows the computed timestamp and is editable.\n\n### Agenda view\n\nShows all pending tasks in a ±7 day window. Days without pending tasks are hidden. Past-due tasks show `overdue`.\n\n| Key | Action |\n|---|---|\n| `j` / `k` | Navigate |\n| `d` | Mark done |\n| `enter` | Jump to that day in Tasks |\n| `r` | Refresh |\n\n### Search view (`4`)\n\nType to search. Results update in real time.\n\n- `auth` — matches tasks with label `auth` + activities with tag `auth` + any text containing \"auth\"\n- `#auth` — strict tag/label search only\n- `token refresh` — multi-word text search\n\n**Input mode** (default when entering Search):\n\n| Key | Action |\n|---|---|\n| `↓` / `enter` | Switch to navigate mode |\n| `esc` | Stop typing, switch to navigate mode |\n| `q` | Quit |\n| `1`–`4` | Switch tab |\n\n**Navigate mode:**\n\n| Key | Action |\n|---|---|\n| `j` / `k` | Move cursor |\n| `enter` | Jump to result's day |\n| `i` / `esc` / `/` | Back to input |\n| `q` | Quit |\n| `1`–`4` | Switch tab |\n\n---\n\n## CLI\n\n### Tasks\n\n```bash\npitlist add \"Title\" --context work --label auth --priority high --due 2026-05-20\npitlist done t-20260519-001\npitlist list                          # today, open tasks\npitlist list --label auth             # by label, all days\npitlist list --context work --week    # by context, this week\npitlist list --status done\npitlist show t-20260519-001\npitlist edit t-20260519-001           # opens $EDITOR\npitlist carry t-20260519-001          # to tomorrow\npitlist carry t-20260519-001 --to 2026-05-22\npitlist delete t-20260519-001\n```\n\n### Agenda\n\n```bash\npitlist agenda                        # next 7 days, pending only\npitlist agenda -n 14\npitlist agenda --label auth\npitlist agenda --from 2026-05-01 --to 2026-05-31\n```\n\n### Activity log\n\n```bash\npitlist log \"What I did\" --tag debugging --ref t-20260519-001 --duration 45\npitlist log \"Yesterday's work\" --date 2026-05-18 --tag auth\npitlist log list                      # today\npitlist log list --tag debugging --week\npitlist log link a-20260519-001 t-20260519-001\n```\n\n### Stats \u0026 sync\n\n```bash\npitlist stats --week\npitlist stats --month\npitlist sync                          # git commit all changes\npitlist sync --push                   # also git push\n```\n\n---\n\n## Data format\n\n```\n~/pitlist/\n├── days/\n│   └── 2026-05-19.yaml\n├── activity/\n│   └── 2026-05-19.yaml\n└── .git/\n```\n\n**Task:**\n```yaml\n- id: t-20260519-001\n  title: Write RFC for auth\n  context: work\n  labels: [auth]\n  status: todo\n  priority: high\n  created_at: 2026-05-19T09:00:00Z\n  updated_at: 2026-05-19T09:00:00Z\n  activity_refs:\n    - id: a-20260519-001\n      date: \"2026-05-19\"\n```\n\n**Activity entry:**\n```yaml\n- id: a-20260519-001\n  timestamp: 2026-05-19T08:15:00Z\n  description: Drafted token rotation section\n  tags: [auth]\n  task_ref: t-20260519-001\n  duration_min: 30\n```\n\nFiles are human-editable. `pitlist sync` commits changes.\n\n---\n\n## Configuration\n\n`~/.config/pitlist/config.yaml`\n\n```yaml\ndata_dir: \"~/pitlist\"\neditor: \"\"           # falls back to $EDITOR\nweek_start: monday\ncontexts:\n  - work\n  - personal\n  - other\ngit:\n  auto_commit: true\ntui:\n  show_done_tasks: false\n```\n\nOverride data directory at runtime:\n\n```bash\nPITLIST_DATA_DIR=/path/to/dir pitlist\n```\n\n---\n\n## Contexts\n\nContexts group tasks visually within a day. Set your own in config:\n\n```yaml\ncontexts:\n  - work\n  - personal\n  - side-project\n  - learning\n```\n\nTasks without a context appear under `—`. The order in config controls the order in the list.\n\n---\n\n## Backup\n\nData is plain YAML — back it up however you want. The built-in option:\n\n```bash\n# Point to a private remote, then:\npitlist sync --push\n```\n\nOr just copy `~/pitlist/` anywhere. It's readable without pitlist.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froramirez%2Fpitlist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froramirez%2Fpitlist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froramirez%2Fpitlist/lists"}