{"id":19022118,"url":"https://github.com/acavalin/dcat","last_synced_at":"2026-02-22T12:39:20.850Z","repository":{"id":179879006,"uuid":"415067424","full_name":"acavalin/dcat","owner":"acavalin","description":"Command line catalog tool for your offline data","archived":false,"fork":false,"pushed_at":"2025-02-08T17:22:07.000Z","size":375,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T08:09:54.149Z","etag":null,"topics":["catalog","cli","disk","disk-usage","folder","folder-viewer","offline","ruby","terminal"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acavalin.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":"2021-10-08T17:07:12.000Z","updated_at":"2025-04-08T15:13:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"e92d2b33-60d0-45a0-90bd-ae516aa2a14c","html_url":"https://github.com/acavalin/dcat","commit_stats":null,"previous_names":["acavalin/dcat"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acavalin%2Fdcat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acavalin%2Fdcat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acavalin%2Fdcat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acavalin%2Fdcat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acavalin","download_url":"https://codeload.github.com/acavalin/dcat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248701853,"owners_count":21148110,"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":["catalog","cli","disk","disk-usage","folder","folder-viewer","offline","ruby","terminal"],"created_at":"2024-11-08T20:24:52.070Z","updated_at":"2025-10-23T20:51:25.962Z","avatar_url":"https://github.com/acavalin.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dcat\n\nA command line catalog tool for your offline data.\n\nAfter trying some other tools ([CDcat](http://cdcat.sourceforge.net), [VVV](http://vvvapp.sourceforge.net), [Basenji](https://launchpad.net/basenji), [GWhere](http://www.gwhere.org), [catcli](https://github.com/deadc0de6/catcli)) I ended up writing my own with these points in mind:\n- no GUI: usable everywhere especially in remote terminals\n- no extra libraries needed, only mature core tools\n- data stored in a compressed and open format (gzipped json)\n- easy way to browse a catalog with [ncurses](https://en.wikipedia.org/wiki/Ncurses)\n\n## With DCat you can\n\n* create a catalog (files index) for each desired removable media (CD/DVDs, hard/flash drives) or folder\n* search for a file (name or regexp) on a single catalog or your entire collection\n* browse a catalog with a nice dialog interface\n\n## Requirements\n\n1. ruby interpreter (no additional gems required) and common linux commands (`find`, `sort`, `pv`, and `dialog`):\n   \n   `apt install ruby findutils coreutils pv dialog`\n2. set executable bits on file: `chmod 755 dcat`\n\n## Usage\n\n| action | command |\n|--------|---------|\n| create | `dcat \u003ci\\|index\u003e  catalog_name   path` |\n| list   | `dcat ls` |\n| search | `dcat \u003cs\\|search\u003e [catalog_name] regexp` |\n| browse | `dcat [catalog_name]` |\n\n## Screenshots\n\n### create\n![create](/sshots/create.png?raw=true \"create a catalog\")\n\n### list\n![list](/sshots/list.png?raw=true \"list created catalogues\")\n\n### search\n![search1](/sshots/search1.png?raw=true \"search in catalogues\")\n\n![search2](/sshots/search2.png?raw=true \"search in catalogues\")\n\n### browse\n![browse1](/sshots/browse-list.png?raw=true \"browse - list of catalogues\")\n\n![browse2](/sshots/browse-catalog.png?raw=true \"browse a catalog\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facavalin%2Fdcat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facavalin%2Fdcat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facavalin%2Fdcat/lists"}