An Arc-style tab and workspace manager with native Raindrop.io cloud sync for Chrome, Firefox, and the Web.
- Custom Spaces: Create and organize multiple spaces with dedicated icons, emojis, color tokens, and custom ordering.
- Convert Spaces β Folders: Convert any Space into a nested Folder inside another Space with full preservation of children, and vice-versa.
- Multi-Level Nested Folders: Hierarchical collapsible folders with custom emojis, colors, and persistent expansion state.
- URL Variants: Store multiple URL endpoints under a single tab (e.g., App, Issues, Pull Requests, Docs) using native Raindrop naming conventions (
<name> ||| <variant>), with quick-switch access. - Favourites Shelf: Global favourite tabs shelf pinned at the top level and accessible across all spaces.
- Pinned Tabs Shelf: Keep high-priority tabs persistently docked at the top of each individual space.
- Temporary Tabs Shelf (TmpTabs): Capture active browser tabs into an unorganized scratchpad shelf with one-click actions to promote into spaces, rename, or dismiss.
- Virtual Synced Open Tabs: Cross-device open tabs view displaying active tabs across all connected machines with device badges and playback indicators.
- Centralized Drag & Drop: Smooth reordering and moving of tabs and folders across spaces, shelves, and nested hierarchies.
- Focus & Grid Views: Toggle between an all-spaces Grid View overview and a focused, distraction-free Single Space View.
- Persistent Side Panel UI: Native sidebar interface in Chrome, Chromium-based browsers, and Mozilla Firefox / Zen Browser.
- 1-to-1 Live Tab Tracking: Automatically associates open browser tabs with saved workspace items, highlighting and scrolling to active tabs in real time.
- Diverted URL Detection & Reset: Identifies when an active tab has navigated away from its original saved URL and offers a one-click button to reset back to the saved address.
- Audible Tabs Floating Widget: Automatically detects tabs playing audio across the browser; displays a floating pill widget with animated sound waves, one-click tab activation, and instant mute/unmute toggling.
- Media Controls: Quick play/pause and media playback controls directly on active tabs for major platforms (YouTube, Spotify, Apple Music, Bilibili, and more).
- True Native Collection & Bookmark Sync: Spaces and folders map directly to native Raindrop collections; tabs map to native bookmarks.
- Clean Raindrop Footprint: Completely eliminates JSON metadata dumping into bookmark excerpts and notes, decommissioning legacy
data.json.txtfiles. - Arcable v2 Root Isolation: Uses an isolated
Arcable v2root collection to safeguard data from older client versions. - Native Manual Sorting Order: Respects Raindrop's native manual bookmark order (
sort=-sort) and guarantees items are grouped before folders in sibling sorting. - Integrated Raindrop Search: The workspace search bar seamlessly queries both local workspace items and your entire Raindrop bookmark library.
- Raindrop Cover Search: Search and select collection covers powered directly by Raindrop's collection cover search API.
- Multi-Device Conflict Resolution: Pending operation queues and an operation replay engine ensure reliable sync across devices.
Embedded directly in the workspace, supporting small, medium, and large sizes with drag-and-drop reordering:
- Digital Clock: Minimalist digital clock with 12/24-hour display.
- Analog Clock: Modern clock face with animated hands.
- Calendar: Month calendar widget with current date highlighting.
- Date & Time (Combo): Unified clock and date indicator.
- Pomodoro Timer: Focus and break intervals with audio/visual countdown alerts.
- Countdown Widget: Event and deadline countdown tracker.
- Sticky Notes: Quick notepad cards with 6 vibrant color themes (Yellow, Green, Pink, Blue, Purple, Slate).
- Live Weather: Weather conditions and temperature with city/coordinate lookup.
- Quick Search Popover: Multi-engine search shortcut right inside the shelf.
- All widgets sync seamlessly to Raindrop under the root collection tagged
#arcable-widget.
- Run Code in Page: Execute custom JavaScript userscripts on matching URL patterns.
- Custom CSS Rules: Inject custom stylesheets per domain or URL pattern.
- Integrated Ace Editor: Full syntax-highlighted code and stylesheet editing in the Extension Options page.
- Background Fetch Proxy (
arcableFetch): Built-in background fetch bridge allowing userscripts to bypass page-level CORS limitations. - Context Menus & Quick-Run Popup: Right-click on any matching webpage or trigger scripts directly from the extension popup.
- Cloud Synced: Code rules and custom stylesheets are synced securely via dedicated
_custom_cssand_run_codeRaindrop system collections. - Nenya Rule Migration: Easily import script and style rules exported from Nenya.
- Connected Device Management: View connected clients with auto-detected platform badges (Chrome, Firefox, Zen Browser, Brave, Arc, Vivaldi, macOS, Windows, iOS, Android, and Web App).
- Custom Device Renaming & Pruning: Assign custom names to devices or prune inactive sessions.
- JSON Backup & Restore: Export full workspace snapshots to timestamped
.jsonfiles, inspect structural summaries (spaces, folders, tabs), and safely restore or merge backups.
- Automatic Dark / Light mode detection aligned with system preferences or custom space themes.
- Responsive Next.js web application designed for desktop, tablet, and mobile screens.
arcable/
βββ package.json # Root monorepo workspace configuration (npm workspaces)
βββ tsconfig.base.json # Base TypeScript configuration
βββ tsconfig.json # TypeScript solution references
βββ docs/ # Assets, icons, CI/CD publishing guides
β βββ icon.png
β βββ poster.jpeg
β βββ CI_STORE_PUBLISH.md # Automated store deployment guide
βββ apps/
β βββ extension/ # Chrome & Firefox Extension (React 19, Vite 6, Manifest V3)
β β βββ manifest.chrome.json
β β βββ manifest.firefox.json
β β βββ build.mjs # Multi-browser build runner (Chrome & Firefox)
β β βββ src/
β β βββ sidepanel/ # Arcable Side Panel UI (active space memory, tab tracker)
β β βββ popup/ # Extension popup with quick save & code snippet triggers
β β βββ options/ # Settings, Raindrop auth, Ace Code Editor (JS & CSS)
β β βββ background/ # Service worker, context menus, runCode runner, tab tracker
β β βββ content/ # Content scripts, CSS/JS injection, OAuth bridge
β β βββ utils/ # Tab tracker, audio tracker, browser polyfill
β βββ web/ # Next.js 15 Web Application (App Router, React 19)
β βββ src/
β βββ app/ # App Router pages, layouts, and sync API routes
β βββ lib/ # Server-side Raindrop API client
βββ packages/
βββ shared/ # Shared package (@arcable/shared)
βββ src/
βββ components/ # WorkspaceManager, SpaceCard, Shelves, Modals, Widgets
β βββ workspace/widgets/ # Pomodoro, Countdown, StickyNote, Weather, QuickSearch
βββ hooks/ # useWorkspace, useLocalStorage, useSystemTheme, useIsMobile
βββ utils/ # raindropSync (Native v2), syncEngine, spaceTheme, workspaceBackup
βββ types/ # Workspace, Sync, TabTracker, Raindrop, and CustomCode interfaces
βββ assets/ # Browser & OS device icons, logos
npm install-
Run Next.js Web App:
npm run dev:web
Open http://localhost:3000.
-
Run Extension in Watch Mode:
npm run dev:extension
-
Build Development Version of Extensions:
npm run build:extension:dev # or specifically: npm run build:extension:dev:chrome npm run build:extension:dev:firefox
-
Build All Workspaces:
npm run build
-
Build Next.js Web App:
npm run build:web
-
Build Chrome Extension (Manifest V3):
npm run build:extension:chrome
Output directory:
apps/extension/dist/chrome -
Build Firefox Extension (Manifest V3):
npm run build:extension:firefox
Output directory:
apps/extension/dist/firefox -
Typecheck Entire Codebase:
npm run typecheck
- Navigate to
chrome://extensions/. - Enable Developer mode (toggle in the top-right corner).
- Click Load unpacked.
- Select
apps/extension/dist/chrome. - Open the Side Panel from your browser toolbar or extension icon to access Arcable.
- Navigate to
about:debugging#/runtime/this-firefox. - Click Load Temporary Add-on....
- Select
apps/extension/dist/firefox/manifest.json(or any file withindist/firefox). - Open the Firefox sidebar to view Arcable.
Tip
Zen Browser Users: To hide the native white extension sidebar header for a seamless workspace, run this one-line command:
macOS & Linux (Terminal):
curl -fsSL https://raw.githubusercontent.com/oscarqht/arcable/main/scripts/zen-hide-sidebar-header.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/oscarqht/arcable/main/scripts/zen-hide-sidebar-header.ps1 | iexThen restart Zen Browser.
Arcable natively synchronizes with Raindrop.io via OAuth 2.0 or a Personal Access Token.
- Navigate to Raindrop Settings β Integrations.
- Create a Test / Personal Token.
- Paste the token into the Arcable Web App or Extension Settings/Options page.
- Register an application in the Raindrop Developer Console.
- Add your credentials to
apps/web/.env.local:RAINDROP_CLIENT_ID=your_client_id RAINDROP_CLIENT_SECRET=your_client_secret RAINDROP_REDIRECT_URI=http://localhost:3000/api/auth/callback/raindrop
- Click Sign in with Raindrop OAuth in the Web App or Extension.
- Local-First: Workspace data is kept local by default and works fully offline.
- Zero Tracking: No tracking cookies, analytics SDKs, behavioral fingerprinting, or ads.
- Direct Sync: Synchronization connects directly between your browser and the official Raindrop.io API.
- For full details, see PRIVACY.md.
MIT
