A modern cross-platform UI client for managing the picoclaw service. Designed for clarity, accessibility, and high contrast.
- Minimalist Dashboard: Clean interface with high-impact typography.
- Accessible Controls: Large action buttons optimized for Desktop and Mobile/TV usage.
- Multiple Color Themes: Includes 6 professional palettes (Carbon, Slate, Obsidian, Ebony, Nord, and SAKURA).
- Log Monitoring: Real-time log display with history management.
- WebView Integration: Embedded web management interface with status-aware guidance.
- Desktop Ready: Windows tray support, single-instance enforcement, and port conflict resolution.
| Idle Status | Running with SAKURA Theme |
|---|---|
![]() |
![]() |
| Service Not Started Guide | Embedded Web UI (Sakura) |
|---|---|
![]() |
![]() |
| Midnight (Carbon) Selection | Sakura Theme Selection |
|---|---|
![]() |
![]() |
- Pre-requisites: Ensure you have the
picoclawbinary executable. - Download: Get the latest release from the Releases page.
- Configure: Go to the PRESETS tab to set your binary path and port.
- Launch: Press the LAUNCH SERVICE button on the dashboard.
Building the project requires Flutter SDK:
flutter pub get
flutter run -d windowsFor more details, see docs/BUILD_GUIDE.md.
We've added a cross-platform Dart helper tools/fetch_core_local.dart to orchestrate three common steps:
- build the Flutter app for a target platform
- download the matching native
picoclawcore binary from GitHub Releases - install the binary into
app/bin/(and optionally into platform build outputs) and run a packaging command
This script can be used in two main ways.
-
One-step (build → fetch → install → optional pack):
# Example: build Android release AAB and APK, fetch core, install into build outputs flutter pub run tools/fetch_core_local.dart \ --repo sipeed/picoclaw \ --tag latest \ --out-dir app/bin \ --platform android \ --arch arm64 \ --build-mode release \ --install-to-buildNotes:
- Use
--platformand--archto explicitly select the target asset. When--platformis provided,--archis required. - In CI you can pass the GitHub token as
--github-token $GITHUB_TOKEN(or omit the option and set theGITHUB_TOKENenv var). - Add
--pack-cmd "your-pack-command"to run a packager (e.g., NSIS, codesign) after installing.
- Use
-
Two-step (fetch core, then run/debug locally):
# Download core and install to app/bin (no packaging) flutter pub run tools/fetch_core_local.dart \ --repo sipeed/picoclaw \ --tag latest \ --out-dir app/bin \ --platform windows \ --arch x86_64 \ --build-mode debug # or default download host arch and copy to default app/bin dart run tools/fetch_core_local.dart # Then run/debug with flutter (the app will look for the binary in app/bin) flutter run -d windows
Use
--dry-runwith the script to see planned steps without executing them.
Troubleshooting:
- If
--github-tokenis passed without a value (for example when an empty env var is expanded), the script will fallback to theGITHUB_TOKENenvironment variable if present. Prefer passing the token as--github-token=$GITHUB_TOKEN(no space) or set the env var. - For Android builds, the script will skip downloading desktop/native executables if your project supplies JNI libs under
android/app/src/main/jniLibs/— in that case the script writesversion.txtwithandroid-jni-suppliedand exits.
See tools/fetch_core_local.dart --help for full option list.
MIT License. See LICENSE for details.





