Skip to content

Latest commit

 

History

69 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Floatick floating workspace for macOS with Todo, Doing, deadlines, reminders, and quick notes

Floatick — Floating Todos and Notes for macOS

An open-source, local-first macOS app for lightweight tasks and notes.

Capture tasks and thoughts one click away—without an account or cloud service.

CI status macOS 10.15 or later Flutter 3.44.7 MIT license

English · 简体中文

Floatick is an offline-friendly desktop todo and quick notes app that rests above your workspace as a small, draggable icon. Click it and the icon expands into a focused panel; collapse it and the icon returns to the same anchor. The panel chooses its expansion direction from the available screen space, so it stays useful near any display edge. Tasks move through a deliberately small flow—Todo, Doing, and Done—with optional deadlines and quiet in-app reminders.

A focused macOS space for tasks and notes

  • Always within reach — drag the floating icon anywhere, then click to open.
  • Fast task flow — create, edit, complete, search, archive, restore, and organize tasks in automatic daily sections.
  • Visible focus — mark the task you are actively working on as Doing, give it a calm visual emphasis, and filter the list to active work.
  • Deadlines without noise — set a due time while creating or editing a todo, or directly from the list; Floatick surfaces a compact in-app reminder and keeps overdue tasks visible without relying on system notifications.
  • Lightweight quick notes — capture ideas, logs, and snippets grouped by date, with search, pinning, archiving, shared tags, autosave, and Markdown preview.
  • Shared organization — reuse color-coded tags across todos and notes, combine filters, and copy a complete todo as Markdown.
  • Local by default — no account, cloud service, or telemetry. Your todo and note data remains in ~/.floatick.
  • Made for macOS — transparent AppKit window behavior, keyboard shortcuts, context-menu Quit, and support for Reduce Motion.
  • Comfortable in any workspace — system, light, and dark themes with English and Simplified Chinese.
  • Built-in updates — automatic and manual update checks powered by Sparkle.

Download Floatick for macOS

Download the latest DMG from GitHub Releases, open it, and drag Floatick into Applications. Release packages are universal binaries for both Apple silicon and Intel Macs.

A quick first-launch note

Floatick is still an early preview and current downloads are not yet signed and notarized with an Apple Developer ID. macOS may ask for one extra confirmation the first time you open it:

  1. Try to open Floatick once.
  2. Open System Settings → Privacy & Security.
  3. Find Floatick in the Security section and choose Open Anyway.
  4. Confirm Open.

This confirmation is normally needed only once. For more detail, see Apple's guide to opening an app from an unidentified developer. Only download Floatick from this repository's Releases page.

Everyday use

Action How
Reposition Floatick Drag the floating icon
Open Floatick Click the floating icon
Collapse the panel Click the collapse button or press Esc
Create a todo Press ⌘N, or use the input at the top
Switch between todos and notes Use the tabs at the top of the panel
Create a note Open Notes and choose New
Search the current workspace Press ⌘F
Edit a todo Hover over the item and choose Edit
Start or stop Doing Hover over a todo and use its play control
Show only active work Use the Doing filter beside search
Set or edit a deadline Use the alarm control on a todo row or in the todo editor
Complete a todo Select its checkbox
Archive or restore Use the action at the end of the item
Quit Floatick Right-click the floating icon and choose Quit

Local data and privacy

Floatick creates its working directory on first launch:

Path Purpose
~/.floatick/todos.json Todos, Doing/completion state, deadlines, reminders, and archive state
~/.floatick/notes.json Notes, tags, pinning, and archive state
~/.floatick/tags.json Reusable tags shared by todos and notes
~/.floatick/settings.json Theme and language preferences

Sparkle stores the automatic-update preference in standard macOS application preferences. Floatick does not require an account and does not upload your todo or note data. Network access is used only to check for and download application updates.

Development

Requirements

  • macOS 10.15 or later
  • Flutter 3.44.7
  • A complete Xcode installation

Run locally

flutter pub get
flutter run -d macos

If Flutter cannot find Xcode, finish Xcode's first-launch setup:

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch

Verify a change

dart format --output=none --set-exit-if-changed lib test integration_test
flutter analyze
flutter test
tool/test/run_ui_tests.sh
flutter build macos --release

The release app is written to build/macos/Build/Products/Release/Floatick.app. See the testing guide for the automated user journeys and the macOS system boundaries that remain in Draft acceptance.

Project structure

lib/
  app/          App composition and themes
  core/         Shared platform, storage, and UI primitives
  features/     Todo, notes, settings, and update features
  l10n/         English and Simplified Chinese resources
macos/Runner/   AppKit window shell and Sparkle integration
test/           Repository, ViewModel, and widget tests
integration_test/ Real-engine macOS user journeys
tool/           Icon and release tooling

Flutter owns product UI and state. A small AppKit shell owns macOS-specific window behavior and Sparkle. Product data never crosses the platform channel. See Architecture for the dependency boundaries.

Development and release model

flowchart LR
    A["feature/* or fix/*"] --> B["Pull request"]
    B --> C["main"]
    C --> D["release/x.y.z"]
    D --> E["Private Draft candidate"]
    E --> F["Manual acceptance"]
    F --> G["vX.Y.Z + production approval"]
    G --> H["Public Release + Sparkle appcast"]
Loading

Daily work reaches main through pull requests. A release/x.y.z branch builds a private Draft candidate for manual testing. A stable vX.Y.Z tag promotes the exact accepted DMG after production approval; the release workflow does not rebuild it.

Read the development and release workflow before preparing a release.

Contributing

Issues and focused pull requests are welcome. Please keep changes scoped, add tests for meaningful behavior, and preserve the local JSON data contract.

License

Floatick is available under the MIT License.

© 2026 lucaslushuo

Releases

Packages

Contributors

Languages