Chuyển đến nội dung chính

MaidKit: a Flutter SSH toolkit for managing servers

MaidKit is a cross-platform SSH server manager written in Flutter, covering everything from a split-pane terminal to Postgres backups. 426★, AGPL-3.0, last pushed 2026-08-26.

What is MaidKit?

MaidKit is the toolkit its author built for doing server maintenance — the name comes from “acting as a maid for servers”. Its governing constraint is that day-to-day management is 100% SSH-based and installs nothing on the server. Most server-management panels want an agent on every box; MaidKit’s default is that your servers stay exactly as they were.

What that buys you, from one Flutter app on desktop or mobile:

  • a server dashboard with live status, network and SSH round-trip latency, load, memory and uptime, grouped and taggable
  • a full SSH terminal with split panes, drag-and-drop tabs, a command palette, OSC 52 clipboard support and colour schemes
  • a dual-pane SFTP browser with drag-and-drop transfers, an in-app editor and keyboard shortcuts
  • systemd units, nginx and Caddy config, crontab, packages (apt, dnf and more), processes
  • firewall management across UFW, firewalld, nftables and iptables
  • port forwarding with presets that auto-start on connect, HTTP CONNECT/SOCKS5 proxying, and jump hosts
  • Docker and Podman containers with compose project grouping
  • PostgreSQL, MySQL and MariaDB inspection, logical backup/restore and pgBackRest
  • Tailscale via an embedded node — no Tailscale app required

If you want more than SSH can give you, the optional MaidCafe daemon adds fleet metrics streamed over SSE, scheduled jobs, container log tailing and alarm thresholds. It connects outbound only, so no inbound ports are opened.

Why it is worth reading as a Flutter developer

Two reasons, and the first is that MaidKit is an unusually good specimen of a serious Flutter desktop application. Split-pane terminals, drag-and-drop tab reordering, dual-pane file management with keyboard shortcuts, a command palette, a selectable terminal renderer (Ghostty’s libghostty-vt or xterm), and a vendored native library compiled from source for the iOS App Store. Most “Flutter desktop app” examples are a sidebar and a list view. This is not that.

The security model is worth studying too: an AES-GCM 256-bit credential vault, PBKDF2 at 310,000 iterations, biometric unlock, optional encrypted cloud sync of blobs only, and encrypted .mkb backup archives. There is even a “hide server addresses when screen sharing” setting, which tells you someone has actually demoed this on a call.

The second reason is the AI surface, which is more carefully designed than most. MaidKit’s agent operates servers through tools with your own provider, extended by MCP servers and skills, and proposed actions require approval in review mode before they run. Separately, MaidKit exposes a local MCP server so Claude Desktop or any other MCP client can reach its SSH servers, snippets and skills. Both directions, with a human in the loop on the dangerous one.

Getting started

MaidKit is an application, not a package — its pubspec carries publish_to: "none". Download a build from solsynth.dev, or build it yourself:

flutter pub get
flutter run

It needs Flutter SDK ^3.12.2. Platform prerequisites are real:

  • Linux: ninja-build, libgtk-3-dev, libayatana-appindicator3-dev, keybinder-3.0, libnotify-dev
  • Windows: NASM, required by webcrypto native assets
  • iOS App Store archives: Zig 0.15 (brew install zig@0.15) for the vendored Ghostty terminal — the current Ghostty source does not build with Zig 0.16

For Linux distribution there is an AppImage script:

flutter build linux
bash buildtools/build-appimage.sh

When should you look at MaidKit?

  • you administer a handful of servers and want one app that does terminal, files, services and containers
  • you refuse to install a management agent on production hosts
  • you want a real, large, actively developed Flutter desktop codebase to learn from
  • you want an AI agent with server access that asks before acting

Where it falls short

AGPL-3.0 is the first thing to check. For using the app it changes nothing. For borrowing code into your own product — and the terminal, vault and SFTP implementations are genuinely tempting — it is a strong copyleft obligation that extends over a network. Read it before you copy anything.

The build has sharp edges. A pinned Zig version for iOS, NASM on Windows, five apt packages on Linux: this is a Flutter app with a native tail, and CI setup is not a five-minute job.

The MaidCafe layer, where the most interesting fleet features live, ties into Solarpass accounts and Solar Network workspaces. Self-hosted cloud endpoints are supported in settings, but the smooth path runs through the author’s service — worth knowing before you build a workflow on it.

And the feature list is enormous for a project this young. Breadth like this usually means depth varies; verify the specific subsystem you care about rather than assuming the whole surface is equally solid.

Alternatives worth comparing

Frequently asked questions

Does MaidKit install anything on my servers?

Not for day-to-day work — management is 100% SSH-based and non-intrusive by design. The optional MaidCafe daemon adds fleet metrics, scheduled jobs and push alerts; it connects outbound only, so it opens no inbound ports.

Is MaidKit available on pub.dev?

No. Its pubspec sets publish_to: "none" because it is an application, not a package. Download builds from solsynth.dev or build it yourself with the Flutter SDK.

How are my SSH credentials stored?

In an AES-GCM 256-bit vault with PBKDF2 key derivation at 310,000 iterations, with biometric unlock, optional encrypted cloud sync and encrypted .mkb backup archives. GitHub access tokens go in the same vault.

What does the AI agent actually do?

It operates your servers through tools, with your own AI provider or Solar Network AI, extended by MCP servers and skills. Proposed actions require approval in review mode before running, and conversation history stays on-device outside the vault.


Part of FlutterCook — hands-on guides to the best open-source Flutter libraries, UI kits, and apps. Explore the live GitHub trends or browse YouTube guides.


Originally published on FlutterCook. Read the latest version there — that copy is the one kept up to date.

Nhận xét

Bài đăng phổ biến từ blog này

5 concepts every Flutter dev should know

  Phụ lục: State management architecture Testing IDE Shortcuts Platform channel Maintaining a project Tôi đã làm việc với Flagship trong một thời gian dài, và đây là những điều mà tôi phát hiện ra là điều cần phải có đối với bất kỳ nhà phát triển Flagship nào, về tổng thể nó sẽ khiến bạn trở thành một nhà phát triển Flagship giỏi trong thời gian dài. 1. State management architecture Đây là một trong những chủ đề quan trọng nhất trong cộng đồng thiết bị rung, nó khá quan trọng nếu bạn muốn duy trì một dự án rung kích thước trung bình hoặc lớn. Nó sẽ giúp tạo một dự án suôn sẻ và thêm các tính năng mới một cách hoàn hảo.  2. Testing Đây là một chủ đề duy nhất mà tôi không hiểu tại sao nó lại quan trọng trước đó trong sự nghiệp của tôi, nhưng khi tôi tiến lên trong sự nghiệp của mình và có kinh nghiệm với nhiều dự án và vấn đề xảy ra trong môi trường sản xuất. Tôi đã nhận ra một cách khó khăn, tại sao điều này lại quan trọng như vậy. Nếu bạn vẫn muốn có thêm lý do để cân nhắc thử...

Thiết kế giao diện với DotNetBar (Phần 1)

Đây là phiên bản DotNetBar hỗ trợ C# và Visual Basic https://www.dropbox.com/s/wx80jpvgnlrmtux/DotNetBar.rar  , phiên bản này hỗ trợ giao diện Metro cực kỳ “dễ thương” Các bạn load về và cài đặt, khi cài đặt xong sẽ có source code mẫu của tất cả các control. Để sử dụng được các control của DotNetBar các bạn nhớ add item vào controls box. Thiết kế giao diện với DotNetBar, giao diện sẽ rất đẹp. Link các video hướng dẫn chi tiết cách sử dụng và coding: http://www.devcomponents.com/dotnetbar/movies.aspx Hiện tại DotNetBar có rất nhiều công cụ cực mạnh, trong đó có 3 công cụ dưới đây: DotNetBar for Windows Forms Requires with Visual Studio 2003, 2005, 2008, 2010 or 2012.   DotNetBar for WPF Requires with Visual Studio 2010 or 2012 and Windows Presentation Foundation.   DotNetBar for Silverlight Requires with Visual Studio 2010 or 2012 and Silverlight. Dưới đây là một số hình ảnh về các control trong DotnetBar.   Metro User Interface  controls with Metro Tiles, toolba...

Announcing Flutter 2

  Phụ lục: Flutter on the web Flutter 2 on desktops, foldables, and embedded devices The growing Flutter ecosystem Dart: The secret sauce behind Flutter Flutter 2: Available now Hôm nay, chúng tôi sẽ công bố Flutter 2: một bản nâng cấp lớn cho Flutter cho phép các nhà phát triển tạo các ứng dụng đẹp, nhanh chóng và di động cho bất kỳ nền tảng nào. Với Flutter 2, bạn có thể sử dụng cùng một cơ sở mã để gửi các ứng dụng gốc cho năm hệ điều hành: IOS, Android, Windows, macOS và Linux; cũng như trải nghiệm web nhắm mục tiêu các trình duyệt như Chrome, Firefox, Safari hoặc Edge. Flutter thậm chí có thể được nhúng vào ô tô, TV và thiết bị gia dụng thông minh, mang đến trải nghiệm di động và lan tỏa nhất cho thế giới điện toán xung quanh. Mục tiêu của chúng tôi là thay đổi cơ bản cách các nhà phát triển nghĩ về việc xây dựng ứng dụng, bắt đầu không phải với nền tảng bạn đang nhắm mục tiêu mà là với trải nghiệm bạn muốn tạo. Flutter cho phép bạn tạo ra những trải nghiệm tuyệt đẹp trong đó ...