{"id":44190184,"url":"https://github.com/atrtde/feedyourai","last_synced_at":"2026-02-18T04:01:26.944Z","repository":{"id":285223981,"uuid":"957438492","full_name":"atrtde/feedyourai","owner":"atrtde","description":"A tool to combine text files for AI processing with filtering options.","archived":false,"fork":false,"pushed_at":"2026-02-09T15:34:41.000Z","size":11847,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-09T19:40:08.226Z","etag":null,"topics":["ai","llm","tool","tooling"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/feedyourai","language":"Rust","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/atrtde.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-30T11:29:25.000Z","updated_at":"2026-02-09T15:34:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"2fc56954-9ebf-4eef-87e5-c24990a45772","html_url":"https://github.com/atrtde/feedyourai","commit_stats":null,"previous_names":["alexandretrotel/feedyourai","atrtde/feedyourai"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/atrtde/feedyourai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atrtde%2Ffeedyourai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atrtde%2Ffeedyourai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atrtde%2Ffeedyourai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atrtde%2Ffeedyourai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atrtde","download_url":"https://codeload.github.com/atrtde/feedyourai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atrtde%2Ffeedyourai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29567616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T00:47:08.760Z","status":"online","status_checked_at":"2026-02-18T02:00:09.468Z","response_time":162,"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":["ai","llm","tool","tooling"],"created_at":"2026-02-09T17:03:13.470Z","updated_at":"2026-02-18T04:01:26.937Z","avatar_url":"https://github.com/atrtde.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fyai\n\nA command-line tool to combine files from a directory into a single file for AI processing, with flexible filtering options.\n\n![Demo: fyai combining files in a terminal](./assets/fyai.gif)\n\n## Features\n\n- Combines multiple text files into one output file\n- Can process a remote git repository in a temporary directory\n- Supports configuration via CLI options and config files (YAML)\n- Filters files by:\n  - Size\n  - File extensions (e.g., `.txt`, `.md`)\n  - Directory inclusion/exclusion\n  - File inclusion/exclusion\n  - Optionally respects `.gitignore` rules (can be disabled)\n- Preserves file boundaries with headers showing filename and size\n- Customizable input directory and output file\n\n## Installation\n\n### Install via Cargo\n\n```bash\ncargo install feedyourai\n```\n\nOr,\n\n```bash\ncargo install --git https://github.com/atrtde/feedyourai.git\n```\n\nThis installs the `fyai` binary to `~/.cargo/bin/`. Ensure this directory is in your `PATH`.\n\n## Usage\n\nRun `fyai` in your terminal to combine files:\n\n### Config File Support\n\nYou can specify options in a config file (YAML format):\n\n- **Local config:** `./fyai.yaml` (used if present in current directory)\n- **Global config:** System config directory (platform-specific), used if no local config found\n- **Precedence:** Local config overrides global config. CLI options override both config files.\n\nTo see the exact global config path on your system, run:\n\n```bash\nfyai init --global\n```\n\n#### Example `fyai.yaml`\n\n```yaml\ndirectory: ./src\noutput: combined.txt\ninclude_ext:\n  - md\n  - txt\nexclude_dirs:\n  - node_modules\n  - dist\nmin_size: 10240\nmax_size: 512000\nrespect_gitignore: true\ntree_only: false\n```\n\nAll CLI options can be set in the config file. CLI flags always take precedence.\n\n### Basic Usage\n\n```bash\nfyai\nfyai --help # show help\n```\n\n- Combines all files from the current directory into `fyai.txt`\n\n### Examples\n\n- Combine only `.txt` and `.md` files from a specific directory:\n\n  ```bash\n  fyai -i ./docs --include-ext txt,md\n  ```\n\n- Exclude all `.log` and `.tmp` files from the output:\n\n  ```bash\n  fyai --exclude-ext log,tmp\n  ```\n\n- Include only files named `README.md` and `main.rs` from the `src` and `docs` directories:\n\n  ```bash\n  fyai --include-dirs src,docs --include-files README.md,main.rs\n  ```\n\n- Exclude all files named `LICENSE` and `config.json` from any directory:\n\n  ```bash\n  fyai --exclude-files LICENSE,config.json\n  ```\n\n- Include all files (no size minimum) up to 1MB:\n\n  ```bash\n  fyai -n 0 -m 1048576\n  ```\n\n- Custom output file with files between 10KB and 500KB, excluding `dist` and `node_modules` directories:\n\n  ```bash\n  fyai -n 10240 -m 512000 -o ai_input.txt -x dist,node_modules\n  ```\n\n- Output only the project directory structure (no file contents):\n\n  ```bash\n  fyai --tree-only -o tree.txt\n  ```\n\n- Ignore .gitignore rules and include all files (even those normally excluded):\n  ```bash\n  fyai --respect-gitignore false\n  ```\n\n- Run against a remote GitHub/GitLab repository without leaving the clone on disk:\n\n  ```bash\n  fyai --repo https://github.com/owner/repo.git --repo-branch main\n  ```\n\n- Run against a specific commit:\n\n  ```bash\n  fyai --repo https://github.com/owner/repo.git --repo-commit 1234abcd\n  ```\n\n- Generate a config template:\n\n  ```bash\n  fyai init\n  ```\n\n## Output Format\n\nThe combined file includes headers for each source file:\n\n```\n- File: example.txt (12345 bytes)\n[contents of example.txt]\n\n- File: notes.md (67890 bytes)\n[contents of notes.md]\n```\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Submit a pull request\n\n## License\n\nMIT. See [LICENSE](LICENSE) for more details.\n\n## Changelog\n\nSee `CHANGELOG.md` for release notes.\n\n## Acknowledgments\n\n- Built with [Rust](https://www.rust-lang.org/)\n- Uses [clap](https://crates.io/crates/clap) for command-line parsing\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatrtde%2Ffeedyourai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatrtde%2Ffeedyourai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatrtde%2Ffeedyourai/lists"}