Sign in

Sindre Sorhus

@sindresorhus.com
6.7K followers 9 following 291 posts

Eat, code, love. I make Mac apps and open-source. sindresorhus.com/apps Mastodon: mastodon.social/@sindresorhus X: x.com/sindresorhus

PostsRepliesMedia
Sindre Sorhus @sindresorhus.com · 26/09/2026
Node.js docs: nodejs.org/api/ffi.html
120
Sindre Sorhus @sindresorhus.com · 26/09/2026
Node.js has FFI support now, which makes it possible to implement native integrations without all the build problems that comes with native addons. For example, I just made github.com/sindresorhus...
github.com
GitHub - sindresorhus/finder-alias: Resolve and create macOS Finder aliases
Resolve and create macOS Finder aliases. Contribute to sindresorhus/finder-alias development by creating an account on GitHub.
2191
Sindre Sorhus @sindresorhus.com · 14/09/2026
I have 8 accepted security vulnerabilities for iOS 27 and macOS 27 support.apple.com/en-us/149034 support.apple.com/en-us/149035
support.apple.com
About the security content of iOS 27 and iPadOS 27 - Apple Support
This document describes the security content of iOS 27 and iPadOS 27.
3313
Reposted by Sindre Sorhus
Indie App Catalog @indieappcatalog.com · 31/08/2026
This week's Catalog Pick: Pure Paste by @sindresorhus.com Copying text shouldn’t bring webpage clutter with it. Pure Paste strips formatting, tracking parameters, and invisible characters before you paste, while leaving files, images, and passwords alone. indieappcatalog.com/picks/pure-p...
indieappcatalog.com
Indie App Catalog: Discover great apps
Discover great apps and support independent development
002
Sindre Sorhus @sindresorhus.com · 14/09/2026
I moved from Raycast since they made it non-native and bad. Tinycast is a great native replacement: github.com/abue-ammar/t...
github.com
GitHub - abue-ammar/tinycast: Tinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history.
Tinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history. - abue-ammar/tinycast
4554
Sindre Sorhus @sindresorhus.com · 17/07/2026
One more ESLint plugin Lint your package.json github.com/sindresorhus...
github.com
GitHub - sindresorhus/eslint-package-json: Powerful ESLint rules for package.json
Powerful ESLint rules for package.json. Contribute to sindresorhus/eslint-package-json development by creating an account on GitHub.
170
Sindre Sorhus @sindresorhus.com · 09/07/2026
New in Supercharge You can now switch Spaces without any slide animation using customize keyboard shortcuts. All changes: sindresorhus.com/supercharge/...
sindresorhus.com
Release Notes — Supercharge
0100
Sindre Sorhus @sindresorhus.com · 02/07/2026
If you use the Node.js test runner (node:test), you may like the new ESLint plugin I cooked up. 64 rules to improve your tests, prevent mistakes, and enforce style. github.com/sindresorhus...
github.com
GitHub - sindresorhus/eslint-node-test: ESLint rules for the Node.js built-in test runner (`node:test`)
ESLint rules for the Node.js built-in test runner (`node:test`) - sindresorhus/eslint-node-test
0212
Sindre Sorhus @sindresorhus.com · 26/06/2026
And all known bugs were fixed. And it gained some non-JS rules: github.com/sindresorhus...
github.com
GitHub - sindresorhus/eslint-plugin-unicorn: More than 300 powerful ESLint rules
More than 300 powerful ESLint rules. Contribute to sindresorhus/eslint-plugin-unicorn development by creating an account on GitHub.
020
Sindre Sorhus @sindresorhus.com · 25/06/2026
eslint-plugin-unicorn now has 300+ rules to catch bugs and improve your JavaScript github.com/sindresorhus...
github.com
GitHub - sindresorhus/eslint-plugin-unicorn: More than 300 powerful ESLint rules
More than 300 powerful ESLint rules. Contribute to sindresorhus/eslint-plugin-unicorn development by creating an account on GitHub.
1181
Sindre Sorhus @sindresorhus.com · 18/06/2026
If you know my Velja app, this is Velja, but for email links
020
Sindre Sorhus @sindresorhus.com · 17/06/2026
For example, Make email links open in Gmail instead of the Mail app Or set up rules to automatically open work-related emails in Outlook
150
Sindre Sorhus @sindresorhus.com · 17/06/2026
New app 📩 Mailway Route email links (mailto) to any email app or webmail sindresorhus.com/mailway
2223
Sindre Sorhus @sindresorhus.com · 10/06/2026
Intentional. Social platforms compress it, so would do it disservice by having lower quality than it actually produces.
110
Sindre Sorhus @sindresorhus.com · 10/06/2026
Requires macOS 26 Gifski is a video to animated GIF converter
150
Sindre Sorhus @sindresorhus.com · 10/06/2026
After 3 years of work, Gifski 3 is here. Rewritten from scratch in SwiftUI, with cropping, GIF preview, exporting trimmed/cropped videos, loop delay, smarter estimates, improved performance, and lots of polish. github.com/sindresorhus...
4513
Sindre Sorhus @sindresorhus.com · 26/05/2026
Send media keys to a specific app (Music or Spotify) Always send play/pause and next/previous track to the app you choose. Useful when macOS keeps sending media keys to the wrong app. sindresorhus.com/supercharge/...
sindresorhus.com
Release Notes — Supercharge
020
Sindre Sorhus @sindresorhus.com · 26/05/2026
Supercharge recently got some useful tweaks Mute microphone while typing Automatically mutes the microphone input while you're typing and unmutes shortly after you stop. Only activates when the microphone is in use. Useful for video calls with loud keyboards.
1110
Reposted by Sindre Sorhus
Sindre Sorhus @sindresorhus.com · 08/04/2026
Build your own HTTP client with fetch-extras Take only what you need. Tree-shakeable. Built on Fetch. Works in the browser, Node.js, etc. github.com/sindresorhus...
4676
Sindre Sorhus @sindresorhus.com · 09/04/2026
Another thing I have been working on for a couple of months: Ink 7 New hooks: usePaste, useWindowSize, useBoxMetrics, useAnimation More props stuff for <Box>: maxWidth/maxHeight, aspectRatio, alignContent, position="static" Ink lets you build CLIs with React github.com/vadimdemedes...
github.com
Release v7.0.0 · vadimdemedes/ink
Breaking Require Node.js 22 19b5316 Require React 19.2+ cfaebbb Ink now uses useEffectEvent internally to avoid re-subscribing input handlers on every render Pressing Backspace now correctly ...
1200
Sindre Sorhus @sindresorhus.com · 09/04/2026
Now also with JSON schema validation support.
150
Sindre Sorhus @sindresorhus.com · 08/04/2026
- Before/after request hooks - Auto JSON body stringify - Default search parameters - Download/upload progress tracking - Pagination
140
Sindre Sorhus @sindresorhus.com · 08/04/2026
It has everything you will need: - Retries - Timeouts - HTTP error throwing (non-2xx) - Base URL (resolve relative URLs against a base) - Default headers - Auto token refresh on 401 - Client-side rate limiting - Concurrency limiting - Request deduplication - In-memory caching
161
Sindre Sorhus @sindresorhus.com · 08/04/2026
Build your own HTTP client with fetch-extras Take only what you need. Tree-shakeable. Built on Fetch. Works in the browser, Node.js, etc. github.com/sindresorhus...
4676
Sindre Sorhus @sindresorhus.com · 08/04/2026
```js // baseUrl ky('users', {baseUrl: '/api/'}) //→ /api/users ky('/users', {baseUrl: '/api/'}) //→ /users (leading slash = origin-root) // prefix ky('users', {prefix: '/api'}) //→ /api/users ky('/users', {prefix: '/api'}) //→ /api/users (leading slash ignored) ```
030
Sindre Sorhus @sindresorhus.com · 08/04/2026
baseUrl vs prefix `baseUrl` uses standard URL resolution: `/users` means origin-root, `users` means relative to the base path. `prefix` does simple string joining first, so `/users` and `users` both append to the prefix the same way. Use it only when you want that behavior.
220
Sindre Sorhus @sindresorhus.com · 07/04/2026
New `baseUrl` option fixes URL handling, `searchParams` option now merges, retries are now more precise by distinguishing failure types, built-in JSON schema validation. Ky is a tiny JS HTTP client built on top of the built-in Fetch.
170
Sindre Sorhus @sindresorhus.com · 07/04/2026
For the past two months I have been working hard on Ky 2 and now it's finally out. All bugs fixed. All GitHub issues resolved. Cleaner API, stricter behavior, fewer footguns. github.com/sindresorhus...
1655
Sindre Sorhus @sindresorhus.com · 05/04/2026
This is a iOS 26 bug. Unfortunately, nothing I can do anything about.
010
Sindre Sorhus @sindresorhus.com · 29/03/2026
For example, the app icon was generated by the app. Unfortunately, I lost the prompt.
120
Sindre Sorhus @sindresorhus.com · 27/03/2026
It depends on the image size you choose. But 16 GB is the minimum. For larger sizes, 48 GB or 64 GB is recommended.
020
Sindre Sorhus @sindresorhus.com · 25/03/2026
Completely free Requires macOS 26, an Apple silicon Mac (no Intel), minimum 16 GB RAM, and 20 GB free disk space
131
Sindre Sorhus @sindresorhus.com · 25/03/2026
It's likely that there is some instance of Aiko running in Shortcuts that never finished so it thinks something is running. Try to quit anything called Aiko and Intent Extension in Activity Monitor. I will look into better handling of this.
000
Sindre Sorhus @sindresorhus.com · 25/03/2026
New app Imago 🦊 Generate images from text using Flux 2, locally on your computer sindresorhus.com/imago
2233
Sindre Sorhus @sindresorhus.com · 24/03/2026
In the next update, I will add a "Get Date Added of File" action to get the date added. You can then use it to filter yourself with other actions.
120
Sindre Sorhus @sindresorhus.com · 22/03/2026
Get Image URLs from Web Page Get Images from Web Page Get Meta Tags of URL Get Media Metadata Get Raw Media Metadata Convert Text File Encoding Manage Shortcut Lock Overlay Image (Extended) Scan Barcodes in Image Convert Number Base Find Points of Interest Calculate Bearing Parse/Make Markdown Table
030
Sindre Sorhus @sindresorhus.com · 22/03/2026
sindresorhus.com/actions New actions: Ask for Input with Dialog Combine Audio Files Counter Keychain Make Live Photo from Video Create Temporary Folder Generate Emojis Filter List of Dictionaries Sort List of Dictionaries Remove Dictionary Values Get Contents of URL (Extended) Get Dates in Range
sindresorhus.com
Actions
Additional actions for the Shortcuts app
140
Sindre Sorhus @sindresorhus.com · 22/03/2026
Actions 4 ⚙️ Now with 180+ useful actions to elevate the Shortcuts app Completely free
2305
Sindre Sorhus @sindresorhus.com · 09/03/2026
Disable Universal Clipboard — Stops clipboard syncing with your other Apple devices without disabling Handoff. For the Mission Control improvements tweak, you can now navigate between windows with arrow keys and press Return to bring one to the front. sindresorhus.com/supercharge/...
sindresorhus.com
Release Notes — Supercharge
000
Sindre Sorhus @sindresorhus.com · 09/03/2026
The rest: Middle-click a folder in the Finder sidebar to open it in a new tab. Archive old screenshots automatically Prevent accidentally dragging text — Sometimes you accidentally drag text and it creates a .textClipping file. This prevents that.
110
Sindre Sorhus @sindresorhus.com · 09/03/2026
Some nice Finder improvements: Reopen last closed Finder tab with ⇧⌘T Paste image as file in Finder Pressing ⌘V in Finder with an image on the clipboard now saves it as a file. Normally, this does nothing.
130
Sindre Sorhus @sindresorhus.com · 08/03/2026
New in Supercharge Add a sound effect to any keyboard shortcut For example, play a sound when you open Spotlight
190
Sindre Sorhus @sindresorhus.com · 25/02/2026
And the reason I wrote the parser, to fix a 10+ year old macOS bug - "Put Back" being broken when programmatically trashing multiple files: github.com/sindresorhus...
github.com
Release v3.0.0 · sindresorhus/macos-trash
Now requires macOS 13 or later bc6f95a Fix "Put Back" not working for all files when trashing multiple files 7a77927 Fix files going to wrong trash when run with elevated privileges 13e1ae3 v2.2....
010
Sindre Sorhus @sindresorhus.com · 25/02/2026
I know I know. Super niche. But I was writing a parser (like one does), and thought; why not make an example app for it. The parser: github.com/sindresorhus...
github.com
GitHub - sindresorhus/DSStore: Parse and write macOS .DS_Store files from Swift
Parse and write macOS .DS_Store files from Swift. Contribute to sindresorhus/DSStore development by creating an account on GitHub.
140
Sindre Sorhus @sindresorhus.com · 24/02/2026
The app requires macOS 26, but you can get the last macOS 15 compatible version for free on my website: sindresorhus.com/shortcutie#o...
sindresorhus.com
Shortcutie
Power up the Shortcuts app on Mac
010
Sindre Sorhus @sindresorhus.com · 24/02/2026
I'm excited to share that my Shortcutie app is now available on Setapp It provides 70+ powerful extra actions for the Shortcuts app on macOS sindresorhus.com/shortcutie
190
Sindre Sorhus @sindresorhus.com · 21/02/2026
The upside down thing was likely a macOS 26 bug. Happened in one of my apps too.
060
Sindre Sorhus @sindresorhus.com · 20/02/2026
I don’t get why Anthropic hasn’t used Claude Code to rewrite their bloated Electron app as native. Should be much easier than a C compiler.
810612
Sindre Sorhus @sindresorhus.com · 20/02/2026
I’m not stopping. I’ll keep making apps the good way. I just think it’s soon going to become more of a passion thing than a real business opportunity in general. Which is fine. It’s always been passion for me anyway, not the money. It will feel more like restoring an old car than running a startup
0470
Sindre Sorhus @sindresorhus.com · 20/02/2026
So being first isnt the edge. The edge is taste, trust, distribution, and going deeper than whats obvious from a quick glance at the UI. Surface ideas get cloned. Depth is harder.
4311