Skip to content

Repository files navigation

cmdOS

cmdOS

A keyboard-first command terminal for the browser.

Access search, browser commands, and web shortcuts — all from one command bar.

License Node pnpm PRs Welcome

Getting Started · Features · Contributing · Wiki · Community · Security · Code of Conduct · License


What is cmdOS?

cmdOS is a Chrome extension that replaces repetitive browser actions with keyboard commands. Instead of navigating menus, bookmarks, and tabs manually, you open cmdOS with Alt + S and run commands from one place.

It is entirely local-first — your data stays on your machine. No account required to use the core features.


Features

⌨️ Command Palette

Open cmdOS with Alt + S from any page and run commands instantly.

/notes           → Open your notes
/link            → Create or open a saved link
/screenshot      → Capture the current page
/shortcuts       → Manage keyboard shortcuts

### 🛠️ Browser Commands

Built-in commands available from the command bar:

- Visible-page and full-page screenshots
- Image download from current page
- Table extraction and CSV export
- Print-friendly PDF generation

---

## Tech Stack

| Layer | Technology |
|---|---|
| UI | React 19, TypeScript |
| Build | WXT, Vite 6, Turborepo |
| Styling | Tailwind CSS |
| Package manager | pnpm workspaces |
| Local Database | Dexie.js (IndexedDB) — all data stored locally on device |
| Storage | Chrome Extension APIs (local-first) |
| Extension | Manifest V3 |

---

## Repository Structure

<pre>
cmdOS/
├── background/                  # Service worker, manifest, extension bootstrap
├── packages/                    # Shared internal packages (monorepo)
│   ├── ui/                      # Design system components
│   ├── shared/                  # Utility helpers and schemas
│   ├── storage/                 # Chrome storage helpers
│   ├── env/                     # Environment variable schemas
│   └── module-manager/          # Core module configuration
├── src/
│   ├── allObjectFolder/         # Core object types — the heart of the extension
│   │   └── src/createObject/
│   │       ├── links/           # Link and Tab Session objects
│   │       ├── notes/           # Rich note objects
│   │       ├── snippets/        # Reusable text snippets
│   │       ├── commands/        # Command definitions and handlers
│   │       ├── session/         # Session tracking objects
│   │       ├── automationBeta/  # Automation workflow objects
│   │       ├── ChatAgent/       # AI agent integration
│   │       ├── aiPrompt/        # AI prompt objects
│   │       ├── todos/           # Task and to-do objects
│   │       └── tags/            # Tag management
│   ├── settings/                # Extension settings UI and logic
│   │   ├── authentication/      # Login and auth UI
│   │   ├── backup/              # Data backup and restore
│   │   ├── generalSettingsPageUi/  # General settings panel
│   │   ├── uiPersonalization/   # Theme and appearance settings
│   │   ├── uxLayoutCustomization/  # Layout customization options
│   │   └── allWorkspaceManager/ # Workspace and folder management
│   ├── storage/                 # Storage abstraction layer
│   ├── shared-components/       # Reusable UI components and utilities
│   ├── welcomeGuide/            # Onboarding and tutorial flows
│   └── pages/                   # Extension entry points
│       ├── AltS_search_newtab/  # Primary new tab workspace dashboard
│       ├── popup/               # Browser toolbar popup
│       ├── contentScript/       # Injected content scripts
│       └── content-ui/          # Injected UI overlays
├── docs/                        # Documentation and guides
└── .env                         # Environment config (pre-configured for local dev)
</pre>


---

## Getting Started

### Prerequisites

- **Node.js** `>= 22.12.0` — [Download](https://nodejs.org)
- **pnpm** `>= 9.15.1` — `npm install -g pnpm`
- Google Chrome or any Chromium-based browser

### Installation

**1. Clone the repository**

```bash
git clone https://github.com/cmdOS-App/cmdOS.git
cd cmdOS

2. Install dependencies

pnpm install

The .env file is already pre-configured with the OSS extension public key and Google OAuth client ID. No changes needed to run locally.


Development

Start the WXT dev server with hot reload:

pnpm dev

Then load the extension in Chrome:

  1. Open chrome://extensions/
  2. Enable Developer mode (top right toggle)
  3. Click Load unpacked
  4. Select the .output/chrome-mv3/ directory

WXT watches your files and automatically reloads the extension when you save changes. All your notes, snippets, and data are stored locally in Dexie.js (IndexedDB) — nothing leaves your device.


Building

Build the production extension (with the shared OSS extension ID locked):

pnpm run wxt:build:chrome:oss

The built extension will be in .output/chrome-mv3/. Load it in Chrome:

  1. Open chrome://extensions/
  2. Enable Developer mode
  3. Click Load unpacked
  4. Select .output/chrome-mv3/

The wxt:build:chrome:oss command automatically sets the correct build variant, loads the OSS environment file, and locks the shared extension ID so Google OAuth redirect URIs match for all contributors.

To create a .zip ready for the Chrome Web Store:

pnpm run wxt:zip:chrome:oss

Type Checking

pnpm type-check

Linting

pnpm lint
pnpm prettier

Contributing

We welcome contributions! Please read CONTRIBUTING.md and our Code of Conduct before opening a pull request.


License

Copyright © 2024–2026 RPA TASKLABS AUTOMATION SOFTWARE PRIVATE LIMITED · Apache License 2.0

About

The fastest way to access everything in your browser: notes, automations, agents, links, snippets, and more. Browse 2× faster with command shortcuts.

Topics

Resources

Contributing

Security policy

Stars

23 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages