{"id":24541115,"url":"https://github.com/NikitaIvanovV/ictree","last_synced_at":"2025-10-03T17:30:33.725Z","repository":{"id":37915320,"uuid":"447625568","full_name":"NikitaIvanovV/ictree","owner":"NikitaIvanovV","description":"Like tree but interactive","archived":false,"fork":false,"pushed_at":"2024-03-26T14:04:30.000Z","size":1161,"stargazers_count":154,"open_issues_count":5,"forks_count":7,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-01-17T22:42:20.684Z","etag":null,"topics":["command-line","command-line-interface","command-line-tool","interactive","linux","pager","terminal","terminal-app","tree","tui"],"latest_commit_sha":null,"homepage":"https://nikitaivanovv.github.io/ictree/","language":"C","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/NikitaIvanovV.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":"2022-01-13T14:15:54.000Z","updated_at":"2025-01-08T04:47:44.000Z","dependencies_parsed_at":"2024-01-07T21:02:21.046Z","dependency_job_id":"0cf13270-07b8-468d-970e-347dbd2627ad","html_url":"https://github.com/NikitaIvanovV/ictree","commit_stats":{"total_commits":117,"total_committers":9,"mean_commits":13.0,"dds":0.07692307692307687,"last_synced_commit":"f50002a9a10b8f895bd02f5d5c09179a09a2efaf"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikitaIvanovV%2Fictree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikitaIvanovV%2Fictree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikitaIvanovV%2Fictree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikitaIvanovV%2Fictree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NikitaIvanovV","download_url":"https://codeload.github.com/NikitaIvanovV/ictree/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235161515,"owners_count":18945536,"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","command-line-interface","command-line-tool","interactive","linux","pager","terminal","terminal-app","tree","tui"],"created_at":"2025-01-22T18:17:10.813Z","updated_at":"2025-10-03T17:30:28.395Z","avatar_url":"https://github.com/NikitaIvanovV.png","language":"C","funding_links":[],"categories":["C","\u003ca name=\"file-explorer\"\u003e\u003c/a\u003eFile explorer and tree visualization"],"sub_categories":[],"readme":"# ictree\n\nSometimes I need to find some file with `locate` or `find`.\nI use the command but, instead of getting several lines of output that are easy to look through, I get hundreds of them...\nThen I try to pipe that mess into `tree --fromfile . | less`, hoping that it will be less of a pain to find what I'm looking for. But it's not always the case: you cannot fold directories you're not interested in within less, so you have to hold ^F...\n\nI got sick of it and made this simple program that takes a list of contents of directories and provides a terminal interface where you can fold/unfold items and jump between them quickly.\n\n![showcase](doc/images/showcase.gif)\n\nThe program is written in C using awesome [termbox2](https://github.com/termbox/termbox2) library for rendering UI.\n\n## Installation\n\n### Manual\n\n```sh\ngit clone --recursive https://github.com/NikitaIvanovV/ictree\ncd ictree\nsudo make install\n```\n\nUninstall with `sudo make uninstall`\n\n*Warning: don't forget to add `--recursive` option to `git clone` command!\nOtherwise, you will get `No such file or directory` errors while compiling.*\n\n### Alpine Linux\n\nIf you are an Alpine Linux user, you can install [`ictree`](https://pkgs.alpinelinux.org/packages?name=ictree) package (available in Alpine v3.17+ and in Edge).\n\n```sh\napk add ictree\n```\n\n### AUR\n\nIf you are an Arch Linux user, you can install [`ictree`](https://aur.archlinux.org/packages/ictree/) AUR package.\n\n```sh\nyay -S ictree\n```\n\n## Usage\n\nBasic usage:\n\n```sh\nlocate something | ictree\nfind | ictree\n```\n\nictree can also read from a file:\n\n```sh\nictree list.txt\n```\n\nOnce you invoke the command, the UI should pop up.\nYou can toggle folding of directories by hitting \u003ckbd\u003eEnter\u003c/kbd\u003e.\nYou can move around with arrow keys but if you know the Vi commands, they are supported too!\n\nYou can press \u003ckbd\u003ey\u003c/kbd\u003e to copy a selected item into X or Wayland clipboard.\nNote that you must have `xsel` or `wl-copy` installed (depending on whether you use X or Wayland) to use the command.\n\nYou also can press \u003ckbd\u003eo\u003c/kbd\u003e to write a path to standard output and exit program.\nIt may be useful in a system without a display server.\n\nYou can define custom commands in a configuration file to open selected path in another program (e.g. an image viewer or a text editor):\n\n```\n# open file in $EDITOR\nmap e $EDITOR \"$f\"\n```\n\nPlease read the manual (`man ictree`) for more details on existing commands and options:\nhttps://nikitaivanovv.github.io/ictree\n\n## License\n\nThis project is licensed under [GPLv3](https://www.gnu.org/licenses/).\nPlease refer to the [LICENSE](LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNikitaIvanovV%2Fictree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNikitaIvanovV%2Fictree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNikitaIvanovV%2Fictree/lists"}