Sign in

Manuel Kehl

@manuelkehl.bsky.social
2.2K followers 906 following 355 posts

iOS/macOS/watchOS indie dev currently building @zenitizer.bsky.social Previously worked at a Cupertino-based fruit supplier 🍎

PostsRepliesMedia
Manuel Kehl @manuelkehl.bsky.social · 11/10/2026
When adapting your app designs for #iPhoneDuo, don't forget the onboarding. First impressions matter (in all poses) Best to use the extra space for meaningful per-step info/visuals, but simply keeping the initial welcome screen on the split looks better than "empty space" IMO #iOSDev #AppDesign
A screenshot of the onboarding for Daylish on the iPhone Duo in the partially opened inner display split view mode. On the left hand side, you see the Welcome to Daylish screen with the app icon, while the actual onboarding step-by-step is happening on the right.
1120
Manuel Kehl @manuelkehl.bsky.social · 07/10/2026
IDK maybe the prompt included "insert deliberate typos every 10 slides to make it look more human" 🫠
000
Manuel Kehl @manuelkehl.bsky.social · 07/10/2026
Wrapping up the final work to get @zenitizer.bsky.social and @DaylishApp into good shape for the #iPhoneDuo workshop here in #Berlin tomorrow! It's like back in uni: finishing course work last minute, fueled by Club-Mate 😅 Actually haven't had Mate in ages, but you know: when in Rome... #iOSDev
A picture of me looking excitedly into the camera holding up a bottle of Club-Mate and wearing a t-shirt that shows the text are you stressed with the options yes and no and no being crossed over aggressively with a red pen.A photo of the desk at the coworking space where I'm at in Berlin showing Zenitizer on the iPhone Duo simulator on my Mac, a bottle of Club-Mate, an empty coffee cup and my headphones on the desk
050
Manuel Kehl @manuelkehl.bsky.social · 06/10/2026
I am SO locked in! Working from a train is so much fun 😁 Also, a pretty cool demo case for nested timeline items in @daylish.bsky.social 😏
A screenshot of my daily timeline in Daylish with the train journey and an embedded focus timer session
000
Manuel Kehl @manuelkehl.bsky.social · 06/10/2026
Super hyped as I'm getting ready to travel to Berlin for the #iPhoneDuo workshop 🚀 Will be attending the workshop on Thursday, but already in town today. LMK if you want to hang out with a few #iOSDev folks for dinner or drinks on Wednesday evening somewhere in #Berlin Mitte 🤓
A screenshot of my travel plan shown as a timeline in Daylish app. The first step is Get ready for Journey, followed by "Walk to Train Station" and then different train connections to Berlin
030
Manuel Kehl @manuelkehl.bsky.social · 29/09/2026
Not sure what to make of it. Guess my subconscious is just very excited to attend the #iPhoneDuo workshop in Berlin soon 🤓 Btw. any iOS dev folks want to meet for dinner/drinks around Berlin Mitte on the evening of the 7th or 8th? Please say hi, I'd love to connect 👋
000
Manuel Kehl @manuelkehl.bsky.social · 29/09/2026
Woke up to the weirdest #iOSDeveloper dream: At the #iPhoneDuo workshop I asked an Apple engineer about a hidden API and they escorted me into a backroom to undergo the #Severance procedure so my "innie" can implement the feature without my "outie" knowing the hidden API 😅
120
Manuel Kehl @manuelkehl.bsky.social · 17/09/2026
Super cool: In the Apple Developer Group Lab they just confirmed that apps using AlarmKit will also get the "iPhone Duo standing folded like a tent with glowing light fading in as the alarm is about to ring" mode Got a bunch of exciting ideas for @daylish.bsky.social based on this 🤓
020
Manuel Kehl @manuelkehl.bsky.social · 16/09/2026
I always found that term really confusing. There was an situation back in uni when I used it thinking it means "hang out and watch a movie" and its actual meaning would've been highly inappropriate 🙈 Luckily, the person had a great sense of humor and pointed out what it actually means 😅
010
Manuel Kehl @manuelkehl.bsky.social · 15/09/2026
Seeing @zenitizer.bsky.social featured this prominently on the App Store is such an honor! 🥹💙 Big thanks to the #AppStore team for this opportunity and to @yanlu.chat for designing such beautiful promo artwork once again 🙏
A screenshot of the App Store app on my iPhone showing a prominent featuring for Zenitizer with a beautiful promo artwork and the text “Take a Deep Breath In…and Out - Explore Zenitizer’s new updates”
041
Manuel Kehl @manuelkehl.bsky.social · 11/09/2026
Here's a fun little demo of me using the new Siri AI to manage my calendar with @daylish.bsky.social on #iOS27 🍿
001
Manuel Kehl @manuelkehl.bsky.social · 09/09/2026
Getting all hyped up for the #AppleEvent  🍿
A screenshot of my timeline in the Daylish app showing a preparation block for the Apple event, the Apple event itself, and afterwards a block for submitting the iOS 27 updates of my apps.
010
Reposted by Manuel Kehl
Zenitizer App @zenitizer.bsky.social · 08/09/2026
Zenitizer is ready for #iOS27 with a fresh, fully responsive UI, new extra large widgets and #Siri AI support. This update should be available as soon as iOS 27 is out. In the meantime, you can already get a sneak peek here:
youtube.com
Before you continue to YouTube
001
Manuel Kehl @manuelkehl.bsky.social · 01/09/2026
Exactly! The agent can chose which one to consult. For simple "navigate to this this screen, bush this button" screenshot is just waste of tokens and often less precise but for visual verification they're the right tool. Good to have both 🤓
100
Manuel Kehl @manuelkehl.bsky.social · 01/09/2026
The trickiest bit is that I run pi inside a gondolin microvm for security and that completely shields it from my hosts file system. Solved this with a little PI extension that mounts the MCP output inside gondolin and transparently rewrites the paths in tool outputs to point there.
110
Manuel Kehl @manuelkehl.bsky.social · 01/09/2026
The official Xcode MCP server outputs both UI snapshots based on accessibility API captures as well as screenshots into the file system, and outputs the paths. Then agents can simply read that. So from that point, it just depends on the instructions given to the agent via skills, etc.
251
Manuel Kehl @manuelkehl.bsky.social · 31/08/2026
But now I first need to get those iOS27 updates for @zenitizer.bsky.social and @daylish.bsky.social ready 😅
020
Manuel Kehl @manuelkehl.bsky.social · 31/08/2026
I'm planning to! Maybe even a little video with demo and explanations! 😁
100
Manuel Kehl @manuelkehl.bsky.social · 31/08/2026
Hah! Reminds me of this: arstechnica.com/gadgets/2022/... > So Google Duo is being rebranded to Google Meet, and the existing Google Meet app is sticking around for a bit. That means there are now two apps called "Google Meet." Google has a help article detailing this extremely confusing situation,
010
Manuel Kehl @manuelkehl.bsky.social · 31/08/2026
As a parent of a toddler, I am *so* annoyed by these messages 😭 "You score is lower because you woke up multiple times" YEAH NO SHIT - if only I had known in advance that NOT waking up multiple times per night will lead to more restful sleep… Will definitely take that into account next time!
120
Manuel Kehl @manuelkehl.bsky.social · 31/08/2026
So cool that Ghostty, herder.dev and pi.dev all support the kitty graphics protocol! My agent can render #Xcode previews through MCP and I see the results in real time right in the terminal. Makes iterating over multiple Dynamic Type sizes and polishing the UI super smooth! #iOSDev #herdr
A screenshot showing multiple pi agents running in herdr. The rightmost herdr pane has a Coder Sidekick agent, which is calling Xcode MCP tools to render SwiftUI previews, and they show up in the terminal pane right between the text output. In this particular screen you can see a Zenitizer widget with meditation stats for the last 7 days.
2121
Manuel Kehl @manuelkehl.bsky.social · 28/08/2026
It's a third party app called CodexBar, which (despite the name) doesn't only show remaining codex usage but supports all sorts of inference providers: codexbar.app
120
Manuel Kehl @manuelkehl.bsky.social · 27/08/2026
Automatic hotspot (📱⇢💻) is pure Apple magic IMO I am sitting in my car (parked! don't worry 😅) with time to kill, so I pull out my MBP to get some work done. Without even thinking about it, I'm online. Just like that. Small feature but makes such a difference!
A screenshot showing my menu bar with a number of app icons and the personal hotspot icon for my wifi indicator. The wifi menu is open and shows iphone319 connected as personal hotspot
170
Manuel Kehl @manuelkehl.bsky.social · 26/08/2026
If you're an #iOSDev and not already using www.xcodes.app/ do yourselves a favor and install it right now. It is by far the smoothest way to download and manage installed Xcode versions - especially during a hot beta period like this!
A screenshot of Xcodes app showing in-progress installation of Xcode 27 Beta 6
091
Manuel Kehl @manuelkehl.bsky.social · 25/08/2026
I'm curious to hear how to saga ends! C'mon Marco join the dark side of home automation - we have cookies 😈
010
Manuel Kehl @manuelkehl.bsky.social · 25/08/2026
I'm not even a minute into the latest @atp.fm episode but I just exclaimed and cheered out loud along with @liss.bsky.social when @marcoarment.bsky.social said he'd possibly be finally looking into home assistant haha 😆 (I'm at the gym right now and people give me weird looks 🫣 🤷‍♂️ )
Screen shot of overcast on my lock screen showing 0:45 played of the latest ATP episode.
120
Manuel Kehl @manuelkehl.bsky.social · 08/08/2026
Full disclosure: I'm posting this as I'm procrastinating filling out the nominations for @zenitizer.bsky.social and @daylish.bsky.social 😅
020
Manuel Kehl @manuelkehl.bsky.social · 08/08/2026
📢 PSA: if you're an indie #iOSDev working on #iOS27 features and want to maximize your chances of getting featured on the #AppStore this fall, fill out a nomination soon if you haven't already! (iOS27 launch likely mid September, nomination at least 3 weeks in advance!)
171
Manuel Kehl @manuelkehl.bsky.social · 08/08/2026
If I ever do end up running it for an extended transcription session, I will try to remember to let you know how it goes for me though 😉
010
Manuel Kehl @manuelkehl.bsky.social · 08/08/2026
Yes, the programmer jargon is a big deal! I built up quite a big replacement dictionary in Superwhisper over time so most terms will get replaced before they're pasted into the target app, but I've noticed that Cohere handles a lot out of the box during transcription, rather than post-processing!
020
Manuel Kehl @manuelkehl.bsky.social · 08/08/2026
It's usually me either dictating messages or emails or input for a coding agent of sorts. In all cases I'll usually use push to talk and release after a sentence or two to insert text and then continue So RAM use has luckily never been a problem for me with any model in practice…
100
Manuel Kehl @manuelkehl.bsky.social · 08/08/2026
Tbh. I think my use cases are wildly different because I never needed to use it for long recordings in the order of magnitude you mentioned… The most I will be talking in one go is is a couple minutes (if at all!) and normally just one or a few sentences at once.
100
Manuel Kehl @manuelkehl.bsky.social · 08/08/2026
Wow, I gotta say that #Cohere Transcribe has completely dethroned Parakeet for multi-lingual dictation for me. It transcribes English and German perfectly and instantly running completely locally on my M1 Max MacBook Pro. Quality and speed you'd only get with cloud models before 🤯
3161
Manuel Kehl @manuelkehl.bsky.social · 06/08/2026
I know, right? It does make me a little nervous since we're already into August now at this point, this is not beta one or two anymore. 🫠😭
000
Manuel Kehl @manuelkehl.bsky.social · 06/08/2026
Fighting all day to get @zenitizer.bsky.social to play nicely with #SiriAI. All this worked so well with "Old Siri" via #Shortcuts / #AppIntents but this is a lot trickier 😞 At least querying, playing and stopping meditations through media playback schema works now 😅 #iOSDev #iOS27 #Siri
180
Manuel Kehl @manuelkehl.bsky.social · 02/08/2026
Yep, 100% agreed! One of the things I dislike most about working with LLMs as opposed to writing code myself is when they try to be "clever" in any way 😅 I also have rules about not trying to work around encountered workflow problems in creative ways, but failing "loud and early" instead…
030
Manuel Kehl @manuelkehl.bsky.social · 02/08/2026
Definitely an incredible open-weight model that I'm excited to use, but the comparison with Luna seemed interesting as they have similar strengths (and costs) on paper. I just really don't like models ignoring instructions and trying to be "clever", so Luna wins this round 🤓
000
Manuel Kehl @manuelkehl.bsky.social · 02/08/2026
3️⃣ I also have a rule to give short replies in "emoji bullet" style for quick visual parsing. Luna does this better than any other model of its class I tried in the last couple weeks, while #DeepSeek v4 Flash's replies are often unnecessarily verbose and use "emoji bullets" inconsistently.
100
Manuel Kehl @manuelkehl.bsky.social · 02/08/2026
I had to nudge #DeepSeek v4 Flash twice before it even admitted that it jumped the gun on the implementation. When I did, it explained that it was a small edit it could do itself. While that's true, it's still an example of ignoring explicit instructions and adding friction.
100
Manuel Kehl @manuelkehl.bsky.social · 02/08/2026
2️⃣ Which brings me to the second violation: both were operating as my main "Chat" agent, which is NEVER supposed to edit code/scripts directly. Changes must go through a secondary "Coder" agent running in a herdr.dev split pane. Luna did this while #DeepSeek v4 Flash tried to edit directly!
herdr.dev
Herdr: one terminal for the whole herd
To coding agents what tmux is to terminals. Runs where your agents run: close the laptop, ssh from anywhere, nothing dies.
210
Manuel Kehl @manuelkehl.bsky.social · 02/08/2026
1️⃣ I have a skill that agents need to load whenever tweaking anything related to OpenCode: settings, AGENTS.md, skills... #OpenCode Tasked with modifying an OpenCode-related helper script, Luna loaded the skill first, while #DeepSeek v4 Flash jumped ahead and edited right away...
agents.md
AGENTS.md
AGENTS.md is a simple, open format for guiding coding agents. Think of it as a README for agents.
100
Manuel Kehl @manuelkehl.bsky.social · 02/08/2026
As excited as I am about the latest #DeepSeek v4 Flash release, I've been comparing it to GPT 5.6 #Luna, and I gotta say I prefer Luna's output style and instruction-following in the personal use cases I've tested head-to-head: 3 practical examples 🧵👇
110
Manuel Kehl @manuelkehl.bsky.social · 28/07/2026
idk man. I get what you're saying but I'm getting so much value out of our Blorp Pro Max Family plan, so I don't think we'll be cancelling it anytime soon even though I hardly ever log into Blorp itself these days 🤷‍♂️
110
Manuel Kehl @manuelkehl.bsky.social · 28/07/2026
Yeah that's probably true. True independence comes from running it in your own basement but being able to choose inference providers freely rather than being locked in to one or two proprietary frontier model providers definitely feels like a good and very pragmatic middle ground.
011
Manuel Kehl @manuelkehl.bsky.social · 23/07/2026
Lots of folks are discussing agentic coding, but I didn't see much talk about open models and harnesses in my timeline, so as I keep experimenting and making mistakes, I'll probably share tips and learnings (with a focus on indie #iOSDev). Would you be interested in that or not?
261
Manuel Kehl @manuelkehl.bsky.social · 23/07/2026
What has me most excited though is the flexibility: Inference feels like a utility now! Once you know which harness and models work well for your use cases you can switch providers the same way you change your gas or electricity company. That's the real game changer IMO 💡
110
Manuel Kehl @manuelkehl.bsky.social · 23/07/2026
The models are really solid at a fraction of the cost. For most of my work, I honestly can't tell the difference between Opus and GLM 5.2. I'm deeply involved in design and architecture though and I review all code, so maybe Fable/Sol are better if you're more "hands off"?
110
Manuel Kehl @manuelkehl.bsky.social · 23/07/2026
My first month of dabbling in the wild world of open weight models (and #OpenCode as my new coding harness of choice) has come to an end and I'm sold! Been a Max subscriber since Claude Code came out and this is the first time I felt confident to cancel it. #iOSDev #AI
180
Manuel Kehl @manuelkehl.bsky.social · 16/07/2026
And the journey continues for another year 🚀 #iOSDev
A screenshot of email app window on macOS showing the beginning of a Apple Developer Program renewal notice. It is addressed to Manuel.
091
Manuel Kehl @manuelkehl.bsky.social · 09/07/2026
Sweet, thanks! That's what I was hoping to hear! Downloading Beta 3 right now 🚀
000