{"id":20486406,"url":"https://github.com/oldhammade/ll","last_synced_at":"2025-08-13T01:13:33.378Z","repository":{"id":55476016,"uuid":"128162813","full_name":"OldhamMade/ll","owner":"OldhamMade","description":"ll - a more informative `ls`, based on `k`","archived":false,"fork":false,"pushed_at":"2020-12-29T07:41:56.000Z","size":161,"stargazers_count":23,"open_issues_count":13,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-04T12:11:43.371Z","etag":null,"topics":["command-line-tool","ls","nim","nim-lang","terminal-based"],"latest_commit_sha":null,"homepage":"","language":"Nim","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/OldhamMade.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}},"created_at":"2018-04-05T05:23:55.000Z","updated_at":"2024-06-12T20:24:35.000Z","dependencies_parsed_at":"2022-08-15T01:10:46.877Z","dependency_job_id":null,"html_url":"https://github.com/OldhamMade/ll","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OldhamMade%2Fll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OldhamMade%2Fll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OldhamMade%2Fll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OldhamMade%2Fll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OldhamMade","download_url":"https://codeload.github.com/OldhamMade/ll/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248065285,"owners_count":21041872,"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":["command-line-tool","ls","nim","nim-lang","terminal-based"],"created_at":"2024-11-15T16:36:16.457Z","updated_at":"2025-04-09T16:20:39.065Z","avatar_url":"https://github.com/OldhamMade.png","language":"Nim","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `ll` - a more informative `ls`, based on [`k`][k]\n\n![CI](https://github.com/OldhamMade/ll/workflows/CI/badge.svg)\n\n\n## Description\n\n`ll` is an alternative to [`k`][k], which was created to make\ndirectory listings more informative and readable, using colour to add\nvisual weight to important information in the listing.\n\n### Motivation\n\n[`k`][k] only works with [`zsh`][zsh], and I've found that it can\noccasionally be a little slow when working with large directories or\nwith large git repositories. I was looking for a project which would\nbe a good match to learn/use [`nim`][nim], and this seemed like a great\nopportunity to make something a little more general-purpose that could\nbe used without the [`zsh`][zsh] dependency.\n\n## Features\n\n### Full file listing\n\nCalling `ll` provides a full file listing for a directory, similar to calling\n`ls -l`.\n\n### File weight colours\n\nFiles sizes are graded from green for small (\u003c 1k), to red for huge (\u003e 1mb).\n\nHuman readable files sizes can be shown by using the `-h` or `--human` flag.\n\n### \"Rotting\" dates\n\nDates fade with age, so that recently changed files/directories can be\neasily identified.\n\n### Broken Symlinks\n\nBroken symlinks are identified by a `~\u003e` (tilde-arrow) leading symbol\nand differing colors.\n\n### Git integration\n\n`ll` provides easy-to-understand information about the `git` status of\nyour files/directories.\n\n#### Git status on entire repos\n\nWhen listing a directory which contains git repos, `ll` displays the\nactive state of those repos:\n\n![Image demonstrating repository listing](.images/repos.png)\n\n#### Git status on files within a working tree\n\nWhen listing files/directories within a working tree, `ll` displays\nthe active state of each file, and the overall state for directories:\n\n![Image demonstrating file listing](.images/status.png)\n\n### Speed\n\n`ll` improves on `k`'s rendering speeds. Currently `ll` is comparable\nto `ls` display times when using the `--no-vcs` flag. Listing git\nrepositories and trees take a little longer, but even with large\nlistings with many git-tracked entries `ll` is still sub-second.\n\n## Installation\n\n[The latest binary distribution is avilable here.][builds]\n\nIt is also possible to build and install using the following\ninstructions:\n\n### Requirements\n\n- [Nim][nim], minimum v1.2.*\n- `make`\n\n### Steps\n\nFirstly install [Nim][nim]. I personally use [`asdf`][asdf] to manage Nim\nversions on my machine. With `asdf` installed, this is as simple as\ncalling `asdf install nim latest`.\n\nOnce Nim is installed, clone this repository. From within the cloned\ndirectory, call `make install` which will build `ll` into the working\ndirectory and will then opy the resulting `ll` binary to `/usr/local/bin`.\n\n## Usage\n\n    $ ll\n\nThat's it. For more options, pass `-?` or `--help`.\n\n## Status\n\n- [x] Full file listing\n- [x] File weight colours\n- [x] \"Rotting\" dates\n- [x] Display symlink status\n- [x] Git status on entire repos\n- [x] Git status on files within a working tree\n- [x] Sort output by size\n- [x] Sort output by modified time\n- [x] Sort output in reversed order\n- [x] Options for filtering directories\n- [x] Remove dependency on PCRE (using the `regex` package)\n- [ ] Installable via Homebrew\n- [ ] Support light themes\n- [ ] Support globs\n\n### Fixes over [`k`][k]\n\n* [`k`][k] has an odd behaviour; given `pwd` is a git-tracked\ndirectory, if you `k somedir` where `somedir` contains git-tracked\ndirectories but isn't itself tracked, `k` reports as though it is\nworking inside a work-tree. `ll` reports this as one would expect, as\nthough `pwd` is `somedir`. **UPDATE:** This has now\n[been fixed](https://github.com/supercrabtree/k/issues/47).\n\n### Future plans\n\nAccording to the [`k`][k] source, there are future plans to colorise\nfile permissions. If this happens, I plan to bring those changes\nover. If any other enhancements are added, I hope to port those also.\n\nI'd like to display some additional information in the summary line of\nthe listing; I'm currently reviewing what would be most useful.\n\n## Contributing\n\nContributions and pull-requests are always welcome, as is constructive\nfeedback around code structure, hints, tips, etc.\n\nIf you would like to request a feature or report a bug, please add a\nnew issue [here](https://github.com/OldhamMade/ll/issues) and we'll do\nour best to address them. Please note that this is not a funded\nproject and fixes will be addressed on a best-effort basis.\n\nTo contribute directly:\n\n1.  Fork it (https://github.com/OldhamMade/ll/fork)\n2.  Create your feature branch (`git checkout -b my-new-feature`)\n3.  Commit your changes (`git commit -am 'Add some feature'`)\n4.  Push to the branch (`git push origin my-new-feature`)\n5.  Create a new pull request\n\n## Liability\n\nWe take no responsibility for the use of this tool, or external\ninstances provided by third parties. We strongly recommend you abide\nby the valid official regulations in your country. Furthermore, we\nrefuse liability for any inappropriate or malicious use of this\ntool. This tool is provided to you in the spirit of free, open\nsoftware.\n\nYou may view the LICENSE in which this software is provided to you\n[here](./LICENSE).\n\n\u003e IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n\u003e CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n\u003e TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n\u003e SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n[k]: https://github.com/supercrabtree/k\n[zsh]: https://en.wikipedia.org/wiki/Z_shell\n[nim]: https://nim-lang.org\n[asdf]: https://github.com/asdf-vm/asdf\n[builds]: https://github.com/OldhamMade/ll/releases/latest\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foldhammade%2Fll","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foldhammade%2Fll","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foldhammade%2Fll/lists"}