{"id":13446780,"url":"https://github.com/dborzov/lsp","last_synced_at":"2025-12-17T20:54:34.799Z","repository":{"id":19531123,"uuid":"22778688","full_name":"dborzov/lsp","owner":"dborzov","description":"lsp is like ls command but more human-friendly","archived":false,"fork":false,"pushed_at":"2021-02-21T20:34:28.000Z","size":1241,"stargazers_count":532,"open_issues_count":12,"forks_count":13,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-08-14T11:57:09.208Z","etag":null,"topics":["filemanager","ls","unix"],"latest_commit_sha":null,"homepage":"","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/dborzov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-09T04:21:58.000Z","updated_at":"2025-07-12T16:29:48.000Z","dependencies_parsed_at":"2022-08-24T03:30:42.812Z","dependency_job_id":null,"html_url":"https://github.com/dborzov/lsp","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/dborzov/lsp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dborzov%2Flsp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dborzov%2Flsp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dborzov%2Flsp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dborzov%2Flsp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dborzov","download_url":"https://codeload.github.com/dborzov/lsp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dborzov%2Flsp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27786576,"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","status":"online","status_checked_at":"2025-12-17T02:00:08.291Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["filemanager","ls","unix"],"created_at":"2024-07-31T05:00:59.753Z","updated_at":"2025-12-17T20:54:34.762Z","avatar_url":"https://github.com/dborzov.png","language":"Go","readme":"## lsp: list files in a mildly human-frendlier manner\n[![Build Status](https://travis-ci.org/dborzov/lsp.svg?branch=master)](https://travis-ci.org/dborzov/lsp)\n\n`lsp` lists files, like [`ls`](http://en.wikipedia.org/wiki/Ls) command,\nbut it does not attempt to meet\nthat archaic POSIX specification, so instead of this:\n```\n(bash)$ ls -l\n\ntotal 16\n-rw-r--r--  1 peterborzov  staff  1079  9 Aug 00:22 LICENSE\n-rw-r--r--  1 peterborzov  staff    60  9 Aug 00:22 README.md\n```\n\nyou get this:\n![screenshot](https://raw.githubusercontent.com/dborzov/lsp/screenshots/symlinks.png)\n\n## Features\n#### File Groups\nFiles grouped by type (with `-l` key or in modes when file type not shown). `lsp` distinguishes binary, text and executable files, symlinks and is aware of weird types like devices and unix socket thingy:\n![lsp can show files grouped by type](https://raw.githubusercontent.com/dborzov/lsp/screenshots/grouped.png)\n#### Modification time in human-friendly format\n`-t` key for when you are interested in modification time. It turns to the mode that makes most sense to me when I want to look up modtimes, sorted within file groups from recent to latest:\n![](https://raw.githubusercontent.com/dborzov/lsp/screenshots/modtime.png)\nSometimes relative times are  not very readible as well (like when you are interested in a specific date), use two flags `-sl` to show the full UTC timestamp in properties.\n#### Size in human-friendly format\n`-s` key, similarly to modtime key, shows file sizes and sorts within file groups from largest to smallest:\n![](https://raw.githubusercontent.com/dborzov/lsp/screenshots/size.png)\n\n#### Async Timeout\nThe file information is collected asynchronously, BFS-like, with a separate thread for each file and a timeout threshold.\n\nThat means that the execution is not going to freeze because of some low-response device driver (like external hard drive or optical drive) or collecting info about a huge directory.\n\n#### Align by left\nI have been playing with aligning files and descriptions by center, and I like that you can see files with the same extension right away, but there are deifinitely cases when it gets weird.\nFor now, there is `-p` key to render the file table in the left-aligned columns:\n![](https://raw.githubusercontent.com/dborzov/lsp/screenshots/table.png)\n\n\n## Todo before v1.0\n- [ ] Rewrite outline formatting: with the current design too much space is wasted, long filenames break things\n- [x] Mark executable files as such\n- Think about how to represent file rights and ownership\n- Approach hidden and generated files as outlined in [issue#3](https://github.com/dborzov/lsp/issues/3)\n- Better test coverage\n- Expand in this README on philosophy of the project (tool in the unix way, minimize surprises, nothing's to be configurable)\n- Think of TODO list points\n\nGithub Issues and pull requests are very welcome, feel free to [message me](tihoutrom@gmail.com) if you are considering contributing.\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for intro to the codebase\n\n\n## Installation\n\n`lsp` is written in the `go` programming language.\nIt can be installed using `go get`.\n\n```\n $ go get github.com/dborzov/lsp\n```\n\nThen make sure that your `$PATH` includes the `$GOPATH/bin` directory.\nTo do that, you can put this line your `~/.bash_profile` or `.zshrc`:\n```\nexport PATH=$PATH:$GOPATH/bin\n```\n\nOnce it becomes more functional, `lsp` will be distributed in native binaries\n(without dependencies) for all platforms (Linux, MacOS, Windows).\n\n## Misc\nMIT license.\n","funding_links":[],"categories":["Go","System Utilities","unix"],"sub_categories":["Directory Navigation"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdborzov%2Flsp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdborzov%2Flsp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdborzov%2Flsp/lists"}