Herdr UI
Herdr의 TUI가 뛰어나며, 창을 통해 추가되는 기능
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Cross-platform, native, and sharp looking Linux server control plane.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗[!WARNING] Crow is in active development. It's reshaped and debugged constantly: features change or move between releases, things break, and the vault format can change. Try it on servers you can afford to experiment with, not production, and expect rough edges. Bug reports are welcome.
Crow is a native desktop app for operators and SREs who manage Linux servers over SSH. It's inspired by the density and keyboard speed of k9s and lazygit, drawn as a hardware-accelerated GUI with GPUI.
Crow is agentless: it talks to your servers over plain SSH, reusing one connection per server, and never installs anything on them.
Website: crow.rs · Community: forum.errorware.net
Work across many servers at once. Changes to many servers list what they will do first, go one server at a time and stop at the first failure.
journalctl with unit, priority, time and PID filters, highlighted search matches, and an optional plain-English explanation from an AI provider you configure.sshd_config, /etc/hosts, pg_hba.conf and ufw rules as structured, validated rows through crow-config. Edits are surgical, every change is a revision you can roll back, and values rated never on prod need a typed confirmation. Files are written atomically (temp file, then rename).Crow is in English, and can be in any language someone writes a pack for. A pack is one .ftl file in ~/.config/crow/languages/; pick it in Settings → Personalisation → Language. Spanish and Japanese packs are in languages/, and languages/README.md explains how to make one. Commands, config files and the audit log's action names stay as they are in every language.
Crow holds things that matter: provider tokens that can power servers off, AI keys, and SSH access to your fleet. Security has a cost, so Crow doesn't hide the trade-off. It shows you which stance you're in, and what that protects and exposes. The badge in the titlebar is always visible; click it for the details.
| OPEN (default) | LOCKED | |
|---|---|---|
| How | No password; the OS keyring (Keychain, Secret Service, Credential Manager) holds Crow's encryption key | Master password + TOTP 2FA; the key is locked by your password |
| Protects against | Someone copying crow.db or your backups | That, and anything or anyone using your computer while Crow is locked |
| Exposed to | Anything running as you while you're logged in can read the key from the keyring; anyone at your unlocked desk can use Crow | Anyone at your computer while Crow is unlocked (it auto-locks when idle) |
| Costs | Nothing to type | Unlock with password + 2FA; lose either and the stored secrets are gone for good |
In both stances:
curl on stdin.crow.db (server list, settings, history) and your SSH keys in ~/.ssh.~/.ssh/config says.The first secret you save asks you to choose a stance on purpose. See docs/security.md for the full model.
Crow's extensions are plugins described by crow-config manifests:
provider.hosts (where servers come from) today, provider.dns next.instances.list, instances.power, snapshots). Crow only offers what a provider declares.| Provider | Category | Capabilities |
|---|---|---|
| Linode | provider.hosts | list instances, power, backup snapshots |
| UpCloud | provider.hosts | list instances, power |
Providers are compiled in, one cargo feature each (provider-linode, provider-upcloud, both on by default). Their settings forms are generated from the manifest, and tokens are stored only in the encrypted vault.
Your own plugins. Besides the built-in ones, Crow loads plugins you write or download: a folder with a plugin.toml and its scripts, dropped into ~/.config/crow/plugins/. Crow shows every command a plugin can run before you accept it, pins its files (a changed file turns it off until you review it again), asks before anything changes, and records every run. A plugin's actions run on a server's page, across the fleet with a canary, or on this machine against an inventory Crow writes (Ansible, for example), and can add badges to the fleet. crow --check-plugin <folder> checks one before you share it. Examples are in plugins/, including DevSec hardening through Ansible; how to write one is in docs/plugins.md.
crow/
├── src/ # the app
├── crates/
│ ├── crow-provider-core/ # provider contracts: Provider, ListInstances, PowerControl, Snapshots; curl-based HTTP
│ ├── crow-provider-linode/ # Linode API v4
│ └── crow-provider-upcloud/ # UpCloud API 1.3
├── assets/ # icons, flags, distro logos, fonts (each with its license), i18n/en.ftl
├── languages/ # language packs (Spanish, Japanese) and how to write one
└── docs/
The provider crates live here, next to the app they serve. crow-config, the general-purpose config engine, has its own repository.
Prebuilt binaries for Linux (x86_64) and macOS (Apple Silicon) are attached to each GitHub release, alongside SLSA provenance (.intoto.jsonl) you can check with slsa-verifier.
Linux: unpack and run the installer. It puts crow in ~/.local/bin and adds Crow (with its icon) to your app launcher; ./install.sh --uninstall removes it.
tar -xzf crow-linux-x86_64.tar.gz
cd crow-linux-x86_64 && ./install.sh
macOS: unpack crow-macos-arm64.tar.gz and drag Crow.app to Applications. The app is ad-hoc signed but not notarized, so Gatekeeper blocks the first launch: right-click it and choose Open, or clear the quarantine flag once:
xattr -dr com.apple.quarantine /Applications/Crow.app
Updates: Crow checks the release list on GitHub once a day and shows vX available next to its version (Settings → General turns this off; nothing else is sent). Installing updates by themselves is opt-in, and only happens after slsa-verifier (which must be on your PATH) confirms the release's signed provenance. Only an installed copy (~/.local/bin/crow, Crow.app) is replaced, and Crow offers a restart rather than restarting itself.
A Rust toolchain (1.85+), native windowing and font libraries, and curl (Crow uses it for provider and AI requests).
# Fedora / Bazzite
sudo dnf install fontconfig-devel libxkbcommon-devel libxcb-devel wayland-devel
# Ubuntu / Debian
sudo apt install libfontconfig1-dev libxkbcommon-dev libxcb1-dev libwayland-dev
For the Open stance on Linux you need a Secret Service provider (GNOME Keyring or KWallet); most desktops have one running.
Crow uses JetBrains Mono:
brew install --cask font-jetbrains-mono # macOS
brew install font-jetbrains-mono # Linux (Homebrew)
Crow builds against crow-config from a sibling checkout:
git clone [email protected]:errorware/crow-config.git crow-config-core
git clone [email protected]:errorware/crow.git
cd crow
cargo test --workspace
cargo run --release
| Shortcut | Action |
|---|---|
⌘K / Ctrl+K | Command palette |
⌘1 / ⌘2 / ⌘3 / ⌘4 | Fleet / server overview / configs / logs |
⌘N | Add server |
⇧⌘F | Fleet Setup |
⌘, | Settings |
⌘S | Save settings (on Settings) |
⌘/ | Open config.toml in your editor (on Settings) |
⌘\ | Collapse / expand the sidebar |
⇧⌘L | Lock Crow (Locked stance) |
/ | Search the table (services, processes, users, logs) |
Tab / ⇧Tab | Next / previous field in a form |
Esc | Close the dialog or form, or cancel |
Ctrl works wherever ⌘ is shown.
Crow builds on GPUI, alacritty_terminal, the RustCrypto crates, SQLite and many more, and ships Tabler Icons, flag-icons, Dashboard Icons and JetBrains Mono. ACKNOWLEDGEMENTS.md lists them all with their licenses; the bundled assets carry their own in assets/.
Crow is licensed under the AEUPL-1.2 (The Ancient European Union Public License).
Free for anyone to use, copy, modify, and share for any non-commercial purpose without restriction. Commercial use requires a physical letter sent to the author written in Latin on genuine sheepskin parchment.
See the LICENSE file or visit aeupl.org for full terms and conditions.