{"id":26714218,"url":"https://github.com/nesimtunc/copycrafter","last_synced_at":"2026-04-20T10:03:18.916Z","repository":{"id":284350185,"uuid":"954639440","full_name":"nesimtunc/copycrafter","owner":"nesimtunc","description":"Cross-platform desktop app to select and copy multiple file contents (without boilerplate) — built with Flutter \u0026 Cursor. Perfect for LLM prompts.","archived":false,"fork":false,"pushed_at":"2025-12-24T08:34:03.000Z","size":1635,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-25T22:09:57.899Z","etag":null,"topics":["ai","ai-workflows","clipboard","cursor","cursor-generated","developer-tools","flutter","flutter-desktop","llm-tools","macos","productivity","productivity-tools","vibe-coding","windows"],"latest_commit_sha":null,"homepage":"","language":"Dart","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/nesimtunc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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-25T11:47:53.000Z","updated_at":"2025-12-24T08:34:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"97eb600b-bdfb-48f6-9466-d752c5c0337d","html_url":"https://github.com/nesimtunc/copycrafter","commit_stats":null,"previous_names":["nesimtunc/copycrafter"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/nesimtunc/copycrafter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesimtunc%2Fcopycrafter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesimtunc%2Fcopycrafter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesimtunc%2Fcopycrafter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesimtunc%2Fcopycrafter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nesimtunc","download_url":"https://codeload.github.com/nesimtunc/copycrafter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesimtunc%2Fcopycrafter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32042294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"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","ai-workflows","clipboard","cursor","cursor-generated","developer-tools","flutter","flutter-desktop","llm-tools","macos","productivity","productivity-tools","vibe-coding","windows"],"created_at":"2025-03-27T13:18:45.021Z","updated_at":"2026-04-20T10:03:18.903Z","avatar_url":"https://github.com/nesimtunc.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CopyCrafter\n\nA desktop application for macOS and Windows that helps browse folders and copy file contents to the clipboard, designed specifically for feeding code into LLMs without manual file-by-file copying.\n\n![CopyCrafter Screenshot](screenshot.png)\n\n## Features\n\n- **Folder Selection**: Pick a folder to browse its contents\n- **Tree View**: View all files and subfolders in a hierarchical tree structure\n- **File \u0026 Folder Selection**: Select multiple files and folders using checkboxes\n- **Clipboard Copy**: Copy the contents of all selected files and folders to clipboard\n- **Save to File**: Export selected file contents to a text or markdown file\n- **Token Count Estimation**: Real-time display of estimated token count for selected files (useful for LLM context limits)\n- **Special File Handling**: Skip the first X lines from certain file types (e.g., copyright headers in .swift, .m, and .h files)\n- **Smart Binary File Filtering**: Automatically excludes binary files (images, videos, audio, archives, executables, etc.)\n- **Build Folder Exclusion**: Skips common build and dependency folders (build, node_modules, Pods, .gradle, bin, obj, etc.)\n- **Search Functionality**: Quickly find files by name within your project with real-time filtering\n- **Multi-Project Support**: Automatically detects and provides structured views for various project types:\n  - **Xcode Projects**: View files in the same hierarchical structure as in Xcode\n  - **.NET Projects**: Parse .csproj, .vbproj, and .sln files\n  - **Android Projects**: Organize Android project files in a logical structure\n  - **Flutter Projects**: Display Flutter project components in an organized way\n- **Progress Tracking**: Visual progress dialog when selecting large folders with file-by-file status updates\n- **Privacy-Focused**: Completely offline with no analytics or tracking\n\n## Privacy\n\nCopyCrafter is built with privacy as a core principle:\n\n- **No Analytics**: The app does not include any analytics or tracking code\n- **No Network Calls**: CopyCrafter operates completely offline and never makes any network requests\n- **Fully Open Source**: All code is open source and can be audited for privacy\n- **Local-Only Processing**: All operations are performed locally on your device\n\nYour code and file information never leaves your computer unless you explicitly copy and paste it elsewhere.\n\n## Getting Started\n\n### Prerequisites\n\n- Flutter SDK installed and configured for macOS desktop development\n- Xcode (for macOS builds)\n- Python 3 (for parsing project files)\n\n### Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/nesimtunc/copycrafter.git\ncd copycrafter\n```\n\n2. Install dependencies:\n```bash\nflutter pub get\n```\n\n3. Make the parsing scripts executable:\n```bash\nchmod +x scripts/parse_pbxproj.py\nchmod +x scripts/parse_csproj.py\n```\n\n4. Run the app:\n```bash\nflutter run -d macos\n```\n\n### Building from Source\n\nTo build the application for your platform:\n\n#### macOS\n```bash\nflutter build macos --release\n```\nThe built app will be located at `build/macos/Build/Products/Release/CopyCrafter.app`\n\n#### Windows\n```bash\nflutter build windows --release\n```\nThe built app will be located at `build\\windows\\runner\\Release\\CopyCrafter.exe`\n\n### Using the Build Script\n\nYou can use the included build script to build for all supported platforms:\n```bash\n./scripts/build_all.sh\n```\nThis will create platform-specific installers in the `releases` directory.\n\n### Downloading Releases\n\nPre-built releases are available on the [GitHub Releases page](https://github.com/nesimtunc/copycrafter/releases).\n\n## Usage\n\n1. Open the app and click \"Choose Folder\" to select a directory\n2. If a supported project is detected, the app will automatically identify it and show its structure\n   - Toggle between \"Project Structure\" view and \"File System\" view using the segmented button\n3. Use the checkboxes to select files or folders you want to copy:\n   - Click on a file's checkbox to select individual files\n   - Click on a folder's checkbox to select the entire folder and all its contents (with progress tracking)\n   - Long-press on a folder or use the folder checkbox to select/deselect folders\n4. The app displays the estimated token count for your selection in real-time\n5. Use the search box to quickly filter and find specific files or folders\n6. Configure how many lines to skip for Swift/Objective-C files (default: 7)\n7. Choose your preferred action:\n   - Click \"Copy to Clipboard\" to copy the contents of all selected files\n   - Click \"Save to File\" to export the contents to a .txt or .md file\n8. Paste or use the exported contents wherever needed\n\n## How It Works\n\n### Project Detection\nThe app analyzes the selected directory and automatically identifies various project types:\n\n1. **Xcode Projects**: Detects .xcodeproj directories and parses project.pbxproj files\n2. **.NET Projects**: Finds .csproj, .vbproj, or .sln files and parses their structure\n3. **Android Projects**: Identifies build.gradle files and AndroidManifest.xml\n4. **Flutter Projects**: Recognizes pubspec.yaml with Flutter dependencies\n\n### Smart File Processing\nWhen folders are selected, the app:\n1. Automatically excludes common build and dependency folders (build, node_modules, Pods, .gradle, bin, obj, DerivedData, etc.)\n2. Filters out binary files (images, videos, audio, archives, executables, databases, fonts, etc.)\n3. Recursively finds all text files within the selected folders\n4. Shows a progress dialog with real-time status updates for large folder operations\n5. Calculates token counts for each selected file\n6. Processes each file according to its type (applying line skipping where needed)\n7. Combines all content with file headers for organization\n\n## Customization\n\n- **Line Skipping**: The number of lines to skip for Swift (.swift) and Objective-C (.m, .h) files can be adjusted using the input field in the UI (useful for removing copyright headers)\n- **Output Format**: Choose between copying to clipboard or saving to a .txt or .md file\n- **View Modes**: Switch between Project Structure (organized by project type) and File System (raw directory structure) views\n- **Token Estimation**: Built-in token counter uses a simple heuristic (approximately 4 characters per token) to estimate content size for LLM context limits\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## About the Development\n\nCopyCrafter was developed entirely using [Cursor](https://cursor.sh), a powerful AI-first code editor. The entire codebase was created through AI-assisted development with zero manual coding, demonstrating the power of modern AI pair programming.\n\n## Contributing\n\nContributions are welcome! Feel free to submit issues or pull requests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnesimtunc%2Fcopycrafter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnesimtunc%2Fcopycrafter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnesimtunc%2Fcopycrafter/lists"}