{"id":14530543,"url":"https://github.com/dhth/omm","last_synced_at":"2025-04-13T11:48:09.698Z","repository":{"id":247505281,"uuid":"825978481","full_name":"dhth/omm","owner":"dhth","description":"on-my-mind: a keyboard-driven task manager for the command line","archived":false,"fork":false,"pushed_at":"2025-04-01T07:16:47.000Z","size":203,"stargazers_count":272,"open_issues_count":8,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-04T07:03:15.271Z","etag":null,"topics":["bubbletea","task-manager","todo-app","todolist"],"latest_commit_sha":null,"homepage":"https://tools.dhruvs.space/omm","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dhth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-07-08T21:52:46.000Z","updated_at":"2025-03-29T22:14:34.000Z","dependencies_parsed_at":"2024-08-24T14:42:07.809Z","dependency_job_id":"08524679-c7ef-428a-9d29-28140b6503be","html_url":"https://github.com/dhth/omm","commit_stats":null,"previous_names":["dhth/omm"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fomm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fomm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fomm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fomm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhth","download_url":"https://codeload.github.com/dhth/omm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248710410,"owners_count":21149186,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bubbletea","task-manager","todo-app","todolist"],"created_at":"2024-09-05T00:01:08.023Z","updated_at":"2025-04-13T11:48:09.677Z","avatar_url":"https://github.com/dhth.png","language":"Go","readme":"# omm\n\n[![Build Workflow Status](https://img.shields.io/github/actions/workflow/status/dhth/omm/build.yml?style=flat-square)](https://github.com/dhth/omm/actions/workflows/build.yml)\n[![Vulncheck Workflow Status](https://img.shields.io/github/actions/workflow/status/dhth/omm/vulncheck.yml?style=flat-square\u0026label=vulncheck)](https://github.com/dhth/omm/actions/workflows/vulncheck.yml)\n[![Latest Release](https://img.shields.io/github/release/dhth/omm.svg?style=flat-square)](https://github.com/dhth/omm/releases/latest)\n[![Commits Since Latest Release](https://img.shields.io/github/commits-since/dhth/omm/latest?style=flat-square)](https://github.com/dhth/omm/releases)\n\n`omm` (stands for \"on-my-mind\") is a keyboard-driven task manager for the\ncommand line.\n\n\n![Usage](https://tools.dhruvs.space/images/omm/omm.gif)\n\n[source video](https://www.youtube.com/watch?v=iB_PHc92wgY)\n\n🤔 Motivation\n---\n\nThe fundamental idea behind `omm` is that while we might have several tasks on\nour to-do list — each with its own priority — we typically focus on one task at\na time. Priorities frequently change, requiring us to switch between tasks.\n`omm` lets you visualize this shifting priority order with a very simple list\ninterface that can be managed entirely via the keyboard.\n\n💾 Installation\n---\n\n**homebrew**:\n\n```sh\nbrew install dhth/tap/omm\n```\n\n**go**:\n\n```sh\ngo install github.com/dhth/omm@latest\n```\n\nOr get the binary directly from a [release][2]. Read more about verifying the\nauthenticity of released artifacts [here](#-verifying-release-artifacts).\n\n\u003e [!NOTE]\n\u003e Would you like to see `omm` on Windows? Vote\n\u003e [here](https://github.com/dhth/omm/discussions/51).\n\n💡 Guide\n---\n\nomm offers a guided walkthrough of its features, intended for new users of it.\nRun it as follows.\n\n```bash\nomm guide\n```\n\n![Guide](https://tools.dhruvs.space/images/omm/omm-guide-1.png)\n\n📋 Updates\n---\n\nCheck out the latest features added to `omm` using:\n\n```bash\nomm updates\n```\n\n⚡️ Usage\n---\n\n### TUI\n\n`omm`'s TUI is comprised of several views: 4 lists (for active and archived\ntasks, one for task bookmarks, and one for prefix selection), a context pane, a\ntask details pane, and a task entry/update pane.\n\n#### Active Tasks List\n\nAs the name suggests, the active tasks list is for the tasks you're actively\nworking on right now. It allows you to do the following:\n\n- Create/update tasks at a specific position in the priority list\n- Add a task at the start/end of the list\n- Move a task to the top of the list (indicating that it takes the highest\n    priority at the moment)\n- Move task up/down based on changing priorities\n- Archive a task\n- Permanently delete a task\n\n![active-tasks](https://tools.dhruvs.space/images/omm/omm-active-tasks-1.png)\n\n#### Archived Tasks List\n\nOnce you're done with a task, you can archive it, which puts it in the archived\ntasks list. It's more for historical reference, but you can also unarchive a\ntask and put it back in the active list, if you need to. You can also\npermanently delete tasks from here.\n\n#### Context Pane\n\nFor tasks that need more details that you can fit in a one line summary, there\nis the context pane. You add/update context for a task via a text editor which\nis chosen based on the following look ups:\n\n- the \"--editor\" flag\n- $OMM_EDITOR\n- \"editor\" property in omm's toml config\n- $EDITOR/$VISUAL\n- `vi` (fallback)\n\n#### Task Details Pane\n\nThe Task Details pane lets you see all details for a task in a single scrollable\npane.\n\n**[`^ back to top ^`](#omm)**\n\n#### Task Entry Pane\n\nThis is where you enter/update a task summary. If you enter a summary in the\nformat `prefix: task summary goes here`, `omm` will highlight the prefix for you\nin the task lists.\n\n![active-tasks](https://tools.dhruvs.space/images/omm/omm-task-entry-1.png)\n\n#### Tweaking the TUI\n\nThe list colors and the task list title can be changed via CLI flags.\n\n```bash\nomm \\\n    --tl-color=\"#b8bb26\" \\\n    --atl-color=\"#fb4934\" \\\n    --title=\"work\"\n```\n\nomm offers two modes for the visual density of its lists: \"compact\" and\n\"spacious\", the former being the default. omm can be started with one of\nthe two modes, which can later be switched by pressing \"v\".\n\n```bash\nomm --list-density=spacious\n```\n\nThis configuration property can also be provided via the environment variable\n`OMM_LIST_DENSITY`.\n\nCompact mode:\n\n![compact](https://tools.dhruvs.space/images/omm/omm-compact-1.png)\n\nSpacious mode:\n\n![spacious](https://tools.dhruvs.space/images/omm/omm-spacious-1.png)\n\n### Importing tasks\n\nMultiple tasks can be imported from `stdin` using the `import` subcommand.\n\n```bash\ncat \u003c\u003c 'EOF' | omm import\norders: order new ACME rocket skates\ntraps: draw fake tunnel on the canyon wall\ntech: assemble ACME jet-propelled pogo stick\nEOF\n```\n\nTip: Vim users can import tasks into omm by making a visual selection and\nrunning `:'\u003c,'\u003e!omm import\u003cCR\u003e`.\n\n### Adding a single task\n\nWhen an argument is passed to `omm`, it saves it as a task, instead of opening\nup the TUI.\n\n```bash\nomm \"Install spring-loaded boxing glove\"\n```\n\n### Configuration\n\n`omm` allows you to change the some of its behavior via configuration, which it\nwill consider in the order listed below:\n\n- CLI flags (run `omm -h` to see details)\n- Environment variables (eg. `OMM_EDITOR`)\n- A TOML configuration file (run `omm -h` to see where this lives; you can\n    change this via the flag `--config-path`)\n\n    Here's a sample config file:\n\n    ```toml\n    db_path      = \"~/.local/share/omm/omm-w.db\"\n    tl_color     = \"#b8bb26\"\n    atl_color    = \"#fabd2f\"\n    title        = \"work\"\n    list_density = \"spacious\"\n    show_context = false\n    editor       = \"vi -u NONE\"\n    ```\n\n**[`^ back to top ^`](#omm)**\n\nOutputting tasks\n---\n\nTasks can be outputted to `stdout` using the `tasks` subcommand.\n\n```bash\nomm tasks\n```\n\n🤔 Tips\n---\n\nThese are some tips to improve your experience of using `omm`:\n\n- Set up discrete instances of `omm` if you need to. You can do so by\n  referencing a different config file (which points to a unique database) for\n  each instance, or by directly using `--db-path` flag. Eg. an omm instance for\n  personal tasks, and another for work. Set up as many `omm` instances as you\n  need.\n- Use `omm updates` to stay up to date with omm's latest features/changes.\n\n⌨️ Keymaps\n---\n\n### General\n\n    q/esc/ctrl+c       go back\n    Q                  quit from anywhere\n\n### Active/Archived Tasks List\n\n    j/↓                move cursor down\n    k/↑                move cursor up\n    h                  go to previous page\n    l                  go to next page\n    g                  go to the top\n    G                  go to the end\n    tab                move between lists\n    C                  toggle showing context\n    d                  toggle Task Details pane\n    b                  open Task Bookmarks list\n    B                  open all bookmarks added to current task\n    c                  update context for a task\n    ctrl+d             archive/unarchive task\n    ctrl+x             delete task\n    ctrl+r             reload task lists\n    /                  filter list by task prefix\n    ctrl+p             filter by prefix via the prefix selection list\n    y                  copy selected task's context to system clipboard\n    v                  toggle between compact and spacious view\n\n### Active Tasks List\n\n    q/esc/ctrl+c       quit\n    o/a                add task below cursor\n    O                  add task above cursor\n    I                  add task at the top\n    A                  add task at the end\n    u                  update task summary\n    ⏎                  move task to the top\n    E                  move task to the end\n    J                  move task one position down\n    K                  move task one position up\n\n### Task Creation/Update Pane\n\n    ⏎                  submit task summary\n    ctrl+p             choose/change prefix via the prefix selection list\n\n### Task Details Pane\n\n    h/←/→/l            move backwards/forwards when in the task details view\n    y                  copy current task's context to system clipboard\n    B                  open all bookmarks added to current task\n\n### Task Bookmarks List\n\n    ⏎                  open URL in browser\n\n🔐 Verifying release artifacts\n---\n\nIn case you get the `omm` binary directly from a [release][2], you may want to\nverify its authenticity. Checksums are applied to all released artifacts, and\nthe resulting checksum file is signed using\n[cosign](https://docs.sigstore.dev/cosign/installation/).\n\nSteps to verify (replace `A.B.C` in the commands listed below with the version\nyou want):\n\n1. Download the following files from the release:\n\n   - omm_A.B.C_checksums.txt\n   - omm_A.B.C_checksums.txt.pem\n   - omm_A.B.C_checksums.txt.sig\n\n2. Verify the signature:\n\n   ```shell\n   cosign verify-blob omm_A.B.C_checksums.txt \\\n       --certificate omm_A.B.C_checksums.txt.pem \\\n       --signature omm_A.B.C_checksums.txt.sig \\\n       --certificate-identity-regexp 'https://github\\.com/dhth/omm/\\.github/workflows/.+' \\\n       --certificate-oidc-issuer \"https://token.actions.githubusercontent.com\"\n   ```\n\n3. Download the compressed archive you want, and validate its checksum:\n\n   ```shell\n   curl -sSLO https://github.com/dhth/omm/releases/download/vA.B.C/omm_A.B.C_linux_amd64.tar.gz\n   sha256sum --ignore-missing -c omm_A.B.C_checksums.txt\n   ```\n\n3. If checksum validation goes through, uncompress the archive:\n\n   ```shell\n   tar -xzf omm_A.B.C_linux_amd64.tar.gz\n   ./omm\n   # profit!\n   ```\n\nAcknowledgements\n---\n\n`omm` stands on the shoulders of giants. \n\n- [bubbletea](https://github.com/charmbracelet/bubbletea) as the TUI framework\n- [sqlite](https://www.sqlite.org) as the local database\n- [goreleaser](https://github.com/goreleaser/goreleaser) for releasing binaries\n\n**[`^ back to top ^`](#omm)**\n\n[1]: https://github.com/dhth/binhelpers#downloading-and-validating-the-integrity-of-binaries\n[2]: https://github.com/dhth/omm/releases\n","funding_links":[],"categories":["Go","\u003ca name=\"todo-manager\"\u003e\u003c/a\u003eTodo managers","Applications"],"sub_categories":["Productivity and Organization"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhth%2Fomm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhth%2Fomm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhth%2Fomm/lists"}