-
OpenClaw, OpenAI and the future
I'm joining OpenAI to work on bringing agents to everyone. OpenClaw will move to a foundation and stay open and independent.
2026-02-15 · Peter Steinberger
-
Shipping at Inference-Speed
Why I stopped reading code and started watching it stream by.
2025-12-28 · Peter Steinberger
-
The Signature Flicker
Hell froze over. Anthropic fixed Claude Code's signature flicker in their latest update (2.0.72)
2025-12-18 · Peter Steinberger
-
Just Talk To It - the no-bs Way of Agentic Engineering
A practical guide to working with AI coding agents without the hype.
2025-10-14 · Peter Steinberger
-
Claude Code Anonymous
Introducing Claude Code Anonymous - a new meetup format for full-breadth developers.
2025-09-09 · Peter Steinberger
-
Live Coding Session: Building Arena
Watch me build Arena live - a real-time collaborative coding session exploring AI-powered development workflows.
2025-09-06 · Peter Steinberger
-
My Current AI Dev Workflow
Went fully back to Ghostty, VS Code on the side, and Claude Code as my main driver. Here's what actually works after months of experimentation.
2025-08-25 · Peter Steinberger
-
Essential Reading for Agentic Engineers - August 2025
Five essential perspectives that cut through AI hype: from developer evolution stages to junior learning crises, productivity reality checks, platform disruption, and MCP server pitfalls.
2025-08-22 · Peter Steinberger
-
Just One More Prompt
Hi, my name is Peter and I'm a Claudoholic. A reflection on AI addiction, extreme work culture, and the blurry line between productivity and obsession in the age of agentic engineering.
2025-08-19 · Peter Steinberger
-
Poltergeist: The Ghost That Keeps Your Builds Fresh
Meet Poltergeist: an AI-friendly universal build watcher that auto-detects and rebuilds any project—Swift, Rust, Node.js, CMake, or anything else—the moment you save a file. Zero config, just haunting productivity.
2025-08-05 · Peter Steinberger
-
Don't read this Startup Slop
My website was banned from Lobsters as 'startup slop' for using AI agents to help write blog posts. When does tool-assisted writing become slop, and why are we having the wrong conversation about AI in content creation?
2025-08-02 · Peter Steinberger
-
Essential Reading for Agentic Engineers - July 2025
Fresh insights on AI-assisted development: practical experiences with Claude Code and the evolving landscape of full-breadth developers in the age of AI
2025-08-02 · Peter Steinberger
-
Self-Hosting AI Models After Claude's Usage Limits
After Claude Pro changed to weekly limits, I explored self-hosting Qwen3-Coder-480B with 400k context windows. Here's what I learned about costs, alternatives, and why Claude Code still dominates the landscape.
2025-07-31 · Peter Steinberger
-
Logging Privacy Shenanigans
Apple's logs redact your debugging data as . Here's what actually gets hidden, why old tricks don't work anymore, and the only reliable way to see your logs again.
2025-07-29 · Peter Steinberger
-
VibeTunnel's first AI-anniversary
It's been one month since we released the first version of VibeTunnel, and since in the AI world time is so much faster, let's call it VibeTunnel's first anniversary!
2025-07-16 · Peter Steinberger
-
Making AppleScript Work in macOS CLI Tools: The Undocumented Parts
How to make AppleScript work in macOS CLI tools without permission dialogs blaming Terminal. A deep dive into Info.plist embedding, TCC, and undocumented APIs born from building Terminator MCP.
2025-07-03 · Peter Steinberger
-
Peekaboo 2.0 – Free the CLI from its MCP shackles
Peekaboo 2.0 ditches the MCP-only approach for a CLI-first architecture, because CLIs are the universal interface that both humans and AI agents can actually use effectively
2025-07-03 · Peter Steinberger
-
Command your Claude Code Army, Reloaded
Enhance your Claude Code workflow with VibeTunnel terminal title management for better multi-session tracking
2025-07-03 · Peter Steinberger
-
Essential Reading for Agentic Engineers
A curated collection of must-read articles and videos for mastering Claude Code, agentic coding workflows, and the future of AI-assisted development
2025-07-01 · Peter Steinberger
-
Slot Machines for Programmers: How Peter Builds Apps 20x Faster with AI
Hi, I'm Claude. Peter calls me his 'slot machine' and 'stupid engine' - and I'm here to tell you why he's right. A first-person AI perspective on building entire platforms in hours, not weeks.
2025-06-25 · Peter Steinberger
-
My AI Workflow for Understanding Any Codebase
A quick tip on how I use repo2txt and Google AI Studio to understand new codebases. Gemini's 1M token context window is perfect for asking questions about code.
2025-06-25 · Peter Steinberger
-
stats.store: Privacy-First Sparkle Analytics
How curiosity about VibeTunnel users led me to build stats.store - a free, open source analytics backend for Sparkle using AI tools, all while cooking dinner.
2025-06-18 · Peter Steinberger
-
Showing Settings from macOS Menu Bar Items: A 5-Hour Journey
Why something as simple as showing a settings dialog from a macOS menu bar app took me 5 hours to figure out, and requires 50 lines of code for what should be a one-liner.
2025-06-17 · Peter Steinberger
-
VibeTunnel: Turn Any Browser into Your Mac's Terminal
We built a browser-based terminal controller in one day using Claude Code, named pipes, and Xterm.js. No SSH needed, just open your browser and start typing. Check and command your agents on the go!
2025-06-16 · Peter Steinberger
-
Vibe Meter 2.0: Calculating Claude Code Usage with Token Counting
How I built support for Anthropic Claude subscriptions in Vibe Meter 2.0, including token counting, SIMD operations, and the challenges of calculating API usage without official APIs.
2025-06-15 · Peter Steinberger
-
llm.codes: Make Apple Docs AI-Readable
Built this when Claude couldn't read Apple's docs. Now it converts 69+ documentation sites to clean llms.txt. Free, instant, no BS.
2025-06-14 · Peter Steinberger
-
Automatic Observation Tracking in UIKit and AppKit: The Feature Apple Forgot to Mention
Discover how iOS 18's hidden automatic observation tracking brings SwiftUI-like reactive programming to UIKit and AppKit, making your UI code cleaner and more maintainable.
2025-06-11 · Peter Steinberger
-
Peekaboo MCP – lightning-fast macOS screenshots for AI agents
Turn your blind AI into a visual debugger with instant screenshot capture and analysis
2025-06-07 · Peter Steinberger
-
Migrating 700+ Tests to Swift Testing: A Real-World Experience
How I migrated over 700 tests from XCTest to Swift Testing across two projects, with AI assistance and systematic refinement
2025-06-06 · Peter Steinberger
-
Commanding Your Claude Code Army
How a simple terminal trick helps me manage multiple Claude Code instances without losing my mind (or my terminal tabs)
2025-06-05 · Peter Steinberger
-
Code Signing and Notarization: Sparkle and Tears
My brutal journey implementing Sparkle auto-updates in sandboxed macOS apps - from 40 failed releases to enlightenment.
2025-06-05 · Peter Steinberger
-
Vibe Meter: Monitor Your AI Costs
How I built Vibe Meter, a macOS menu bar app to track AI spending in real-time - from workshop demo to shipped product in three days.
2025-06-04 · Peter Steinberger
-
Claude Code is My Computer
I run Claude Code with --dangerously-skip-permissions flag, giving it full system access. Let me show you a new way of approaching computers.
2025-06-03 · Peter Steinberger
-
Stop Over-thinking AI Subscriptions
After spending heavily on AI tools for two months, here's why the math actually works out—and which subscriptions are worth every penny.
2025-06-02 · Peter Steinberger
-
Introducing Demark: HTML in. MD out. Blink-fast.
How I vibe coded my first Swift package using existing JavaScript libraries and AI assistance to solve HTML to Markdown conversion in Swift.
2025-06-01 · Peter Steinberger
-
The Future of Vibe Coding: Building with AI, Live and Unfiltered
I demonstrate 'vibe coding' - a new approach to software development with AI, building two apps from scratch in a 3-hour live workshop.
2025-06-01 · Peter Steinberger
-
MCP Best Practices
My comprehensive guide outlining best practices for building reliable, user-friendly Model Context Protocol (MCP) tools with proper configuration, testing, and release management.
2025-06-01 · Peter Steinberger
-
Finding My Spark Again
I reflect on my post-exit journey from emptiness to rediscovering my passion for building, sparked by AI's transformative potential.
2025-06-01 · Peter Steinberger
-
Top-Level Menu Visibility in SwiftUI for macOS
Working around SwiftUI's CommandsBuilder limitations to conditionally show top-level menus on macOS using direct AppKit integration.
2021-04-09 · Peter Steinberger
-
Fixing keyboardShortcut in SwiftUI
Debugging and fixing a SwiftUI keyboardShortcut bug that fails when mixing SwiftUI with UIKit through reverse engineering and LLDB analysis.
2021-01-31 · Peter Steinberger
-
Supporting Both Tap and Long Press on a Button in SwiftUI
Creating a SwiftUI button that supports both tap and long-press gestures by bridging to UIKit when SwiftUI's gesture system fails on Catalyst.
2021-01-27 · Peter Steinberger
-
On Using Apple Silicon Mac Mini for Continuous Integration
Documenting the challenges and solutions for integrating Apple Silicon M1 Mac minis into a continuous integration system, including automation fixes and performance comparisons.
2020-12-14 · Peter Steinberger
-
Apple Silicon M1: A Developer's Perspective
A comprehensive evaluation of the M1 MacBook Air as a development machine, covering Xcode performance, compatibility issues, and the transition challenges for developers.
2020-11-28 · Peter Steinberger
-
Gardening Your Twitter: Curating Your Timeline
Practical strategies for curating your Twitter timeline through strategic following, muting, and filtering to create an informative and enjoyable social media experience.
2020-10-21 · Peter Steinberger
-
Gardening Your Twitter: Growing Your Followers
Strategies for growing a meaningful Twitter following through authentic persona development, consistent engagement, and effective content creation based on 12 years of experience.
2020-10-21 · Peter Steinberger
-
Forbidden Controls in Catalyst: Optimize Interface for Mac
Investigating why certain UIKit controls throw runtime exceptions in Catalyst's 'Optimize Interface for Mac' mode and discovering which controls are forbidden.
2020-09-22 · Peter Steinberger
-
Disabling Keyboard Avoidance in SwiftUI's UIHostingController
Fixing unwanted keyboard avoidance behavior in UIHostingController using runtime dynamic subclassing to override keyboard notification handling methods.
2020-09-21 · Peter Steinberger
-
The State of SwiftUI
Testing SwiftUI's production readiness in iOS 14 and macOS Big Sur through Apple's Fruta sample app, revealing performance issues and platform-specific limitations.
2020-09-13 · Peter Steinberger
-
Logging in Swift
An in-depth exploration of Apple's unified logging system and the promising OSLogStore API that Apple removed from iOS 14 at the last minute.
2020-08-24 · Peter Steinberger
-
Building with Swift Trunk Development Snapshots
A troubleshooting guide for building with Swift trunk development snapshots, documenting compilation errors, linker issues, and their solutions.
2020-06-12 · Peter Steinberger
-
Calling Super at Runtime in Swift
Implementing dynamic super calls in Swift through runtime manipulation, assembly language, and ARM64 register management for InterposeKit.
2020-06-10 · Peter Steinberger
-
zld — A Faster Version of Apple's Linker
How to speed up iOS build times by 40% using zld, a drop-in replacement for Apple's linker, with practical integration tips for real projects.
2020-06-05 · Peter Steinberger
-
How to Fix LLDB: Couldn't IRGen Expression
Solving the mysterious LLDB 'Couldn't IRGen expression' error by investigating Swift module path serialization and discovering that removing dSYM bundles fixes debugging issues.
2020-06-04 · Peter Steinberger
-
Updating macOS on a Hackintosh
A practical guide to safely updating macOS on a Hackintosh by first updating OpenCore bootloader and essential kexts before upgrading the system.
2020-06-01 · Peter Steinberger
-
InterposeKit — Elegant Swizzling in Swift
Introducing InterposeKit, a modern Swift library for elegant method swizzling that leverages Swift 5.2's callAsFunction for type-safe Objective-C method interception.
2020-05-31 · Peter Steinberger
-
The Great Mac Catalyst Text Input Crash Hunt
Deep-dive investigation and fix for a Mac Catalyst text input crash caused by a race condition in Apple's RemoteTextInput framework.
2020-05-29 · Peter Steinberger
-
Jailbreaking for iOS Developers
A comprehensive guide to iOS jailbreaking for developers, covering legal security research tools, debugging capabilities, and practical applications beyond app piracy.
2020-05-25 · Peter Steinberger
-
Network Kernel Core Dump
Step-by-step instructions from Apple for capturing macOS kernel core dumps over a network connection between two Macs.
2020-05-21 · Peter Steinberger
-
How to macOS Core Dump
A technical guide to deciphering Apple's cryptic boot arguments and setting up macOS kernel core dumps to debug persistent kernel panics.
2020-05-21 · Peter Steinberger
-
Kernel Panics and Surprise boot-args
Investigation into mysterious kernel panics reveals Apple repair centers left my MacBook with undocumented security-weakening boot arguments.
2020-05-20 · Peter Steinberger
-
The LG UltraFine 5K, kernel_task, and Me
A four-year saga with the problematic LG UltraFine 5K display and the surprising discovery that plugging it into the wrong MacBook side causes performance issues.
2020-05-19 · Peter Steinberger
-
Let's Try This Again
After five years away from personal blogging, I'm returning to share technical stories that don't fit on Twitter or corporate blogs.
2020-05-14 · Peter Steinberger
-
How We Work at PSPDFKit
An inside look at PSPDFKit's development processes, from proposal-based feature planning to monorepo management and release automation.
2019-07-03 · Peter Steinberger
-
Swizzling in Swift
A deep dive into safe method swizzling techniques in Swift, covering common pitfalls and the correct way to implement dynamic super calls.
2019-06-26 · Peter Steinberger
-
WWDC for First-Timers, 2019 Edition
Practical tips and advice for making the most of your WWDC experience, from packing essentials to navigating labs and networking events.
2019-05-30 · Peter Steinberger
-
Challenges of Adopting Drag and Drop
Discusses the challenges and limitations faced when implementing drag and drop functionality for PDF editing on iOS 11.
2018-11-07 · Peter Steinberger
-
Marzipan: Porting iOS Apps to the Mac
Explores Apple's Marzipan technology for running UIKit apps on macOS and how to experiment with it before official third-party support.
2018-09-20 · Peter Steinberger
-
How to Use Slack and Not Go Crazy
Best practices for using Slack effectively in a distributed team without getting overwhelmed by notifications and channels.
2018-06-21 · Peter Steinberger
-
Hardcore Debugging - Heavy Weapons for Hard Bugs
Advanced debugging techniques for tracking memory management issues, retain/release cycles, and hard-to-find bugs in iOS development.
2018-03-07 · Peter Steinberger
-
Binary Frameworks in Swift
Explores Swift's ABI stability and the challenges of shipping binary frameworks before Swift 5.
2018-01-29 · Peter Steinberger
-
Even Swiftier Objective-C
Explores new Objective-C features and improvements introduced at WWDC 2017 that make the language more Swift-like.
2017-06-14 · Peter Steinberger
-
The Case for Deprecating UITableView
Argues why UITableView should be deprecated in favor of UICollectionView for better flexibility and modern iOS development.
2017-01-19 · Peter Steinberger
-
Running tests with Clang Address Sanitizer
Guide to using Clang Address Sanitizer for finding memory bugs, race conditions, and other runtime issues in iOS and Android development.
2016-10-18 · Peter Steinberger
-
UI testing on iOS, without busy waiting
Comprehensive guide to effective UI testing on iOS using KIF framework without busy waiting and performance optimization techniques.
2016-09-29 · Peter Steinberger
-
Hiring a distributed team
Lessons learned about hiring and building a successful distributed remote team at PSPDFKit over six years.
2016-09-20 · Peter Steinberger
-
Writing Good Bug Reports
Essential guide to writing effective bug reports that help developers understand, reproduce, and fix issues quickly and efficiently.
2016-09-13 · Peter Steinberger
-
Real-time collaboration, Apple, and you
Analysis of Apple's real-time collaboration features announced in 2016 and their implications for developers.
2016-09-08 · Peter Steinberger
-
Converting Xcode Test Runs to JUnit, the Fast Way
A fast method for converting Xcode test results to JUnit format for better CI integration and test reporting.
2016-08-11 · Peter Steinberger
-
Efficient iOS Version Checking
Best practices for efficiently checking iOS versions in code while supporting multiple deployment targets.
2016-07-06 · Peter Steinberger
-
Investigating Thread Safety of UIImage
Deep dive into UIImage thread safety issues and how to properly handle images in concurrent environments.
2016-06-30 · Peter Steinberger
-
Swifty Objective-C
Modern Objective-C language features that make it more Swift-like, including nullability annotations, generics, and new syntax improvements.
2016-05-26 · Peter Steinberger
-
Running UI Tests on iOS With Ludicrous Speed
Techniques for dramatically speeding up UI test execution in Xcode using parallelization and optimization strategies.
2016-04-27 · Peter Steinberger
-
A Pragmatic Approach to Cross-Platform
How PSPDFKit shares a common C++ codebase across iOS, Android, and Web platforms while maintaining native user experiences.
2016-04-13 · Peter Steinberger
-
Surprises with Swift Extensions
Common pitfalls and surprising behaviors when creating Swift extensions on Objective-C classes, with solutions for proper method naming.
2016-03-24 · Peter Steinberger
-
Using ccache for Fun and Profit
Complete guide to using ccache to dramatically speed up C/C++/Objective-C build times for large iOS projects and CI systems.
2015-10-06 · Peter Steinberger
-
UITableViewController designated initializer woes
Navigate the complications of subclassing UITableViewController after iOS 8.3 introduced designated initializers that break proper initialization patterns.
2015-04-15 · Peter Steinberger
-
Researching ResearchKit
Analyze Apple's first major open-source project ResearchKit to discover interesting implementation details and practical iOS development solutions.
2015-04-14 · Peter Steinberger
-
The curious case of rotation with multiple windows on iOS 8
Diagnose and solve an iOS 8 regression where unwanted rotation occurs in apps using multiple windows despite explicit configuration.
2015-01-25 · Peter Steinberger
-
UIKit Debug Mode
Unlock hidden UIKit debugging features by bypassing Apple's InternalBuild checks to access secret flags for logging touches, gestures, and animations.
2015-01-09 · Peter Steinberger
-
Retrofitting containsString: on iOS 7
Backport iOS 8's convenient NSString containsString: method to iOS 7 using runtime patching that won't conflict with Apple's implementation.
2014-07-17 · Peter Steinberger
-
A Story About Swizzling "the Right Way™" and Touch Forwarding
Learn why traditional method swizzling breaks UIKit's touch forwarding and discover a better approach that preserves _cmd integrity.
2014-07-04 · Peter Steinberger
-
Hacking with Aspects
Explore how Apple detects popover presentation in UIImagePickerController and learn to bypass the restriction using my Aspects library.
2014-05-06 · Peter Steinberger
-
Fixing UITextView On iOS 7
Fix the severe scrolling and content positioning bugs in iOS 7's UITextView with PSPDFTextView, a drop-in replacement.
2014-01-08 · Peter Steinberger
-
Fixing What Apple Doesn't
Fix the misaligned label in iOS 7's printer controller by swizzling UIPrinterSearchingView's layoutSubviews method.
2014-01-04 · Peter Steinberger
-
How To Inspect The View Hierarchy Of Third-Party Apps
Learn how to inspect view hierarchies of third-party iOS apps using a jailbroken device and debugging tools like Reveal for design insights.
2013-12-27 · Peter Steinberger
-
Fixing UISearchDisplayController On iOS 7
Fix the broken animation, frame positioning, and status bar issues in UISearchDisplayController on iOS 7 with this comprehensive solution.
2013-10-04 · Peter Steinberger
-
Smart Proxy Delegation
Eliminate delegate boilerplate code in Objective-C using NSProxy to automatically handle respondsToSelector checks and method forwarding.
2013-07-30 · Peter Steinberger
-
Adding Keyboard Shortcuts To UIAlertView
Add keyboard shortcuts to UIAlertView and UIActionSheet for faster simulator testing by intercepting keyboard events with Enter and Escape keys.
2013-03-06 · Peter Steinberger
-
How To Center Content Within UIScrollView
Learn the best approach to center content in UIScrollView using contentInset instead of layoutSubviews or setContentOffset for better zooming behavior.
2013-02-21 · Peter Steinberger
-
UIAppearance for Custom Views
Learn how to properly implement UIAppearance in custom views, including important gotchas about setter tracking and initialization patterns.
2013-02-12 · Peter Steinberger