Fable
iPhone'undan Mac'ini gerçekten yönet.
Ekran izleme değil — iş yaptırma.
iOS · SwiftUI
macOS · Python + Swift
Build 23
Temmuz 2026
Neden
Uzaktan erişim var; uzaktan çalışmak yok.
Mevcut araçlar Mac'in ekranını telefona yansıtır. Küçük ekranda pikselleri
kovalarsınız, terminal okunmaz, dosya taşımak ayrı bir uygulamadır, batarya erir.
Fable ekranı yansıtmaz — Mac'e iş yaptırır.
Sorun 01
Ekran yansıtma yetmiyor
VNC/uzak masaüstü küçük ekranda kullanılmaz. Terminal çıktısı okunmaz, tıklama isabet etmez.
Sorun 02
İş terminalde akıyor
Derleme, git, ajan oturumları hep terminalde. Uzaktan ihtiyaç duyulan tam olarak orası.
Sorun 03
Kurulum bir engel
VPN profilleri, port yönlendirme, sabit IP. Her biri "bugün bağlanamadım"ın bir sebebi.
Fable'ın cevabı: telefonda beş sekme — canlı ekran + dokunmatik kontrol,
kalıcı terminal oturumları, dosya aktarımı, uygulama yönetimi ve sesli asistan.
Hepsi tek bir HTTP ucundan, tek bir token'la.
Yetenekler
Telefondan Mac'in tamamı
Kontrol
Ekran + dokunmatik
Canlı ekran görüntüsü; tıklama, çift tıklama, sağ tık, sürükleme, kaydırma ve tam klavye.
Pencere yönetimi ve Spotlight araması dahil.
Terminal
Kalıcı oturumlar
tmux oturumları telefonla Mac arasında ortak — ANSI renkleriyle. Mac'te zaten açık
Terminal.app pencerelerini de görüp yazabilirsiniz.
Dosyalar
İki yönlü aktarım
Fotoğraf ve belge yükleyin, indirin, "yolu kopyala" ile doğrudan terminale yapıştırın.
Erişim ev dizinine hapsedilmiştir.
Uygulamalar
Süreç yönetimi
Açık uygulamaları listeleyin, öne getirin, gizleyin, kapatın; kurulu 87 uygulamadan
istediğinizi simgesiyle başlatın.
Asistan
Doğal dille komut
"ByBosnak'ı derle ve simülatörde aç" gibi cümleler. Beyin takılabilir: abonelik,
API anahtarı, yerel model — ya da hiç.
Live
Sesli sohbet
Konuşun, Mac cevaplasın — sizin klonlanmış sesinizle. Ses hiçbir buluta gitmez;
tanıma da sentez de Mac'te yerel çalışır.
Mimari
Tek sunucu, tek token, 25+ uç
İstemci
iPhone · Fable.app
- SwiftUI, 5 sekmeli arayüz
- Token Keychain'de saklanır
- Ekran yoklama 0,35 sn (boşta 1,2 sn)
- Live modda PCM akışını geldikçe çalar
HTTPSBearer token
Tailscale · Funnelya da tünel
Sunucu · port 5052
mac/fable-control.py
- Ekran — screencapture + sips → JPEG
- Giriş — fable-input (Swift, CGEvent)
- Uygulamalar — fable-apps (NSWorkspace)
- Terminal — pty + tmux + AppleScript
- Dosyalar — ev dizini altı, 200 MB sınır
- Beyin — takılabilir (POST /command)
Ses · port 5051
Yerel STT + TTS
- whisper.cpp large-v3-turbo
- Metal GPU üzerinde çalışır
- XTTS-v2 ses klonlama
- Parça parça akış üretimi
LaunchAgent sunucuyu açılışta başlatır ve çökerse toparlar; Mac'in başına
gitmeye gerek kalmaz. Mac'in internete açık tek bir portu yoktur — dışarı bakan
yüzey yalnızca kimlik doğrulamalı tünel/Funnel adresidir.
Ölçülmüş — tahmin değil
Hız, kararların sonucu
1,56 sn
Türkçe konuşma tanıma.
Neural Engine denendi, 2,97 sn çıktı — Metal GPU'da kalındı.
0,74 sn
Sesli yanıtın başlama süresi.
Tüm sesi beklemek yerine akış üretimi.
0,04 sn
Uygulama listesi.
AppleScript yolu 4,8 sn sürüyordu — 120× hızlanma.
~4.900
satır kaynak kod; sunucunun kendisi
1.143 satır, 25'ten fazla HTTP ucu.
Kanıt kültürü
Her hız kararı ölçümle alındı
Neural Engine, MPS ve dört ayrı TTS motoru denenip elendi; hangisinin neden elendiği
proje günlüğünde ölçüm sayılarıyla duruyor. "Muhtemelen daha hızlı" bir gerekçe sayılmadı.
Bilinen sınır
Dürüst liste tutulur
Kilit ekranında şifre yazılamaz (macOS Secure Input), Terminal.app pencerelerinde renk yoktur,
güvenlik diyalogları elle onaylanır. Bunlar gizlenmiyor — belgeleniyor.
Gizlilik ve güvenlik
Sesiniz Mac'ten çıkmaz
Konuşma tanıma da ses sentezi de Mac'te yerel çalışır. Buluta giden tek şey,
asistan kullanıldığında metindir — o da isteğe bağlıdır.
Kimlik
128 bit token
Her Mac kendi rastgele token'ını üretir. Telefonda Keychain'de tutulur, yedeklere düz metin gitmez.
Kaba kuvvet
Artan süreli blok
Sekiz yanlış denemeden sonra IP giderek uzayan sürelerle bloklanır.
Dosya sistemi
Ev dizini hapsi
Yol çözümlemesi ev dizini dışına çıkan her isteği reddeder; sistem dizinlerine erişim yok.
Taşıma
Uçtan uca şifreli
Tailscale WireGuard tüneli ya da TLS. Yönlendiricide açılmış tek bir port yok.
Ses
Tamamen yerel
whisper.cpp ve XTTS Mac'te çalışır. Ses kaydı hiçbir sunucuya yüklenmez.
İzinler
Elle onay şart
Ekran Kaydı ve Erişilebilirlik izinlerini kullanıcı fiziksel olarak verir — otomatikleştirilemez, bilinçli olarak.
Çözülen sorun · 24 Temmuz 2026
Telefonda VPN'e son
Bugünkü durum
İki yol vardı, ikisi de aynı gün kapandı
- Mac'te Tailscale kapalıydı —
100.85.192.85 ulaşılamaz.
- Yedek Cloudflare tüneli sessizce ölmüştü: süreç ayakta ama adres artık DNS'te bile yok
(günlükte 27.687 bağlantı hatası).
- Uygulama tek adres saklıyor; o adres düşünce B planı yok.
- iPhone'da Tailscale sürekli açık kalınca VPN tüneli batarya yiyordu.
Çözüm · Tailscale Funnel
Tailscale yalnızca Mac'te, telefonda hiçbir şey
- Sabit genel adres:
mac-adi.tailnet.ts.net — hiç değişmez.
- TLS sertifikası otomatik; alan adı, port yönlendirme, sabit IP gerekmez.
- iPhone her ağdan düz HTTPS ile bağlanır: VPN profili yok, batarya kaybı yok.
- Tailscale'in ücretsiz planına dahildir.
- Uygulamaya adres listesi + otomatik yedekleme eklenir: Funnel, Tailscale IP ve
yerel ağ adresi yarışır, ilk cevap veren kazanır.
Ek katman: Mac'te 60 saniyede bir genel adresi sınayan bir gözcü servis —
yol bozulursa kendisi onarır ve yeni adresi bildirir. Bir daha "bugün bağlanamadım" olmaz.
Erişilebilirlik
Claude aboneliği olmadan da çalışır
Uygulamanın yapay zekâ kullandığı yer yalnızca iki özellik:
Asistan sekmesi ve Live sesli sohbet. Ekran, terminal, dosyalar, uygulamalar ve tüm
uzaktan kontrol saf macOS'tur — hiçbir aboneliğe bağlı değildir.
| Kademe | Nasıl çalışır | Maliyet | Ne kaybedersiniz |
| Beyinsiz mod |
Uygulama tam bir uzaktan kumanda olarak çalışır; yapay zekâ sekmeleri gizlenir. |
Ücretsiz |
Asistan ve Live ses. Terminalden yine her şeyi elle yaparsınız. |
| Kendi API anahtarın |
Aynı kod yolu, abonelik yerine kullandıkça öde. Tek bir ortam değişkeni. |
Kullandıkça |
Hiçbir şey — tam kalite. Aylık taahhüt yok. |
| Yerel model |
Beyin arayüzü Ollama gibi yerel bir modele bağlanır; internet bile gerekmez. |
Ücretsiz |
Zekâ ve araç kullanımı belirgin düşer; bellek tüketir. |
| Terminal yolu |
Telefondaki tmux oturumunda kullanıcının Mac'inde ne kuruluysa onu çalıştırırsınız. |
Bize bağlı değil |
Yok — bu yol zaten hep açıktır. |
Uygulanacak değişiklik küçük: beyin bir ayar dosyasıyla seçilir
(yok · abonelik · API · yerel), sunucu yeni bir /capabilities ucundan hangi
özelliklerin açık olduğunu bildirir, iOS arayüzü sekmeleri buna göre gösterir.
Böylece paylaşılan her kurulum, kullanıcının bütçesine göre kendini ayarlar.
Yol haritası
Kişisel araçtan ürüne
Şimdi · günler
Bağlantıyı sağlamlaştır
- 01Tailscale Funnel'ı aç, sabit adrese geç.
- 02Uygulamada çoklu adres + otomatik yedekleme.
- 03Ölü Cloudflare tünelini kapat, gözcü servisi kur.
- 04Beyin seçimi + /capabilities ucu.
- 05Wi-Fi ↔ hücresel geçişinde isteği yeniden dene.
Sonra · haftalar
Kurulumu herkese aç
- 06Mac tarafını menü çubuğu uygulamasına paketle.
- 07İzin sihirbazı: ekran kaydı ve erişilebilirlik adım adım.
- 08QR ile eşleştirme — adres ve token elle yazılmasın.
- 09Uzun işler bitince telefona bildirim.
- 10Pano senkronu: Mac ↔ iPhone kopyala-yapıştır.
Ufuk · aylar
Ürünleşme
- 11Developer ID imzası ve notarizasyon.
- 12TestFlight harici test → App Store.
- 13Ses klonlamayı ticari lisanslı motora taşı.
- 14Ekran görüntüsü yerine video akışı.
- 15Kilit ekranı için VNC istemcisi.
Özet
Mac'i cebe
sığdırmak.
Fable çalışan bir sistem: sunucu Mac'te açılışta kendiliğinden kalkıyor, telefonda beş sekme,
ölçülmüş gecikmeler ve dürüstçe yazılmış bir sınırlar listesi. Sıradaki iş bağlantıyı
kırılmaz hale getirmek ve kurulumu herkesin yapabileceği kadar basitleştirmek.
Telefonda VPN yok
Abonelik şart değil
Ses cihazdan çıkmaz