{"id":50955591,"url":"https://github.com/leynier/alera","last_synced_at":"2026-06-18T06:03:29.422Z","repository":{"id":361484474,"uuid":"1162294215","full_name":"leynier/alera","owner":"leynier","description":"The native, performance-first Agentic Development Environment (ADE). Run CLI coding agents (Claude Code, Aider, Copilot) in parallel using Git worktrees. Built with Flutter + Rust + Ghostty.","archived":false,"fork":false,"pushed_at":"2026-06-07T02:52:08.000Z","size":3719,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-07T03:28:17.502Z","etag":null,"topics":["agentic-ai","ai-agents","aider","claude-code","copilot","cross-platform","desktop-app","developer-tools","devtools","flutter","ghostty","git-worktree","multi-agent","rust","terminal-emulator"],"latest_commit_sha":null,"homepage":"https://alera.build","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/leynier.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":".github/AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-20T04:46:41.000Z","updated_at":"2026-06-07T02:52:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/leynier/alera","commit_stats":null,"previous_names":["leynier/alera"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/leynier/alera","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leynier%2Falera","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leynier%2Falera/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leynier%2Falera/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leynier%2Falera/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leynier","download_url":"https://codeload.github.com/leynier/alera/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leynier%2Falera/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34478108,"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-06-18T02:00:06.871Z","response_time":128,"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":["agentic-ai","ai-agents","aider","claude-code","copilot","cross-platform","desktop-app","developer-tools","devtools","flutter","ghostty","git-worktree","multi-agent","rust","terminal-emulator"],"created_at":"2026-06-18T06:03:28.134Z","updated_at":"2026-06-18T06:03:29.413Z","avatar_url":"https://github.com/leynier.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://alera.build\"\u003e\u003cimg src=\"assets/logo/alera-logo.png\" alt=\"Alera\" width=\"64\" valign=\"middle\" /\u003e\u003c/a\u003e Alera\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Platform-macOS%20%7C%20Windows%20%7C%20Linux-blue?style=for-the-badge\" alt=\"Supported platforms\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Built%20with-Flutter%20%2B%20Rust-3DDC84?style=for-the-badge\u0026logo=flutter\u0026logoColor=white\" alt=\"Built with Flutter and Rust\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Engine-Ghostty%20VTE-111111?style=for-the-badge\" alt=\"Ghostty VTE engine\" /\u003e\n  \u003ca href=\"https://github.com/leynier/alera/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-blue?style=for-the-badge\" alt=\"License\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eThe native, performance-first agentic development environment.\u003c/strong\u003e\u003cbr/\u003e\n  Run Claude Code, Codex, Amp, Antigravity, OpenCode, Copilot, Cursor or any other CLI agent side-by-side, each in its own Git worktree, all tracked in one place.\u003cbr/\u003e\n  Built with \u003cstrong\u003eFlutter + Rust + Ghostty\u003c/strong\u003e. No Electron. No bundled Chromium. Available for \u003cstrong\u003emacOS, Windows, and Linux\u003c/strong\u003e.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#install\"\u003e\u003cstrong\u003eGet Alera →\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"https://alera.build\"\u003e\u003cstrong\u003ealera.build\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"roadmap.md\"\u003e\u003cstrong\u003eRoadmap\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Why Alera\n\nAgentic coding is the new bottleneck of developer tooling. Most \"AI IDEs\" today wrap a single chat backend inside an Electron shell: slow to start, heavy on RAM, locked to one provider, and limited to one task at a time.\n\nAlera takes the opposite bet:\n\n- **Bring your own agent.** Alera is terminal-first. Every CLI coding agent runs in its own real PTY, the way it was meant to. No proprietary chat layer, no vendor lock-in\n- **Run many agents at once.** Each task gets its own Git worktree, its own tabs, and its own terminals, so Claude, Codex, Amp, and friends can work in parallel without stepping on each other\n- **Native performance.** Flutter for a fast, consistent desktop UI. Rust for the PTY and process layer (`portable_pty`). Ghostty's VTE engine for terminal parsing. No Electron, no embedded browser, no JS event loop in the hot path\n- **See what your agents are doing.** Lifecycle hooks for the most popular CLI agents stream their activity into Alera so you can tell, at a glance, which terminals are idle, working, or waiting on you\n- **Never lose a terminal again.** Terminal sessions persist across restarts. Close the app, reboot the machine, come back, and your scrollback, processes, and layout are still there\n\n---\n\n## Supported CLI agents\n\nAlera works with **any CLI agent**. The agents below ship with first-class integration today (icons, managed lifecycle hooks, and live activity tracking):\n\n\u003cp\u003e\n  \u003ca href=\"https://docs.anthropic.com/claude/docs/claude-code\"\u003e\u003ckbd\u003e\u003cimg src=\"assets/agents/claude.svg\" width=\"16\" valign=\"middle\" /\u003e Claude Code\u003c/kbd\u003e\u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://github.com/openai/codex\"\u003e\u003ckbd\u003e\u003cimg src=\"assets/agents/codex.svg\" width=\"16\" valign=\"middle\" /\u003e Codex\u003c/kbd\u003e\u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://ampcode.com/manual#install\"\u003e\u003ckbd\u003e\u003cimg src=\"assets/agents/amp.png\" width=\"16\" valign=\"middle\" /\u003e Amp\u003c/kbd\u003e\u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://antigravity.google/docs/cli-overview\"\u003e\u003ckbd\u003e\u003cimg src=\"assets/agents/agy.png\" width=\"16\" valign=\"middle\" /\u003e Antigravity (Agy)\u003c/kbd\u003e\u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://opencode.ai/docs/cli/\"\u003e\u003ckbd\u003e\u003cimg src=\"assets/agents/opencode.png\" width=\"16\" valign=\"middle\" /\u003e OpenCode\u003c/kbd\u003e\u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://cursor.com/cli\"\u003e\u003ckbd\u003e\u003cimg src=\"assets/agents/cursor.png\" width=\"16\" valign=\"middle\" /\u003e Cursor\u003c/kbd\u003e\u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli\"\u003e\u003ckbd\u003e\u003cimg src=\"assets/agents/copilot.svg\" width=\"16\" valign=\"middle\" /\u003e GitHub Copilot\u003c/kbd\u003e\u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://pi.dev\"\u003e\u003ckbd\u003e\u003cimg src=\"assets/agents/pi.svg\" width=\"16\" valign=\"middle\" /\u003e Pi\u003c/kbd\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nAnything else that runs in a terminal (Gemini CLI, Grok, Goose, Kimi, Crush, Continue, Aider, your own scripts) works out of the box. Activity tracking is incrementally rolling out per agent.\n\n---\n\n## What you get today\n\nAlera is in active development. These are the features shipping **right now**:\n\n### 🗂️ Project \u0026 workspace registry\n\nRegister existing local folders or clone Git repositories from one place. Git-backed projects can spin up multiple **workspaces** backed by real Git worktrees: one branch, one task, one experiment per workspace, fully isolated.\n\n### 🌳 Worktree-native workflow\n\nEvery workspace is a worktree. Less branch juggling, fewer \"wait, what was I working on?\" moments. Switching contexts is instant, and your agents never collide on the same files.\n\n### 🤖 Multi-agent terminals\n\nOpen multiple terminals per workspace, organised in tabs. Run Claude Code in one, Codex in another, Amp in a third, all in parallel and all visible at the same time. Each terminal is a full PTY backed by Rust (`portable_pty`) and parsed by Ghostty's VTE.\n\n### 📡 Live agent activity tracking\n\nManaged lifecycle hooks for Claude, Codex, Amp, OpenCode, Antigravity, Cursor, Copilot and Pi stream agent events into Alera. You can see which agents are **idle, working, or waiting on input** without staring at every terminal.\n\n### 💾 Persistent terminal sessions\n\nClose Alera. Reboot. Reopen. Your terminals, their scrollback, their layouts, and the processes you launched are still there. Long-running agent runs survive restarts instead of vanishing with the window.\n\n### 🎨 Terminal customization\n\nPer-terminal configuration: font, size, theme, behaviour. Built on top of the same engine that powers Ghostty for predictable, high-fidelity rendering.\n\n### 🖥️ Truly native, truly cross-platform\n\nOne codebase, three real desktops. Native window chrome, native keyboard shortcuts (⌘ on macOS, Ctrl elsewhere), dark-mode-first UI built on the Alera design system. No Electron, no embedded browser, no 400 MB install.\n\n### 🔄 Built-in update channel\n\nStable and release-candidate update channels with a manual download flow today, signed automatic installs as platform trust requirements land.\n\n---\n\n## What's next\n\nAlera is shipping fast. A non-exhaustive list of what's on the roadmap:\n\n- **SSH worktrees**: run agents on remote machines as if they were local\n- **Mobile companion app**: monitor and nudge your agents from your phone\n- **File explorer, search, and diff panels**: review and edit AI-generated changes without leaving Alera\n- **Git operations UI**: stage, commit, push, resolve conflicts visually\n- **Embedded browser \u0026 browser use**: give agents a real browser to drive\n- **GitHub / GitLab / Linear / CI integrations**: PRs, issues and checks linked per worktree\n- **Orchestration between agents**: inter-agent messaging, task dispatch, coordinator loops\n- **Voice, automations, MCP management, skills, and more**\n\nSee the full [roadmap](roadmap.md) for the complete picture, including difficulty/utility scoring per feature.\n\n---\n\n## Install\n\n\u003e Public release artifacts and download links are being finalized. Track [releases on GitHub](https://github.com/leynier/alera/releases) or visit **[alera.build](https://alera.build)** for the latest.\n\n### Run from source\n\nAlera is a Flutter desktop app. You'll need a recent [Flutter SDK](https://docs.flutter.dev/get-started/install) and a working Rust toolchain (`rustup`). The Rust workspace under `rust/` provides both the native terminal-host sidecar (`alera-cli`) and the git layer (`alera_native`, compiled into the app through `flutter_rust_bridge`).\n\n```bash\ngit clone https://github.com/leynier/alera.git\ncd alera\ngit submodule update --init third_party/xterm third_party/dart_terminal\nflutter pub get\n\n# Pick your platform:\nflutter run -d macos\nflutter run -d windows\nflutter run -d linux\n```\n\nBy default a local build runs as **Alera Dev** (`dev.leynier.alera.dev`) so it can coexist with an installed release without sharing user data. Set `ALERA_FLAVOR=release` to opt back into the release identifier.\n\nRegenerate the `flutter_rust_bridge` bindings after changing the Rust API (`rust/src/api`) with `make frb-generate`.\n\n---\n\n## Performance \u0026 architecture\n\nAlera is built around three deliberate engineering choices:\n\n```diagram\n╭──────────────────────────╮      ╭──────────────────────────╮      ╭──────────────────────────╮\n│         Flutter          │      │           Rust           │      │      Ghostty VTE         │\n│    Native desktop UI,    │ ───\u003e │   PTY + process layer    │ ───\u003e │    Terminal parser \u0026     │\n│   shell, design system   │      │    via portable_pty      │      │  renderer (no Electron)  │\n╰──────────────────────────╯      ╰──────────────────────────╯      ╰──────────────────────────╯\n```\n\n- **Flutter** for the desktop shell, design system, and UI: fast startup, consistent look across macOS / Windows / Linux, fully native rendering\n- **Rust** for the PTY and process boundary through [`portable_pty`](https://crates.io/crates/portable-pty), so spawning, signalling, and resizing real terminals stays predictable on every OS\n- **Ghostty's VTE** through `ghostty_vte_flutter` for terminal parsing: the same engine that powers the Ghostty terminal emulator\n- **Drift / SQLite** for local persistence of projects, workspaces, tabs, layouts, settings, and terminal state\n- **No Electron, no Chromium, no Node runtime** in the app, and no plan to add them\n\nFor more, see [`docs/architecture.md`](docs/architecture.md).\n\n---\n\n## Inspired by great open source projects\n\nAlera stands on the shoulders of brilliant work in the agentic dev and terminal space. Special thanks to:\n\n- **[Orca](https://github.com/stablyai/orca)**: the primary inspiration for worktree-oriented, multi-agent product thinking\n- **[Ghostty](https://ghostty.org/)**: the bar for fast, high-quality terminal experiences\n- **[xterm.js](https://xtermjs.org/)**: ecosystem reference for terminal compatibility\n- **[Flutter](https://flutter.dev/)**: the foundation that makes Alera's cross-platform desktop UI possible\n- **[Drift](https://drift.simonbinder.eu/)** and **[desktop_updater](https://pub.dev/packages/desktop_updater)**: used for local persistence and desktop update plumbing\n\n---\n\n## Developing\n\nWant to contribute or hack on Alera locally? Start with:\n\n- [`AGENTS.md`](AGENTS.md): contributor and agent governance rules\n- [`docs/architecture.md`](docs/architecture.md): architecture glossary and naming rules\n- [`docs/release-trust.md`](docs/release-trust.md): release signing, Linux package trust, and update manifest verification\n- [`docs/testing.md`](docs/testing.md): unit, widget, golden, E2E, and coverage workflow\n- [`docs/ui-styleguide.md`](docs/ui-styleguide.md): design tokens and UI rules\n\n### Project layout\n\n- `lib/src/app`: bootstrap, dependency providers, theme setup\n- `lib/src/shared`: shared infrastructure (process, storage, helpers)\n- `lib/src/features/projects`: project registry and project sidebar UI\n- `lib/src/features/workbench`: workspaces, tabs, split layouts, terminal runtime\n- `lib/src/features/agent_status`: agent lifecycle hooks and activity tracking\n- `lib/src/features/updater`: update archive parsing and desktop updater integration\n- `lib/src/features/shell`: top-level application shell\n- `lib/src/design_system`: shared Alera UI components\n\n### Checks\n\n```bash\nflutter analyze\nflutter test --coverage --exclude-tags golden\ndart run tool/quality/coverage_report.dart --input coverage/lcov.info --min-lines 65 --worst 25\n```\n\nUse `flutter test --tags golden` for visual regression tests and `flutter test integration_test -d macos` for local desktop E2E smoke coverage. See [`docs/testing.md`](docs/testing.md).\n\n### Desktop flavors\n\nAlera builds in two flavors selected by `ALERA_FLAVOR`:\n\n| Flavor    | Bundle ID                  | Display name | Notes                                            |\n|-----------|----------------------------|--------------|--------------------------------------------------|\n| `dev`     | `dev.leynier.alera.dev`    | Alera Dev    | Default for local builds. Auto-update disabled.  |\n| `release` | `dev.leynier.alera`        | Alera        | Used by CI and public release artifacts.         |\n\nSee [`lib/src/core/build_flavor.dart`](lib/src/core/build_flavor.dart) for the canonical strings.\n\n---\n\n## Releases and updates\n\nPublic release cuts are maintainer-managed through GitHub Actions. Release artifacts are signed or packaged for platform trust, and the public update indexes are Ed25519-signed schema v2 manifests with SHA-256 metadata for each artifact. Stable automatic installation stays disabled unless the release build embeds the manifest public key and the platform apply path explicitly allows the artifact type. Stable Linux updates are installed through signed package repositories; release-candidate Linux builds remain manual downloads.\n\n- Stable manifest: `https://updates.alera.build/app-archive.json`\n- Release-candidate manifest: `https://updates.alera.build/app-archive-rc.json`\n- Updater payloads are hosted in Cloudflare R2 under `updates/stable/` and `updates/rc/`\n- Stable Linux repositories are hosted in Cloudflare R2 under `linux/apt/` and `linux/rpm/`\n- [GitHub Releases](https://github.com/leynier/alera/releases) remain the manual download surface\n\n---\n\n## Community \u0026 support\n\n- ⭐ **Star this repo** to follow along. Alera ships often\n- 🐛 **Found a bug or want a feature?** [Open an issue](https://github.com/leynier/alera/issues)\n- 🌐 **Website:** [alera.build](https://alera.build)\n- 📜 **License:** see [`LICENSE`](LICENSE)\n- 🛡️ **Security:** see [`SECURITY.md`](SECURITY.md)\n- 🤝 **Code of conduct:** see [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md)\n\n---\n\n## Reference projects\n\nReference projects live under [`reference_projects/`](reference_projects/) and are **non-runtime** references for agentic development and orchestration patterns. Alera remains terminal-first and does not depend on any reference project at runtime.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleynier%2Falera","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleynier%2Falera","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleynier%2Falera/lists"}