Wróć do portfolio

Open-source macOS devtool

cmdFlow

Aplikacja macOS, która przepuszcza tekst ze schowka przez model AI pod globalnym skrótem — on-device przez Apple Foundation Model albo przez OpenRouter/OpenAI.

Podgląd projektu

Okno ustawień cmdFlow z wyborem backendu AI i akcjami.

Ustawienia

Backend AI (Apple / fallback / chmura), providerzy OpenRouter i OpenAI oraz akcje ze skrótami.

Lista akcji cmdFlow ze skrótami globalnymi i promptami.

Akcje

Każda akcja ma własny globalny skrót i prompt — np. tłumaczenie i poprawa gramatyki.

Opis

cmdFlow powstał z prostej irytacji: ciągle kopiuję jakiś fragment i chcę go szybko przerobić — przetłumaczyć, poprawić gramatykę, streścić — bez wklejania do ChatGPT i przełączania okien. Naciskam skrót, tekst ze schowka idzie przez mój prompt do modelu, a wynik wraca do schowka.

Problem

Szybkie przetwarzanie tekstu wymaga zwykle przełączenia się do osobnego czatu, wklejenia, poczekania i skopiowania wyniku z powrotem. Przy dziesiątkach małych operacji dziennie to realny koszt uwagi.

Hipoteza produktowa

Jeśli transformacja tekstu jest jednym globalnym skrótem, a wynik od razu ląduje w schowku, praca z tekstem robi się natychmiastowa i nie wybija z kontekstu.

Co zbudowałem

  • Globalne skróty przez Carbon, bez uprawnień Accessibility.
  • Wiele akcji, każda z własnym skrótem i promptem.
  • Backend on-device: Apple Foundation Models (SystemLanguageModel).
  • Providerzy chmurowi OpenRouter i OpenAI na własnym kluczu API (Keychain), z wyszukiwarką modeli.
  • Tryb Apple + automatyczny fallback do chmury, uruchamianie przy logowaniu, animowany recorder skrótów.

Warstwa AI

Rdzeniem jest Apple Foundation Model działający lokalnie na Macu. W testach wyszło konkretne ograniczenie: model odrzuca polski tekst wejściowy (guardrail unsupportedLanguageOrLocale). Dlatego dołożyłem providerów chmurowych i automatyczny fallback — prywatnie on-device tam, gdzie się da, chmura tam, gdzie trzeba.

Architektura

Swift, SwiftUI (MenuBarExtra), FoundationModels, Carbon HotKey, NSPasteboard, Keychain i SMAppService. Pakiet SPM składany do .app skryptem, CI i release przez GitHub Actions na macos-26 (DMG + ZIP).

Kluczowe decyzje

  • On-device i prywatność jako domyślny tryb, chmura jako świadomy wybór.
  • Providerzy chmurowi na kluczu użytkownika zamiast własnego backendu i kosztów.
  • Bez .xcodeproj — pakiet SPM składany do .app, żeby repo było czyste dla open source.
  • Uczciwie udokumentowane ograniczenie polskiego zamiast udawania, że go nie ma.

Efekt / dowód

Publiczny projekt open-source z releasami na GitHubie (DMG/ZIP), landingiem na Vercel i trzema wymiennymi backendami AI.

Co dalej

Landing page z v0, gotowy zestaw akcji na start oraz ewentualnie podpis i notaryzacja, gdy pojawi się Apple Developer Account.

Kontakt

Zamieńmy pomysł w pierwszą wersję produktu

Napisz, jeśli potrzebujesz MVP, aplikacji mobilnej, devtoolu albo narzędzia z AI, które ma rozwiązać konkretny problem. Najlepiej pracuje mi się tam, gdzie liczą się szybkie decyzje i działający efekt.

Napisz do mnie