{"id":49410439,"url":"https://github.com/SergKam/FlyCrys","last_synced_at":"2026-06-01T01:00:50.086Z","repository":{"id":345414640,"uuid":"1185774256","full_name":"SergKam/FlyCrys","owner":"SergKam","description":"Native Linux GUI for Claude Code agents. Rust + GTK4. Fast, light, no Electron.","archived":false,"fork":false,"pushed_at":"2026-04-01T19:13:45.000Z","size":5346,"stargazers_count":20,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-01T21:46:18.004Z","etag":null,"topics":["ai-coding","claude-code","developer-tools","gnome","gtk4","gui","linux","rust","terminal"],"latest_commit_sha":null,"homepage":null,"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/SergKam.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-18T23:42:14.000Z","updated_at":"2026-04-01T19:13:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/SergKam/FlyCrys","commit_stats":null,"previous_names":["sergkam/flycrys"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/SergKam/FlyCrys","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SergKam%2FFlyCrys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SergKam%2FFlyCrys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SergKam%2FFlyCrys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SergKam%2FFlyCrys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SergKam","download_url":"https://codeload.github.com/SergKam/FlyCrys/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SergKam%2FFlyCrys/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33755369,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"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-coding","claude-code","developer-tools","gnome","gtk4","gui","linux","rust","terminal"],"created_at":"2026-04-29T00:00:51.652Z","updated_at":"2026-06-01T01:00:50.077Z","avatar_url":"https://github.com/SergKam.png","language":"Rust","funding_links":[],"categories":["Development"],"sub_categories":["Development Tools"],"readme":"# FlyCrys\n\n**Native Linux GUI for Claude Code agents.** One binary, starts in under a second, no Electron.\n\n[![GitHub stars](https://img.shields.io/github/stars/SergKam/FlyCrys?style=flat)](https://github.com/SergKam/FlyCrys/stargazers)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Latest release](https://img.shields.io/github/v/release/SergKam/FlyCrys)](https://github.com/SergKam/FlyCrys/releases/latest)\n\n![FlyCrys workspace](docs/screenshot-workspace.png)\n\n## Why this exists\n\nI've used Linux exclusively for 30 years. When Claude Code became my daily driver for writing software, the terminal worked but I kept hitting walls: can't preview images, can't see a file tree while the agent works, can't render markdown without switching to a browser, can't juggle multiple project streams without a mess of terminal tabs.\n\nI didn't want Cursor or anything Electron-based. I wanted something native that feels like it belongs on a GTK desktop.\n\nFlyCrys is not an IDE. It doesn't edit files. Agents do. You talk to agents, they write the code. FlyCrys gives you a workspace to manage that workflow: file tree on the left, viewer in the middle, agent chat on the right, terminal at the bottom. That's it.\n\n### What makes it different\n\n- **Only native Linux GUI for Claude Code** — Opcode uses webview, Claude Desktop skips Linux entirely\n- **GTK4 native** — follows system theme, integrates with GNOME, minimal resources\n- **Workspace-oriented** — not just a chat wrapper; file tree, viewer, terminal, git panel, all wired together\n- **Agent profiles** — preconfigured Security, Research, Default agents with custom system prompts and tool restrictions\n- **Zero cost** — no subscription, no API proxy, uses your own Claude Code CLI\n- **Single binary** — one `cargo build`, one `.deb`, done\n\n## Install\n\n### Debian / Ubuntu (recommended)\n\n```bash\ncurl -fsSLo /tmp/flycrys.deb https://github.com/SergKam/FlyCrys/releases/latest/download/flycrys_amd64.deb\nsudo apt install /tmp/flycrys.deb\n```\n\nTo upgrade, run the same two commands. The URL always points to the latest release.\n\n### Build from source\n\n```bash\n# Ubuntu / Debian\nsudo apt install libgtk-4-dev libvte-2.91-gtk4-dev libwebkitgtk-6.0-dev libjavascriptcoregtk-6.0-dev libsoup-3.0-dev\n\n# Fedora\nsudo dnf install gtk4-devel vte291-gtk4-devel webkitgtk6.0-devel\n\n# Arch\nsudo pacman -S gtk4 vte4 webkitgtk-6.0\n\ngit clone https://github.com/SergKam/FlyCrys.git\ncd FlyCrys\ncargo build --release\n./target/release/flycrys\n```\n\n### Prerequisites\n\nFlyCrys requires the [Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code):\n\n```bash\nnpm install -g @anthropic-ai/claude-code\n```\n\n## Features\n\n### Agent chat\n\n- Streaming markdown rendering (tables, code blocks, lists, blockquotes)\n- Tool calls shown inline with spinners\n- Pause, resume, stop agent processes\n- Session resume across restarts\n- Agent profiles with custom system prompts, tools, and model selection\n- Image attachments via clipboard paste or file picker\n- Drag files and folders into the prompt\n- Bookmarks for reusable prompts\n- Clickable file paths in responses open in the viewer\n- Token usage and session cost in the status bar\n\n### Slash commands\n\nType `/` in the input to see all available commands with descriptions. Filters as you type.\n\nDiscovers commands from `~/.claude/commands/`, `~/.claude/skills/`, project `.claude/`, and installed plugins. Full CRUD dialog for managing skills and commands.\n\n![Skills manager](docs/screenshot-skills.png)\n\n### File tree\n\n- Lazy-loading tree with system MIME-type icons\n- Toolbar: Collapse All, Search (filters across entire project)\n- Live refresh via inotify watcher (preserves expand state)\n- Right-click: Copy Path, Add to Chat, Open Terminal Here, Open in Default App\n- Drag files onto agent input\n- Git status coloring in the file tree (files and ancestor folders)\n- Git status panel with color-coded changes\n\n### Text viewer\n\n- Three-state mode: Source / Preview / Diff (segmented toggle)\n- Syntax highlighting for 25+ languages\n- Markdown preview in WebKitGTK\n- Image preview with scaling\n- Git diff with highlighting\n\n### Run Panel\n\n- Tabbed terminal panel — multiple shell tabs per workspace\n- [+] button creates new `bash(N)` tabs; drag-reorder supported\n- Right-click tab header: Rename, Copy All Text, Add Selected to Chat, Close\n- Background task tracking — auto-creates task tabs when Claude runs `run_in_background` commands\n- Task tabs show command, separator, then streamed output from the task file\n- Task status indicators: ⏳ running, ✓ completed, ✗ failed (via Claude's `task_notification` events)\n- Lazy tab loading — VTE terminals only created on first focus\n- Scrollback preserved across sessions per tab\n- Colors adapt to light/dark mode\n\n### Workspace\n\n- Multi-tab workspaces, one per project\n- Session persistence: window size, pane positions, open files, agent sessions\n- Lazy tab loading: only the active tab builds at startup\n- Light/dark theme toggle\n- Desktop notifications when agents finish\n- Git branch in status bar (updates via inotify, not polling)\n\n## Tech stack\n\n| Crate | Purpose |\n|-------|---------|\n| `gtk4` 0.10 | UI toolkit |\n| `webkit6` 0.5 | Chat rendering, markdown preview |\n| `vte4` 0.9 | Embedded terminal |\n| `syntect` 5 | Syntax highlighting |\n| `pulldown-cmark` 0.12 | Markdown to HTML |\n| `notify` 6 | Filesystem watcher (inotify) |\n| `serde` + `serde_json` | Config persistence, CLI protocol |\n\nSystem deps: GTK4, VTE4, WebKitGTK 6.0, libsoup 3.0\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSergKam%2FFlyCrys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSergKam%2FFlyCrys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSergKam%2FFlyCrys/lists"}