Skip to content

pawelorzech/qstatus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qStatus

A fast, native macOS menubar app for posting to Mastodon, WordPress, and Micro.blog with a single keyboard shortcut.

Built with Swift and SwiftUI. No Electron, no web views, no dependencies.

Features

  • Global hotkey — press Ctrl+Option+Cmd+T from anywhere to open the posting window
  • Multiple accounts — add accounts from different services and post to one or more at once
  • Image attachments — drag-and-drop or browse for images, up to 4 per post
  • Menubar app — lives in your menubar, no Dock icon, always ready
  • Lightweight — native Swift/SwiftUI, fast startup, minimal memory footprint

Supported Services

Service Auth Method Media Upload
Mastodon OAuth2 (any instance) up to 4 images
WordPress (self-hosted) Application Passwords up to 4 images
Micro.blog App Token up to 4 images

Requirements

  • macOS 15 Sequoia or later
  • XcodeGen (for building from source)

Build from Source

brew install xcodegen
git clone https://github.com/pawelorzech/qstatus.git
cd qstatus
xcodegen generate
open qStatus.xcodeproj

Then hit Cmd+R in Xcode to build and run.

Setting Up Accounts

Mastodon

  1. Click the menubar icon → Settings
  2. Click +, select Mastodon
  3. Enter your instance URL (e.g. mastodon.social)
  4. Authorize qStatus in your browser

WordPress (Self-Hosted)

  1. In WordPress admin: Users → Profile → Application Passwords
  2. Create a new password named "qStatus"
  3. In qStatus Settings, enter your site URL, username, and the application password

Micro.blog

  1. Go to micro.blog/account/apps
  2. Generate a new app token
  3. Paste it in qStatus Settings

Usage

  1. Press Ctrl+Option+Cmd+T (or click menubar icon → New Post)
  2. Select target account(s) using the chips at the top
  3. Type your status
  4. Drag-and-drop images if needed (up to 4)
  5. Press Cmd+Enter or click Post

Project Structure

qStatus/
├── project.yml              # XcodeGen project spec
├── qStatus/
│   ├── App/                 # App entry point, AppDelegate, state
│   ├── Models/              # Account model, PostingService protocol
│   ├── Views/               # SwiftUI views (input panel, settings, menubar)
│   ├── Windows/             # NSPanel floating window
│   ├── Services/            # API clients (Mastodon, WordPress, Micro.blog)
│   ├── Utilities/           # Multipart form data helper
│   └── Resources/           # Info.plist, entitlements, assets

Tech Stack

  • Swift 6 / SwiftUI with @Observable (macOS 15+)
  • MenuBarExtra for menubar presence
  • NSPanel for the floating input window
  • Carbon RegisterEventHotKey for global keyboard shortcut
  • Keychain (native Security framework) for credential storage
  • URLSession async/await for all networking
  • Zero third-party dependencies

License

MIT

About

Fast, native macOS menubar app for posting to Mastodon, WordPress, and Micro.blog

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages