< cd ~/raba.pl

Developer & personal tools

Tasknab

Capture the context when it appears, and carry it into a task someone can act on.

  • internal
  • 2026
  • Solo: capture workflow, native apps, CLI and AI integration

The problem

Raw captures are easy to collect but still need interpretation. The tool has to distinguish a task from background information, preserve the useful details and handle an unavailable destination without losing the capture.

My part

Personal internal implementation, with no public adoption or App Store release claimed. The cover is rendered from the native onboarding view without credentials, capture content or real tasks.

What this shows

I can connect native interfaces, local processing and constrained AI into a useful workflow, including what happens when the happy path fails.

Where it started

Tasknab is an internal personal tool with a Mac capture pipeline and native Apple interfaces. It connects the moment something needs doing to an existing task gateway.

Interface preview

Tasknab interface preview
Native onboarding interface. No private tasks are shown.

The decisions behind the product

Meet the user where the context appears

I built Mac capture from a screen region, voice, image file or clipboard, with keyboard and menu-bar entry points. iPhone, Apple Watch, share-extension and shortcut interfaces extend the same idea to other moments.

Give AI a constrained job

The extraction step returns one structured task, including a title, details, priority, deadline and project. It can explicitly say that a capture contains no task. Local OCR prepares text-heavy images, while sparse text can fall back to image analysis.

Connect the result to existing work

Clients send to a shared task gateway instead of each implementing a separate task-provider integration. The Mac workflow stores failed deliveries on disk and retries them, retaining repeatedly failed jobs for inspection.

Reduce avoidable processing overhead

I added a reusable text-analysis process, with timeouts, session recycling and fallback behavior. These are implementation choices; the repository comments are not evidence for a published speed or time-saved claim.

What came out of the work

Four capture inputs, one task workflow

The Mac implementation supports screen regions, voice notes, image files and clipboard content. Native app targets cover macOS, iOS and watchOS, with Polish and English in the extraction schema.

Delivery failure remains visible

The Mac queue retains tasks when their destination is unavailable and distinguishes successful creation, non-actionable input and failure. Capture volume, extraction quality and the share of queued tasks later delivered still need measurement.

  • 4capture inputs in the Mac workflowScreen region, voice, image file and clipboard
  • 3native Apple platform implementationsmacOS, iOS and watchOS · internal build
  • 2languages supported in task extractionPolish and English · configured scope

Inside the implementation

Explore the features, architecture and quality checks

What I built

  • A Mac command-line capture pipeline for screen regions, voice notes, image files and clipboard content, with menu-bar and keyboard-shortcut entry points
  • Native iPhone and Apple Watch interfaces, plus an iOS share extension, widget and App Intents for shortcuts
  • On-device Vision OCR for text-heavy images, with an image-analysis fallback when extracted text is sparse
  • Local Whisper transcription in the Mac voice workflow; the iPhone requests on-device speech recognition when supported
  • Structured AI extraction of one task: title, details, priority, due date, tags and project, with a separate response for captures that contain no action
  • A shared task gateway so capture clients do not need to know which task provider stores the result
  • A disk-backed Mac delivery queue that retries unavailable destinations and preserves repeatedly failed jobs for inspection
  • A reusable text-analysis process with bounded lifetime, request timeouts and a fallback path when the warm service fails

How it works

  1. CaptureTake the useful context from a screen, voice note, file or clipboard without rewriting it first.
  2. ExtractLocal recognition prepares the content; AI decides whether it contains a task and structures its details.
  3. RouteThe task gateway receives the task and project. The Mac client queues delivery failures instead of silently discarding them.

Quality and reliability

  • The extraction schema distinguishes an actionable task from an accidental or non-actionable capture
  • Sparse OCR falls back to image analysis; failure of the warm text service falls back to a separate extraction process
  • Mac delivery failures are stored on disk, retried under a queue lock and retained for inspection after repeated failure
  • Internal implementation: capture latency, extraction accuracy and time saved have not been measured for this portfolio

Technology

  • SwiftUI
  • Vision
  • Speech
  • App Intents
  • WidgetKit
  • WatchConnectivity
  • Bash
  • Node.js
  • Claude
  • Whisper
  • Hammerspoon

Explore another problem I worked on

>_ Your next project

Liked what you saw?
Let’s get in touch!

Have an idea, a challenge, or a role in mind? I’d love to hear about it.

Let’s talk

>_ Start a conversation

Liked what you saw?
Let’s get in touch!

Tell me what you’re working on. Let’s see how I can help.

Email mepatryk@raba.pl
Send a message