
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
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.
om)
A fast and friendly CLI tool to manage and open your local repositories in VS Code, Windsurf, Cursor, Antigravity, 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.
Install globally via npm:
npm install -g openmate
Verify installation:
om --version
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
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
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
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 <name> -d Open repo/collection in LOCAL preferred IDE (falls back to global)
om <name> Open repo/collection in GLOBAL preferred IDE (falls back to local)
Below are some practical examples of how to use OpenMate for managing repositories and collections.
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>
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:
Once a preferred IDE is set (locally or via global ide_default), you can use:
# Prioritizes GLOBAL default (if set), then falls back to local preference
om <name>
# Prioritizes LOCAL preference (if set), then falls back to global default
om <name> -d
# Explicitly open in a specific IDE
om <name> vs
om <name> ws
om <name> cs
om <name> ij
om <name> pc
om <name> ag
If no preferred IDE is found (neither local nor global), OpenMate will warn you and show usage instructions.
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
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>
om listWhen you run om list, it shows all stored repositories and collections:
Stored repos:
┌─────┬──────────┬───────────────────────────────┬─────────────┐
│ # │ Name │ Repo Path │ Default IDE │
├─────┼──────────┼───────────────────────────────┼─────────────┤
│ 1 │ repo1 │ C:\Projects\repo1 │ VS │
│ 2 │ repo2 │ C:\Projects\repo2 │ WS │
│ 3 │ repo3 │ C:\Projects\repo3 │ │
│ 4 │ repo4 │ C:\Projects\repo4 │ CS │
└─────┴──────────┴───────────────────────────────┴─────────────┘
Collections:
┌─────┬────────────────────┬──────────┬─────────────┬───────────────────────────┐
│ # │ Name │ Repos │ Default IDE │ Repository Names │
├─────┼────────────────────┼──────────┼─────────────┼───────────────────────────┤
│ 1 │ collection1 │ 2 │ VS │ repo1, repo2 │
│ 2 │ collection2 │ 2 │ │ repo3, repo4 │
└─────┴────────────────────┴──────────┴─────────────┴───────────────────────────┘
om list -r
Sample Output:
Stored Repositories:
┌─────┬──────────┬───────────────────────────────┬─────────────┐
│ # │ Name │ Repo Path │ Default IDE │
├─────┼──────────┼───────────────────────────────┼─────────────┤
│ 1 │ repo1 │ C:\\Projects\\repo1 │ VS │
│ 2 │ repo2 │ C:\\Projects\\repo2 │ WS │
│ 3 │ repo3 │ C:\\Projects\\repo3 │ │
└─────┴──────────┴───────────────────────────────┴─────────────┘
om list -c
Sample Output:
Collections:
┌─────┬──────────────┬──────────┬─────────────┬───────────────────────────────┐
│ # │ Name │ Repos │ Default IDE │ Repository Names │
├─────┼──────────────┼──────────┼─────────────┼───────────────────────────────┤
│ 1 │ frontend │ 4 │ VS │ repo1, repo2, repo3, repo4 │
│ 2 │ backend │ 2 │ IJ │ repo5, repo6 │
└─────┴──────────────┴──────────┴─────────────┴───────────────────────────────┘
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 │
└─────┴──────────┴───────────────────────────────┘
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
om list nonexistent
Sample Output:
❌ Collection "nonexistent" not found.
Available collections:
1. frontend
2. backend
OpenMate UI is a desktop application that allows you to manage and open your local repositories in your favorite editor with quick shortcuts.
Features:
supports all the cli features and also has some extra features.
Extra Features:
Screenshots
Main Window

Add Repository

Edit Repository

Add Collection

Edit Collection

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).code, windsurf, cursor, ij, pc or ag must be available in terminal/Applicationsopen -a internally~/.openmate/repos.json)open -a <AppName> for launching appsOpenMate MCP is available as a Model Context Protocol server.
npm install -g openmate-mcp
Add configuration:
{
"mcpServers": {
"openmate": {
"command": "openmate-mcp"
}
}
}
MIT License © 2025 Pai
FAQs
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.
The npm package openmate receives a total of 5 weekly downloads. As such, openmate popularity was classified as not popular.
We found that openmate demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.