npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

openmate

v1.4.1

Published

OpenMate: A fast CLI tool to open local repos or entire collections in VS Code, Windsurf, or Cursor using simple shortcuts for an efficient developer workflow.

Readme

OpenMate (om)

Visitors NPM Downloads NPM Version GitHub Stars License

A fast and friendly CLI tool to manage and open your local repositories in VS Code, Windsurf, Cursor, IntelliJ IDEA, or PyCharm with quick shortcuts. Perfect for developers who frequently switch between projects.

Note: In this context, repository refers to your local project folder stored on your computer, not remote (GitHub/GitLab/Bitbucket) repositories.

Table of Contents


OpenMate CLI

📌 Notes & OS Compatibility

  • Supported editors: VS Code, Windsurf, Cursor, IntelliJ IDEA, PyCharm and Antigravity.
  • On Windows, use double quotes for paths.

📦 Installation

Install globally via npm:

npm install -g openmate

Verify installation:

om --version

⚡ Usage

Available Commands

Repository Management

om init <name>                        Initialize current directory as a repository
om add <name> "<path/to/repo>"        Add a repo (no duplicate names)
om update <name> "<new/path>"         Update stored path for existing name
om remove <name>                      Remove stored repo
om ide <name> <ide>                   Set preferred IDE (vs, ws, cs, ij, pc, ag)
om list                               List all stored repos
om path <name>                        Print the stored path

Examples

Initialize Current Directory as a Repository

Navigate to your project directory and run:

om init repo1

Output:

✅ Added "repo1" -> C:/Projects/repo1

Now you can open this repository in your default editor using:

om vs repo1  # Opens in VS Code
# or
om ws repo1  # Opens in Windsurf

Collection Management

om add -c <name> <repo1,repo2,...>    Add/update a collection of repos
om update -c <name> <repo1,repo2,...> Update a collection's repos
om remove -c <name>                   Remove a collection
om list -c                            List all collections
om list <collection>                  Show details of a specific collection

Open Repositories/Collections

om vs <name>                          Open repo/collection in VS Code
om ws <name>                          Open repo/collection in Windsurf
om cs <name>                          Open repo/collection in Cursor
om ij <name>                          Open repo/collection in IntelliJ IDEA
om pc <name>                          Open repo/collection in PyCharm
om ag <name>                          Open repo/collection in Antigravity
om d <name>                           Open repo/collection in preferred IDE
om <name>                             Alias for `om d <name>` (if preferred IDE is set)

Examples

Below are some practical examples of how to use OpenMate for managing repositories and collections.


Basic Repository Usage

A repository is a single project folder on your local machine. You can add, update, remove, and open repositories using short commands.

# Add a repository with a short name (alias)
om add <repo-name> "<path-to-repo>"

# Open the repository in VS Code
om vs <repo-name>

# Open the repository in Windsurf
om ws <repo-name>

# Open the repository in Cursor
om cs <repo-name>

# Open the repository in IntelliJ IDEA
om ij <repo-name>

# Open the repository in PyCharm
om pc <repo-name>

# Open the repository in Antigravity
om ag <repo-name>

Update or remove a repository:

# Update the path of an existing repository
om update <repo-name> "<new-path-to-repo>"

# Remove the repository
om remove <repo-name>

Preferred IDE

You can set a preferred IDE for any repository or collection. This allows you to open it directly without specifying the editor every time.

Set a preferred IDE:

om ide <name> vs   # Set VS Code as default
om ide <name> ws   # Set Windsurf as default

Open in preferred IDE:

Once a preferred IDE is set, you can use either of these commands:

om d <name>
# or simply
om <name>

If no preferred IDE is set, om d or om <name> will warn you and show usage instructions.


Listing Repositories and Collections

Use the list command to view repositories and collections:

# List all repositories and collections
om list

# List only repositories
om list -r

# List only collections
om list -c

View details of a specific collection:

om list <collection-name>
# Example Output:
# ✅ Collection "<collection-name>":
#    repo1, repo2, repo3

If the collection doesn’t exist:

om list <nonexistent>
# Output:
# ❌ Collection "<nonexistent>" not found.
# Available collections:
#   1. frontend
#   2. backend

Working with Collections

A collection is a group of related repositories you can manage together.

Create a collection:

om add -c <collection-name> repo1,repo2,repo3,repo4

Here:

  • -c indicates you are adding a collection.
  • <collection-name> is the name of the collection.
  • repo1,repo2,repo3,repo4 are the repository names in the collection.

Open all repositories in a collection:

om vs <collection-name>

Update a collection (add/remove repos):

om update -c <collection-name> repo1,repo2,repo3,repo4,repo5

List all collections:

om list -c

Remove a collection:

om remove -c <collection-name>

Sample Outputs

om list

When you run om list, it shows all stored repositories and collections:

Stored repos:
┌─────┬──────────┬───────────────────────────────┐
│ #   │ Name     │ Repo Path                     │
├─────┼──────────┼───────────────────────────────┤
│ 1   │ repo1    │ C:\Projects\repo1             │
│ 2   │ repo2    │ C:\Projects\repo2             │
│ 3   │ repo3    │ C:\Projects\repo3             │
│ 4   │ repo4    │ C:\Projects\repo4             │
└─────┴──────────┴───────────────────────────────┘

Collections:
┌─────┬────────────────────┬──────────┬───────────────────────────┐
│ #   │ Name               │ Repos    │ Repository Names          │
├─────┼────────────────────┼──────────┼───────────────────────────┤
│ 1   │ collection1        │ 2        │ repo1, repo2              │
│ 2   │ collection2        │ 2        │ repo3, repo4              │
└─────┴────────────────────┴──────────┴───────────────────────────┘

List Only Repositories

om list -r

Sample Output:

Stored Repositories:
┌─────┬──────────┬───────────────────────────────┐
│ #   │ Name     │ Repo Path                     │
├─────┼──────────┼───────────────────────────────┤
│ 1   │ repo1    │ C:\\Projects\\repo1           │
│ 2   │ repo2    │ C:\\Projects\\repo2           │
│ 3   │ repo3    │ C:\\Projects\\repo3           │
└─────┴──────────┴───────────────────────────────┘

List Only Collections

om list -c

Sample Output:

Collections:
┌─────┬──────────────┬──────────┬───────────────────────────────┐
│ #   │ Name         │ Repos    │ Repository Names              │
├─────┼──────────────┼──────────┼───────────────────────────────┤
│ 1   │ frontend     │ 4        │ repo1, repo2, repo3, repo4    │
│ 2   │ backend      │ 2        │ repo5, repo6                  │
└─────┴──────────────┴──────────┴───────────────────────────────┘

List a Specific Collection

om list frontend

Sample Output:

Collection: frontend
Repositories:
┌─────┬──────────┬───────────────────────────────┐
│ #   │ Name     │ Repo Path                     │
├─────┼──────────┼───────────────────────────────┤
│ 1   │ repo1    │ C:\\Projects\\repo1           │
│ 2   │ repo2    │ C:\\Projects\\repo2           │
│ 3   │ repo3    │ C:\\Projects\\repo3           │
│ 4   │ repo4    │ C:\\Projects\\repo4           │
└─────┴──────────┴───────────────────────────────┘

Smart Suggestions

When you type a partial repository or collection name, OpenMate will show you matching suggestions:

om ws st

Sample Output:

❌ No exact match for "st". Did you mean one of these?

Suggestions:
Repositories:   stagentdash  stapp  stappdocs  stboxesmfe  stdaisy  stsearch
Collections:    stagent  stsite  stuser

When Collection Doesn't Exist

om list nonexistent

Sample Output:

❌ Collection "nonexistent" not found.
Available collections:
  1. frontend
  2. backend

OpenMate UI

OpenMate UI is a desktop application that allows you to manage and open your local repositories in your favorite editor with quick shortcuts.

Download

Features:

supports all the cli features and also has some extra features.

  • Add repositories
  • Edit repositories
  • Add collections
  • Edit collections
  • Open repositories
  • Open collections

Extra Features:

  • Dark/Light mode
  • Select default editor
  • Search repositories and collections

Screenshots

  • Main Window OpenMate UI OpenMate UI

  • Add Repository OpenMate UI

  • Edit Repository OpenMate UI

  • Add Collection OpenMate UI

  • Edit Collection OpenMate UI

Key Tips

  • Use short names (aliases) for repositories for quick access.
  • Collections save time when you work on multiple related repositories.
  • om vs, om ws, om cs, om ij, om pc and om ag let you choose your editor (VS Code, Windsurf, Cursor, IntelliJ IDEA, PyCharm or Antigravity).

🔧 Requirements

General

  • Node.js (>= 14.x)

Windows

  • VS Code, Windsurf, Cursor, IntelliJ IDEA, PyCharm or Antigravity installed and added to PATH
  • CLI commands code, windsurf, cursor, ij, pc or ag must be available in terminal

macOS

  • VS Code, Windsurf, Cursor, IntelliJ IDEA, PyCharm or Antigravity installed in /Applications
  • No CLI needed; uses open -a internally

📂 How It Works

  • Stores repo names and paths in a local JSON file (~/.openmate/repos.json)
  • Uses system commands to open editors
  • macOS uses open -a <AppName> for launching apps

OpenMate MCP

OpenMate MCP is available as a Model Context Protocol server.

Install

npm install -g openmate-mcp

Use with Claude Desktop / Windsurf / Cursor / Antigravity

Add configuration:

{
  "mcpServers": {
    "openmate": {
      "command": "openmate-mcp"
    }
  }
}

More info here.


📝 License

MIT License © 2025 Pai