{"id":35770162,"url":"https://github.com/maumercado/unfold","last_synced_at":"2026-04-16T00:01:25.014Z","repository":{"id":329321389,"uuid":"1119103728","full_name":"maumercado/unfold","owner":"maumercado","description":"High-performance JSON viewer built in Rust with Iced GUI","archived":false,"fork":false,"pushed_at":"2026-03-25T23:46:24.000Z","size":770,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-26T21:54:30.997Z","etag":null,"topics":["desktop-application","gui","iced","json-viewer","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maumercado.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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-12-18T18:45:11.000Z","updated_at":"2026-03-25T23:46:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/maumercado/unfold","commit_stats":null,"previous_names":["maumercado/unfold"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/maumercado/unfold","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maumercado%2Funfold","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maumercado%2Funfold/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maumercado%2Funfold/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maumercado%2Funfold/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maumercado","download_url":"https://codeload.github.com/maumercado/unfold/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maumercado%2Funfold/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31865078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"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":["desktop-application","gui","iced","json-viewer","rust"],"created_at":"2026-01-07T03:18:03.061Z","updated_at":"2026-04-16T00:01:24.877Z","avatar_url":"https://github.com/maumercado.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unfold\n\nA high-performance JSON viewer built in Rust with the Iced GUI framework.\n\n## Features\n\n- **Fast**: Virtual scrolling handles large JSON files smoothly\n- **Tree View**: Expand/collapse nodes with Dadroit-style alignment\n- **Syntax Highlighting**: Color-coded keys, strings, numbers, booleans, null\n- **Search**: Text and RegEx search with case-sensitivity toggle\n- **Copy Options**: Copy value, key, or JSON path with keyboard shortcuts or context menu\n- **Context Menu**: Right-click for copy options, export, and expand/collapse children\n- **Native Menu Bar**: Full macOS menu bar with all actions\n- **Dark/Light Theme**: Toggle between dark and light modes (Cmd+T)\n- **Keyboard Shortcuts**: Navigate efficiently without touching the mouse (Cmd+/ to see all)\n- **Check for Updates**: Stay up to date with the latest version\n- **Better Errors**: Parse errors show line numbers for easy debugging\n\n## Screenshot\n\n*(Coming soon)*\n\n## Installation\n\n### macOS\n\nDownload the latest `.dmg` from [Releases](https://github.com/maumercado/unfold/releases), open it, and drag Unfold to your Applications folder.\n\n### From Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/maumercado/unfold.git\ncd unfold\n\n# Build and run\ncargo run --release\n\n# Or create a macOS .app bundle\ncargo install cargo-bundle\ncargo bundle --release\n```\n\n### Requirements\n\n- Rust 1.75+ (2024 edition)\n- macOS, Windows, or Linux\n\n## Usage\n\n### Opening Files\n\n- Click \"Open File\" on the welcome screen, or\n- Press `Cmd+O` (macOS) / `Ctrl+O` (Windows/Linux)\n- Pass a file path as a command-line argument\n\n### Navigation\n\n- Click nodes to expand/collapse\n- Scroll to navigate large files\n- Use search to find specific values\n\n### Copy Options\n\nSelect a node and use keyboard shortcuts or right-click for copy options:\n\n- `Cmd+C` - Copy value\n- `Cmd+Shift+C` - Copy key name\n- `Cmd+Option+C` - Copy JSON path\n\n### Context Menu (Right-Click)\n\nRight-click any node for:\n- **Copy Key** - Copy the key name\n- **Copy Value** - Copy the value\n- **Copy Value As** - Copy as minified or formatted JSON\n- **Copy Path** - Copy the JSON path\n- **Export Value As** - Export to JSON file (minified or formatted)\n- **Expand/Collapse All Children** - Expand or collapse all nested nodes\n\n### Search\n\n1. Press `Cmd+F` to focus the search input\n2. Type your query\n3. Press `Enter` for next result, `Shift+Enter` for previous\n4. Toggle options:\n   - **Aa** - Case-sensitive search\n   - **.*** - RegEx search\n\n### Theme\n\n- Press `Cmd+T` (macOS) / `Ctrl+T` (Windows/Linux) to toggle dark/light mode\n- Or click the theme button in the toolbar\n\n### Keyboard Shortcuts\n\nPress `Cmd+/` to see all shortcuts in-app.\n\n| Shortcut | Action |\n|----------|--------|\n| `Cmd/Ctrl+O` | Open file |\n| `Cmd/Ctrl+N` | Open in new window |\n| `Cmd/Ctrl+F` | Focus search |\n| `Cmd/Ctrl+T` | Toggle theme |\n| `Cmd/Ctrl+/` | Show keyboard shortcuts |\n| `Cmd/Ctrl+C` | Copy selected value |\n| `Cmd/Ctrl+Shift+C` | Copy key name |\n| `Cmd/Ctrl+Option+C` | Copy JSON path |\n| `Enter` | Next search result |\n| `Shift+Enter` | Previous search result |\n| `Escape` | Clear search / close dialogs |\n\n## Development\n\n```bash\n# Run in development mode\ncargo run\n\n# Run with a specific file\ncargo run -- path/to/file.json\n\n# Run tests\ncargo test\n\n# Format code\ncargo fmt\n\n# Lint\ncargo clippy\n\n# Create macOS .app bundle\ncargo bundle --release\n```\n\n## Version History\n\n### v1.0.0 (Current)\n\n- Tree view with expand/collapse\n- Virtual scrolling for large files\n- Syntax highlighting\n- Text and RegEx search\n- Dark/light theme toggle\n- JSON path display in status bar on selection\n- Native macOS menu bar\n- Right-click context menu with submenus\n- Copy value, key, or path (keyboard shortcuts + context menu)\n- Copy/Export as minified or formatted JSON\n- Expand/collapse all children\n- Help overlay with keyboard shortcuts (Cmd+/)\n- Check for updates from GitHub\n- Open in external editor\n- Better error messages with line numbers\n- CLI argument support\n- Multi-window support\n\n### Future\n\n- [ ] Multiple file tabs\n- [ ] Structural diff / comparison\n- [ ] JSON-Lines support\n- [ ] JSON formatting (full file reformat/minify) - *partial: copy as formatted/minified already works*\n\n## Tech Stack\n\n- **Language**: Rust\n- **GUI**: [Iced](https://github.com/iced-rs/iced) 0.14\n- **Native Menus**: [muda](https://github.com/tauri-apps/muda) (from Tauri)\n- **JSON Parsing**: serde_json\n- **File Dialogs**: rfd\n- **HTTP Client**: reqwest (for update checks)\n- **Version Comparison**: semver\n\n## License\n\nMIT\n\n## Contributing\n\nContributions welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\nWe use [Conventional Commits](https://www.conventionalcommits.org/) for automatic versioning:\n\n```bash\nfeat: add new feature      # Minor version bump\nfix: fix a bug             # Patch version bump\nfeat!: breaking change     # Major version bump\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaumercado%2Funfold","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaumercado%2Funfold","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaumercado%2Funfold/lists"}