{"id":49541130,"url":"https://github.com/y0sif/ferlay","last_synced_at":"2026-05-02T15:07:17.402Z","repository":{"id":347688347,"uuid":"1188431058","full_name":"y0sif/ferlay","owner":"y0sif","description":"Start and manage Claude Code sessions from your phone.","archived":false,"fork":false,"pushed_at":"2026-03-29T02:40:36.000Z","size":6652,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-29T04:30:18.994Z","etag":null,"topics":["ai-agent","claude-code","cli","developer-tools","flutter","mobile","remote-control","rust","session-management","websocket"],"latest_commit_sha":null,"homepage":"https://ferlay.dev","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/y0sif.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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":"2026-03-22T04:06:05.000Z","updated_at":"2026-03-29T02:40:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/y0sif/ferlay","commit_stats":null,"previous_names":["y0sif/ferlay"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/y0sif/ferlay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/y0sif%2Fferlay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/y0sif%2Fferlay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/y0sif%2Fferlay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/y0sif%2Fferlay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/y0sif","download_url":"https://codeload.github.com/y0sif/ferlay/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/y0sif%2Fferlay/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32538322,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T12:25:33.646Z","status":"ssl_error","status_checked_at":"2026-05-02T12:24:51.733Z","response_time":132,"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":["ai-agent","claude-code","cli","developer-tools","flutter","mobile","remote-control","rust","session-management","websocket"],"created_at":"2026-05-02T15:07:16.717Z","updated_at":"2026-05-02T15:07:17.395Z","avatar_url":"https://github.com/y0sif.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/ferlay_banner.png\" alt=\"Ferlay - Remote control for Claude Code\" width=\"600\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/y0sif/ferlay/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/y0sif/ferlay?label=release\" alt=\"Release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/y0sif/ferlay/actions\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/y0sif/ferlay/release.yml?label=CI\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n**Start, manage, and approve Claude Code sessions from your phone.** Spin up coding sessions, approve tool-use prompts, and monitor progress - all from anywhere.\n\nOne command to install, pair, and go.\n\n## Install\n\n### Linux / macOS\n\n```sh\ncurl -sSL https://ferlay.dev/install.sh | sh\n```\n\n### Windows\n\n```powershell\nirm https://ferlay.dev/install.ps1 | iex\n```\n\nThe installer downloads the daemon, then runs `ferlay setup` which walks you through:\n1. **Relay configuration** - uses the hosted relay by default, or enter your own URL\n2. **Pairing** - displays a QR code, scan it with the Ferlay app\n3. **Background service** - installs and starts the daemon (systemd on Linux, launchd on macOS, Task Scheduler on Windows)\n\nAfter setup, the daemon runs in the background and starts automatically on login. That's it.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eOther install methods (AUR, Homebrew, from source)\u003c/b\u003e\u003c/summary\u003e\n\n### Arch Linux (AUR)\n\n```sh\nyay -S ferlay-bin\n```\n\n### Homebrew (macOS)\n\n```sh\nbrew install y0sif/tap/ferlay\n```\n\n### From source\n\n```sh\ncargo install --path daemon\nferlay setup\n```\n\n\u003c/details\u003e\n\n## Get the App\n\n| Platform | Link |\n|----------|------|\n| Android (APK) | [Latest release](https://github.com/y0sif/ferlay/releases/latest) |\n| iOS      | Coming soon |\n\n\u003e **Google Play**: Ferlay is currently in internal testing on the Play Store. To help get it published, we need testers to opt in. If you'd like to help, send your Gmail address to [y0sif](https://github.com/y0sif) (open an issue or DM) and you'll receive an invite link to join the test.\n\n---\n\n## How It Works\n\n```\nPhone App  \u003c--\u003e  Relay Server  \u003c--\u003e  Daemon  \u003c--\u003e  Claude Code\n                 (relay.ferlay.dev)  (your machine)\n```\n\n1. **Daemon** runs on your computer, manages Claude Code sessions\n2. **Relay** routes encrypted messages between your phone and daemon\n3. **App** on your phone - scan QR to pair, tap to start sessions\n\nAll communication is **end-to-end encrypted** (X25519 + AES-256-GCM). The relay only forwards opaque ciphertext.\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eSelf-hosted relay\u003c/b\u003e\u003c/summary\u003e\n\nRun your own relay for full infrastructure control. No database, no external dependencies.\n\n```sh\n# Docker\ndocker run -d -p 8080:8080 ghcr.io/y0sif/ferlay-relay:latest\n\n# Or from source\ncargo run -p ferlay-relay\n```\n\nPoint your daemon at it:\n\n```sh\nferlay config set relay-url wss://your-relay.example.com/ws\n```\n\nFor production TLS, the `deploy/` directory has ready-made configs for Cloudflare Tunnel, Caddy (auto-TLS), and nginx.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eLocal mode\u003c/b\u003e\u003c/summary\u003e\n\nFor development or same-network use. Runs a local relay and daemon together, no external server.\n\n```sh\nferlay daemon --local\n```\n\nOr use the dev script:\n\n```sh\n./scripts/ferlay-local.sh        # Linux/macOS\n./scripts/ferlay-local.ps1       # Windows\n```\n\n\u003c/details\u003e\n\n---\n\n## CLI Reference\n\n```\nferlay setup                                           Interactive setup (relay, pairing, auto-start)\nferlay daemon [--local] [--relay \u003cURL\u003e] [--re-pair]    Start the daemon in foreground\nferlay pair                                            Re-pair with a new phone\nferlay status                                          Check daemon health\nferlay config show                                     Show current configuration\nferlay config set relay-url \u003cURL\u003e                      Change relay server\nferlay config reset                                    Reset to defaults\n```\n\n---\n\n## Project Structure\n\n```\nferlay/\n├── daemon/       Rust CLI daemon - manages Claude Code sessions\n├── relay/        Rust WebSocket relay server\n├── app/          Flutter mobile app (Android, iOS)\n├── shared/       Shared message types and protocol definitions\n├── scripts/      Install scripts (Linux, macOS, Windows)\n└── deploy/       Service files and deployment configs\n```\n\n---\n\n## Development\n\n```sh\ncargo build                                             # Build all crates\ncargo test                                              # Run tests\ncargo clippy --all-targets -- -D warnings               # Lint\nRUST_LOG=ferlay_relay=debug cargo run -p ferlay-relay    # Run relay locally\n./scripts/ferlay-local.sh                               # Run daemon + local relay\n```\n\n```sh\ncd app \u0026\u0026 flutter pub get \u0026\u0026 flutter run                # Run the Flutter app\n```\n\n---\n\n## Contributing\n\nThe biggest ways to help right now:\n\n1. **Test the daemon** on your OS - Linux distros, macOS versions, Windows. Report what works and what doesn't.\n2. **Test the app** - pairing flow, session management, connection stability.\n3. **Bug reports** - if pairing fails, sessions don't start, or connections drop, open an issue.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.\n\n---\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fy0sif%2Fferlay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fy0sif%2Fferlay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fy0sif%2Fferlay/lists"}