{"id":26065639,"url":"https://github.com/franklinkemta/codeindexer","last_synced_at":"2025-03-08T19:28:13.140Z","repository":{"id":281238343,"uuid":"944655673","full_name":"franklinkemta/codeindexer","owner":"franklinkemta","description":"A lightweight CLI tool for indexing codebases to provide context for LLMs.","archived":false,"fork":false,"pushed_at":"2025-03-07T19:28:21.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-07T19:28:45.273Z","etag":null,"topics":["chatgpt","claude","code","codebase","copilot","copy-paste","cursor","deepseek","gemini","groq","indexing","llama","llm","llms","open-source","productivity","prompt","prompt-engineering"],"latest_commit_sha":null,"homepage":"","language":"Python","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/franklinkemta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING","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":"2025-03-07T18:23:53.000Z","updated_at":"2025-03-07T19:28:24.000Z","dependencies_parsed_at":"2025-03-07T19:29:05.098Z","dependency_job_id":"d5197f7e-0f70-42f9-9808-9728c9fdb242","html_url":"https://github.com/franklinkemta/codeindexer","commit_stats":null,"previous_names":["franklinkemta/codeindexer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franklinkemta%2Fcodeindexer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franklinkemta%2Fcodeindexer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franklinkemta%2Fcodeindexer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franklinkemta%2Fcodeindexer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/franklinkemta","download_url":"https://codeload.github.com/franklinkemta/codeindexer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242454565,"owners_count":20130808,"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":["chatgpt","claude","code","codebase","copilot","copy-paste","cursor","deepseek","gemini","groq","indexing","llama","llm","llms","open-source","productivity","prompt","prompt-engineering"],"created_at":"2025-03-08T19:28:12.556Z","updated_at":"2025-03-08T19:28:13.131Z","avatar_url":"https://github.com/franklinkemta.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CodeIndexer\n\n[![PyPI version](https://badge.fury.io/py/codeindexer.svg)](https://badge.fury.io/py/codeindexer)\n\nA lightweight CLI tool for indexing codebases to provide context for LLMs.\n\n## Why ?\n\nStill doing some finger-hurting typing or copy-pasting just to update your LLM about code changes or set up context in new chats (the old way 😅, without copilots)?\n\nI run this tool to generate a structured prompt with my project files, so all I have to do is copy, paste, and the model is ready to go! ⌛⏱️✨\n\n## Installation ℹ️\n\n```bash\npip install codeindexer\n\n# Basic usage\ncodeindexer --index ./my_repo --format md index_file.md\n\n# Filter by file extensions (create a txt prompt file index_file.txt)\ncodeindexer --index ./my_repo --only .py,.js,.md --format txt index_file.txt\n\n# Skip specific directories or files (create a json prompt file index_file.json)\ncodeindexer --index ./my_repo --skip node_modules/,venv/,*.log --format json index_file.json\n\n# Explicitly include files/paths (even if ignored by .gitignore)\ncodeindexer --index ./my_repo --include important.log,temp/config.json --format md index_file.md\n\n# Add a custom prompt at the end\ncodeindexer --index ./my_repo --prompt \"Analyze and suggest improvements.\" --format md index_file.md\n\n# Disable .gitignore parsing\ncodeindexer --index ./my_repo --no-gitignore --format md index_file.md\n\n# Split the prompt into multiple parts e.g 1000 lines max (place prompt parts in the index_file/... folder)\ncodeindexer --index ./my_repo --format md index_file.md --split 1000\n````\n\nExample of indexed output file (index_file.md) 📋\n\n```tree\n# Repo: my_repo\n# Folder structure:\nmy_repo/\n├── src/\n│   ├── main.py\n│   ├── utils.py\n├── tests/\n│   ├── test_main.py\n├── README.md\n├── requirements.txt\n\n# Files  \n# my_repo/requirements.txt  \n{contents of my_repo/requirements.txt}  \n\n# my_repo/README.md  \n{contents of my_repo/README.md}  \n\n# my_repo/src/main.py  \n{contents of my_repo/src/main.py}  \n\n...  \n________________________________________\n\nAcknowledge the project's description and files, do no provide additional explanation, wait for instructions\n\n```\n\n## Options 🔧\n\n- `--index`: Directory to index (required)\n- `--only`: Comma-separated list of file extensions to include (e.g., .py,.js,.md)\n- `--skip`: Comma-separated list of patterns to skip (e.g., node_modules/,venv/,*.log)\n- `--include`: Comma-separated list of patterns to explicitly include even if in .gitignore\n- `--format`: Output format (md, txt, json) - default is md\n- `--prompt`: Custom prompt to add at the end of the index\n- `--no-skip-env`: Include .env files (by default they are skipped)\n- `--no-gitignore`: Disable automatic parsing of .gitignore files (enabled by default)\n- `--split`: Split output into chunks with specified max lines per file (default: 1000)\n\n\n## Features ✨\n- ✅ Generate a single file with your repo’s structure and files\n- ✅ Automatically respects .gitignore rules 📋\n- ✅ Filters files by extension and skips binaries 🔍\n- ✅ Multiple output formats: Markdown, text, JSON 📝\n- ✅ Add a custom prompt for LLM context 🤖\n- ✅ Split output files into small parts\n\n## Contributing 🤝\nContributions are welcome! Please check out our [Contributing Guide](CONTRIBUTING.md) for details on how to get started.\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranklinkemta%2Fcodeindexer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffranklinkemta%2Fcodeindexer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranklinkemta%2Fcodeindexer/lists"}