One AI video studio, across providers and devices
Download the latest macOS build (Apple silicon) · Download the latest Windows build (x64)
Clawnsole is a unified Flutter workspace for generating AI video across providers and devices. Its premium, midcentury-inspired interface includes skeuomorphic console hardware: a machined-steel duration knob, metal toggles that light hunter green, and recessed counter readouts, all drawn in code so every platform matches. Cloud video providers share one provider-neutral Create, Library, and References workflow, while project folders, reusable tags, and optional Google Drive sync keep work organized wherever you create.
- Provider-aware text-to-video and image-to-video, plus FLUX 3 continuation, draft enhancement, and FLUX Video Upscale finishing at 1.5×–3×
- Keyless Apple Intelligence still-image creation on supported iPhones and iPads, plus silent MP4 sequences built from one generated image per second
- Model-aware image, video, and audio references, with timing and placement controls where supported
- Model-specific durations, aspect ratios, resolutions, audio, draft, and safety controls
- App-wide polling, foreground/relaunch recovery, manual status refresh, surfaced provider and result-retrieval errors, and progress
- Provider balance when exposed by the API, plus setting-aware USD or credit estimates
- Per-generation quoted and realized USD cost history with provenance
- Reload-safe input previews, fullscreen playback, save-as download, and full input reuse
- Composer tabs on Create: several independent drafts (direction, model, settings, attachments) open side by side, persisted on the device; new blank tabs remember the last-used generation controls for each provider/model. With Drive connected, each device publishes its own strip in the background and the Recover a draft key opens copies of the drafts open on your other devices (and the ones closed here); nothing ever syncs into the tab you are typing in
- AI Rewrite: a finished film's frames, prompt, and your change notes go to the OpenAI or Anthropic model you pick (vendor, model, effort) and the revised prompt opens in a new tab with the film's full recipe; a wand on the Direction box rewrites a draft in place with Undo. Keys are asked for on first use, kept in the encrypted vault, and synced with your other keys
- Named tabs and rewrite lineage on every card, and a film modal (tap any card) that shows the whole recipe untruncated with an iterations strip to walk back through AI Rewrite versions
- Nested project folders with a pinned rail, collapsible branches, in-place rename, and drag-and-drop filing, plus multi-tag organization and combined prompt/tag/folder search
- A saved References tab with naming, nested folders, tags, media-type filters, duration-aware sorting, non-destructive video trimming, and Saved/Generated pickers directly in Create
- Live reference-count and media-duration gauges that track each selected model's per-kind and total input ceilings
- One-tap folder, media-type, and tag filters with a desktop folder rail and compact mobile picker
- Starred models and providers pinned in a Favorites section of the model picker and the provider desk, carried with your synced preferences
- System-aware light and dark themes with an explicit appearance switcher
- Uncapped compact history with retained media files and granular clear controls
- OS-secure API-key storage with no database,
localStorage, or IndexedDB history in installed builds - Optional Google Drive history/media sync across macOS, Windows, iOS, and Android, plus passphrase-encrypted provider-key and preference sync with a one-time recovery code
- A Providers desk for per-provider keys, console/docs links, live Atlas Cloud, Krea, and Runway model discovery, canonical cross-provider model matching, observed quote variance, and route-aware 10/15/20/30-second USD comparisons
- A remotely managed, version-aware provider/model catalog from
https://clawnsole.app/models/, with a durable device cache and complete build-time fallback when the site is unavailable - A version-gated
mobile-testprofile that limits store review builds to ArtCraft Seedance 1.5 Pro at 480p for 5 seconds plus Apple Intelligence on supported iOS devices, then unlocks the other catalog routes remotely
The same Clawnsole workflow runs on iOS, Android, macOS, and Windows. Flutter owns all product behavior, including the native Windows app. Electron is only the macOS lifecycle and self-update shell around Flutter's web build and local Dart companion. Flutter web remains the internal Electron renderer and a local development harness; the standalone hosted app has been retired. The old root Next.js implementation has also been removed.
# from the repository root
./flutter/scripts/start_ios
./flutter/scripts/start_android
./flutter/scripts/start_macos
./flutter/scripts/start_windows
# internal companion-backed renderer development
./flutter/scripts/start_webThe matching deployable builds are:
./scripts/build_ios.sh
./flutter/scripts/build_android
./flutter/scripts/build_macos
./flutter/scripts/build_windows
# internal Electron renderer/companion build
./flutter/scripts/build_webSee Flutter setup and macOS desktop packaging. Windows scripts run on Windows with Visual Studio and its Desktop development with C++ workload installed.
Clawnsole has no database. Native mobile apps store clawnsole.json inside
their application sandbox; native Windows stores it in
%LOCALAPPDATA%\Clawnsole (a library that already lives in
Documents\Clawnsole keeps being used). Electron's companion stores the same
compact schema in a local file, with retained inputs and videos in an adjacent
assets/ directory. Every write replaces the file atomically and keeps the
previous copy beside it as clawnsole.json.bak, which is read back
automatically if the main file is ever missing or damaged. Desktop installs can
move the data directory from Settings for portable use: a small
data-location.json pointer stays in the default location and names the
chosen folder, and the previous copy is kept as a safety net. All installed targets can additionally connect to the same
app-owned Google Drive folder. Local and Drive generations, references, and
folders remain separate records with visible provenance; copying local work to
Drive is non-destructive, and the separate move action deletes local originals
only after every copy is verified in Drive.
- History is not capped.
- Folder names, tag labels, generation assignments, and saved-reference metadata live in the same compact local JSON schema and migrate without changing older records.
- Removing a folder never removes its films; directly filed work returns to Unfiled, tags stay intact, and subfolders move up one level.
- Reference folders follow the same safe removal behavior within their separate hierarchy.
- Base64 request payloads and video blobs are never stored in JSON.
- Removing history prunes media only when it is no longer used by another generation or a saved reference.
- Provider task receipts are persisted as soon as submission succeeds, before optional balance and cost refreshes. Polling resumes on launch and foreground resume regardless of the visible screen.
- Provider delivery links may be temporary; completed videos are retained locally first, and interrupted result downloads remain durably retryable.
- “Don’t show this warning again” choices are cached in local preferences and sync with the encrypted settings vault. They survive relaunch and other settings changes; replacing that provider’s key or resetting preferences asks for acknowledgement again. Existing saved choices migrate automatically.
- User-supplied provider keys live in OS-secure storage, never in
clawnsole.json, and are uploaded only inside the passphrase-encrypted settings vault. They are never returned to the Electron renderer. An optional temporary iOS App Review fallback is compiled only by the local iOS build script, never written to local JSON, and never displayed in the app.
See Google Drive and encrypted settings sync.
flutter/lib/core/: provider contracts, pricing, models, gateways, and storagedocs/models/: discrete GitHub Pages provider/model YAML manifestsflutter/lib/app/: application state and compositionflutter/lib/ui/: shared responsive screens and widgetsflutter/tool/clawnsole_companion.dart: loopback web/API/media companionelectron/: macOS shell, packaging, checksum-verified GitHub updaterflutter/windows/: native Windows runner and product metadata.github/workflows/: PR checks plus parallel iOS, macOS, and Windows releases
Merging a PR with exactly one of major, minor, patch, or no-release
drives parallel iOS, macOS, and Windows release builds from one synchronized
release commit. macOS is signed and notarized; Windows is currently distributed
as an unsigned x64 ZIP. iOS is signed on an ephemeral GitHub-hosted Mac and
uploaded directly to App Store Connect. The IPA is never stored as an Actions
artifact or attached to the GitHub release, and the workflow does not wait for
Apple's asynchronous processing or review. A manual dispatch can cut a release,
retry the current synchronized version, or omit iOS when that exact build is
already present in App Store Connect.
Every surface checks for a newer stable release on startup and every 24 hours
while running. Native iOS reads the version Apple has actually published in the
App Store; the other surfaces read GitHub Releases. Packaged Electron builds
also expose Clawnsole → Check for Updates…; an accepted update downloads the
architecture-matched ZIP, verifies SHA256SUMS.txt, replaces the installed app
with rollback, and reopens it. Windows updates open the GitHub release for a
manual download, while iOS remains under normal App Store distribution
semantics.
See release setup and desktop updates.
Read the privacy policy, the terms of use, or their public web versions at Privacy and Terms. Use the issue tracker for support. Do not post API keys, private prompts, or personal media in a public issue.
cd flutter
dart format --output=none --set-exit-if-changed lib tool test
flutter analyze
flutter test
flutter build web
cd ../electron
npm testProvider contracts and fallback rates follow the official BFL video documentation, BFL Video Upscale documentation, LTX documentation, and Atlas Cloud video documentation, plus Runway’s model guide and pricing, and Krea’s API documentation. Atlas Cloud models are refreshed from its public catalog and Create-ready costs use schema-aware, no-charge request preflight when available. Runway’s guide is refreshed for new video model IDs; unfamiliar routes remain comparison-only until their request shape, limits, and rate are audited. Krea’s create-ready routes are read from its live OpenAPI spec, with other and legacy routes kept comparison-only, and its published per-request USD prices are used directly since Krea bills fixed USD amounts rather than credits. Equivalent routes retain provider-specific IDs while sharing a canonical comparison ID.
Catalog authoring, version bounds, and adapter compatibility are documented in
the model manifest guide. Builds read the public
CLAWNSOLE_SITE_URL setting from the environment or repository .env; the
checked-in .env.example and GitHub Actions use https://clawnsole.app/.


