https://github.com/agentik-os/agentik-liquidpad
A fast, native macOS slide-over for your web apps and tools. Swift + WKWebView, no Electron.
https://github.com/agentik-os/agentik-liquidpad
appkit macos menubar productivity swift webview
Last synced: 10 days ago
JSON representation
A fast, native macOS slide-over for your web apps and tools. Swift + WKWebView, no Electron.
- Host: GitHub
- URL: https://github.com/agentik-os/agentik-liquidpad
- Owner: agentik-os
- License: mit
- Created: 2026-06-03T08:12:40.000Z (18 days ago)
- Default Branch: master
- Last Pushed: 2026-06-03T13:06:12.000Z (17 days ago)
- Last Synced: 2026-06-03T14:11:39.853Z (17 days ago)
- Topics: appkit, macos, menubar, productivity, swift, webview
- Language: Swift
- Size: 2.25 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LiquidPad
A fast, native macOS companion that keeps all your web apps one keystroke away.
LiquidPad lives in your menu bar and slides a glass panel in from the right edge of
the screen. Pin ChatGPT, Claude, Codex, Gmail, Notion, Linear, YouTube or anything
else with a URL, and reach them instantly without leaving what you are doing. It is
written in Swift with AppKit and WKWebView, so there is no Chromium bundled inside and
it sips memory where an Electron wrapper would eat hundreds of megabytes.
## What it does
* A glass slide over panel anchored to the right edge, with a smooth open and close animation.
* A menu bar agent with no Dock icon. Toggle it with a global shortcut (⌥Space by default) or by clicking the menu bar icon.
* An app rail showing real favicons, a refined selection state, and a header that displays the app name and its domain.
* Add any app by typing its name or pasting a link, right inside the panel. Nothing is preloaded, so the picker stays instant and light. The improved icon loader fetches the real brand logo for whatever you add.
* A few popular apps are one click away in the picker (WhatsApp Web, ChatGPT, Gemini, Telegram Web) and land straight on the right login page. WhatsApp Web shows its QR code, you scan it once, and it stays linked.
* Each app keeps a home page. Browse wherever you like, then press the home button to come back, or pick Set this page as home from the app menu to choose a new one.
* Boards: drag one app's rail icon onto another to put them in a shared view, side by side as columns, like a kanban. Add as many as you want, each its own column with its own mute, home and remove controls, and the board gets a composite icon. Great for several accounts of the same app at once (each with a separate login). Right click a board to rename or split it.
* Built in native tools that live in the rail with no web view, so they stay very light: a Terminal, a Focus timer, Tasks and Habits.
* The Terminal is a multi session board, like a code editor: tabs across the top, a plus button to open a new shell or SSH session, and you switch between them. It follows light and dark mode, with the padding the same colour as the background for a clean uniform look. SSH connects inline, no popup. Powered by SwiftTerm.
* The Focus timer turns a warm red while you work and a calm green on a break, with the durations set in Settings. Tasks group by day with quick Today and Tomorrow scheduling, times and reminders. Habits show a year of squares you tick off, with a streak count.
* Pause and resume any app. Pausing fully unloads its web view to free memory, and a single click brings it back.
* Mute and unmute audio per app, from the header button or the menu, remembered between launches.
* Shared Google login by default, so signing into Google once is remembered across Gmail, YouTube, Calendar and Gemini. Right click any app and choose Separate login to give one instance its own account, which is how you run two YouTube or Gmail logins side by side.
* Google sign in popups are handled properly and open in their own window.
* Drag the rail icons to reorder them, remove apps you no longer want, and the panel reopens on the app you used last.
* Settings live inside the panel behind a gear button. From there you set the shortcut, the panel width and height, the icon size, the page zoom, the glass opacity, launch at login, whether clicking outside closes the panel, and the system monitor.
* A configurable global toggle shortcut with a recorder built into Settings.
* A resizable panel whose size is remembered and re anchored to the right edge. The default size is half the screen.
* Music and video keep playing when you close the panel, and a playing video pops into Picture in Picture. There is also a Picture in Picture button in the header.
* A music mini player appears at the bottom when a music app is playing (Spotify, YouTube Music, SoundCloud, Bandcamp, Apple Music, Deezer, Tidal): artwork, title and artist, with previous, play or pause and next. It keeps controlling that app even while you browse another, and the music app is never evicted while it is the source.
* An optional system monitor that shows a discreet CPU, RAM and disk readout along the bottom of the panel.
## Easy on your Mac
LiquidPad is built to stay out of your way and out of your battery.
* Web views are created lazily, so nothing loads until you first open the panel.
* When the panel is hidden, WebKit throttles background work on its own.
* Idle apps are released a couple of minutes after you hide the panel, and reload on demand.
* Pause an app to drop its web view entirely.
* The native shell idles around fifty megabytes, where a typical Electron app sits between three hundred and five hundred.
## Build and run
You need the Swift toolchain, which ships with Xcode or the Command Line Tools, on macOS 14 or later.
```
./bundle.sh
open LiquidPad.app
```
The script compiles a release build and assembles a signed `LiquidPad.app`. Once it is
running, press the shortcut or click the menu bar icon to bring the panel in.
There are a few environment variables for development: `LIQUIDPAD_SHOW` forces the
panel open at launch, `LIQUIDPAD_ADDAPP` and `LIQUIDPAD_SETTINGS` open the add and
settings overlays, and `LIQUIDPAD_SIZE` set to something like `820x1000` overrides the
panel size.
## How it is put together
| File | What it handles |
|------|-----------------|
| `main.swift`, `AppDelegate.swift` | App bootstrap, the menu bar item, and shortcut binding |
| `SlideOverController.swift` | The panel, the rail, the header, the web view pool, pausing, muting, sessions, and the slide animation |
| `RailItemView.swift` | The rail icon tiles, selection and paused or isolated states, the context menu, and the start of a drag |
| `AddAppWindow.swift` | The add overlay: search, popular apps and built in tools |
| `NativeApps.swift`, `TerminalApp.swift`, `PomodoroApp.swift`, `TasksApp.swift`, `HabitsApp.swift` | The native tools that live in the rail |
| `Settings.swift` | The in panel settings overlay and the shortcut recorder |
| `HotKeyManager.swift` | Global hot keys through Carbon, with no Accessibility permission needed |
| `SystemMonitor.swift` | CPU, RAM and disk readings through mach |
| `IconLoader.swift` | Favicon fetching with a monogram fallback, cached in memory and on disk |
| `WebApp.swift` | The app model and persistence for apps, paused, muted and session state |
## Free and open source, supported by you
LiquidPad is free and released under the MIT license. If it earns a place in your day,
a donation keeps it moving forward, and every bit is appreciated.
* PayPal at [paypal.me/agentikos](https://paypal.me/agentikos) or x@agentik-os.com
* Ethereum at `0x581C41f683Aa3215dFe8B875ae12de3cDAf3525C`
* Bitcoin at `bc1qc0hwlh0h83rkazgrjwrvr48dhk7mf94upac4qr`
You can also donate from inside the app, under Settings, in the Free and open source section.
## License
MIT. See [LICENSE](LICENSE). Copyright 2026 Agentik.