{"id":19816928,"url":"https://github.com/flyingfathead/catgit","last_synced_at":"2026-02-10T13:31:40.360Z","repository":{"id":236126715,"uuid":"791924297","full_name":"FlyingFathead/catgit","owner":"FlyingFathead","description":"Python tool to dump out a git project \u0026 its structure in a `cat`-esque way (to i.e. a LLM)","archived":false,"fork":false,"pushed_at":"2024-12-13T07:45:09.000Z","size":70,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-11T07:56:13.836Z","etag":null,"topics":["automation","cat","cli","code-management","developer-tools","git","git-tools","open-source","productivity-tools","python","python3","version-control"],"latest_commit_sha":null,"homepage":"https://github.com/FlyingFathead/catgit","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FlyingFathead.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-04-25T16:25:14.000Z","updated_at":"2025-01-05T16:52:05.000Z","dependencies_parsed_at":"2024-04-25T19:29:54.203Z","dependency_job_id":"abaa705a-e835-420e-a715-e292a2f95ca9","html_url":"https://github.com/FlyingFathead/catgit","commit_stats":null,"previous_names":["flyingfathead/catgit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/FlyingFathead/catgit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlyingFathead%2Fcatgit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlyingFathead%2Fcatgit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlyingFathead%2Fcatgit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlyingFathead%2Fcatgit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FlyingFathead","download_url":"https://codeload.github.com/FlyingFathead/catgit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlyingFathead%2Fcatgit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29300561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T12:55:56.056Z","status":"ssl_error","status_checked_at":"2026-02-10T12:55:55.692Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["automation","cat","cli","code-management","developer-tools","git","git-tools","open-source","productivity-tools","python","python3","version-control"],"created_at":"2024-11-12T10:11:05.820Z","updated_at":"2026-02-10T13:31:40.335Z","avatar_url":"https://github.com/FlyingFathead.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# catgit\n\n**_`catgit` is a Python-based cli tool to dump out an entire directory structure or a git project in a `cat`-esque way or to pass it along into a text editor into a single output or text file_**\n\n## About `catgit`\n\nThis tool is designed to streamline the process of reviewing project contents, making it a neat little utility for developers who manage large or complex Git repositories and/or use LLM-based AI assistants to sort through their codebases.\n\n`catgit` is intended to display the contents of a git project (or any directory tree for that matter) in a consolidated, readable format directly in your terminal or through a specified text editor. It provides a quick overview of the project's structure, including ignored files based on your `.gitignore` settings, and can output all readable files sequentially.\n\n`catgit` supports direct dumps of an entire project's contents straight into your favorite text editor, i.e. to be passed along to a LLM assistant or such with the `--editor` flag. It can also be used to get the structural view of regular directories and their file contents, even if they're not Git repositories.\n\n`catgit` has its own `.catgitignore` ignore lists and `.catgitinclude` include lists, both work the same way as `.gitignore` does. You can use `.catgitignore` to ignore files that you don't want to be included in your project directory tree dump, or `.catgitinclude` (with the `--includedonly` command line flag) to only include the files listed in the include file.\n\n## Features\n\n- **`.catgitignore`** and **`.catgitinclude`**:\n    - `.catgitignore`: read and respect files to skip over additional files or directories specific to `catgit` outputs. Works the same way as `.gitignore` does.\n    - `.catgitinclude`: when `--includedonly` command line flag is in use, only the files listed in the include file will be included in the printout.\n- **Project Overview**: Outputs the complete directory and file structure of your Git project.\n- **Gitignore Respect**: Respects `.gitignore` files to skip over ignored files or directories.\n- **Flexible Output**: Supports output directly to the terminal or opens in a specified text editor like nano or gedit.\n- **Configurable**: Options to toggle the inclusion of the tree view in the output, and choose between terminal output and editor output through configuration.\n\n## Installation\n\nYou can install `catgit` directly from the source code:\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/FlyingFathead/catgit.git\n```\n2. Navigate to the cloned directory:\n```bash\ncd catgit\n```\n3. Install the package:\n```bash\npip install .\n```\n\n### Using without install\n\nAlternatively, if you only want to try out `catgit`, navigate to the `catgit/` subdirectory and run it with:\n```bash\npython catgit.py /path/to/your/project/\n```\n\n## Configuration\n\nFor quick setup after installation, just use:\n```bash\ncatgit --setup\n```\n\n`catgit` uses a configuration file (`config.ini`) which allows the user to set preferences such as:\n\n- `output_method`: Choose between `terminal` and `editor` to display the project output.\n- `editor_command`: Specify which editor to use when opening the output (e.g., `vim`, `nano`, `gedit`).\n- `ignore_gitignored`: Toggle whether to ignore files as specified in `.gitignore`.\n- `include_tree_view_in_file`: Decide whether to include the directory tree structure in the concatenated file output.\n- `treat_non_git_as_error`: Decide whether to quit if the directory structure is not recognized as a Git repository.\n- `.catgitinclude` and `.catgitignore` files to ignore files or only list included (works akin to `.gitignore`)\n\nPlease see the `config.ini` for more configuration options.\n\n## Usage\n\nTo use `catgit`, navigate to the root directory of the project and run:\n```bash\ncatgit /path/to/your/project/\n```\n\nYou can also pass the output directly to your editor with the flag `--editor` (since v`0.10.4`):\n```bash\ncatgit /path/to/your/project/ --editor\n```\n\nOr, `cd` to your project directory and simply run:\n```bash\ncatgit . --editor\n```\n\nYou will be prompted for an editor if a default isn't found. You can use i.e. `vim`, `nano` etc on Linux, `notepad` on Windows, etc.\n\n## Help\n\nAfter having been installed, help for using `catgit` is available by typing:\n\n```bash\ncatgit --help\n```\n\n## Changes\n- `0.11.4` - support added for configurable extra delimiters (i.e. markdown triple-backticks; enabled by default)\n    - see `config.ini` for more\n    - added autoconfig to default editor when i.e. listing `catgit . --editor` and no suitable editor is set.\n    - fixed `.gitignore` and `.catgitignore` rules and how they apply.\n- `0.11.3` - fixes to ignore/include file reading and traversal rules\n- `0.11.2` - added the `.catgitinclude` feature\n    - this allows to only print out selected files from the project, as listed in the include file\n    - the logic is similar to `.gitignore` (or `.catgitignore`), except it's files to _include_, not to _exclude_\n    - can be utilized with `--includeonly` cmdline flag\n- `0.11.1` - subprocess optimization (speeds up `catgit` on larger projects)\n- `0.11.0` - added `.catgitignore` functionality to ignore files\n    - works the same way as `.gitignore`, is useful for selective project outputs\n    - also added `debug_mode` (true/false) flag into `config.ini` for verbose mode\n- `0.10.8` - output clarification to minimize LLM confusion and `--version`\n- `0.10.7` - added `ThreadPoolExecutor` for faster performance; file sizes; line counting\n- `0.10.6` - added the `treat_non_git_as_error` (true/false) config option\n- `0.10.5` - git checks made robust and verbose\n- `0.10.4` - added `--editor` flag for sending straight to text editor, checks for editor and asks the user if not found\n- `0.10.3` - improved error catching, absolute paths\n- `0.10.2` - switched to using `tempfile` for better cross-platform compatibility\n- `0.10.1` - added the `--setup` flag for quick setup in cli\n- `0.10` - initial public release w/ installer\n\n## Credits\n\n`catgit` was developed by [FlyingFathead](https://github.com/FlyingFathead) with digital ghost code contributions from ChaosWhisperer. \n\n## License\n\n`catgit` is open-source software licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflyingfathead%2Fcatgit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflyingfathead%2Fcatgit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflyingfathead%2Fcatgit/lists"}