Install the "project-session-manager" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/project-session-manager into .claude/skills/project-session-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-session-manager", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill project-session-manager -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "project-session-manager" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/project-session-manager into .agents/skills/project-session-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-session-manager", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill project-session-manager -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "project-session-manager" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/project-session-manager into .cursor/skills/project-session-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-session-manager", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill project-session-manager -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "project-session-manager" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/project-session-manager into .gemini/skills/project-session-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-session-manager", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill project-session-manager -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "project-session-manager" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/project-session-manager into .github/skills/project-session-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-session-manager", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add Yeachan-Heo/oh-my-claudecode --skill project-session-manager -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "project-session-manager" agent skill from https://github.com/Yeachan-Heo/oh-my-claudecode/tree/main/skills/project-session-manager into .opencode/skills/project-session-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-session-manager", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
project-session-manager
GitHub stars
40k
Token cost
~4k tokens
SKILL.md length
879 words
Files
21
Skills in repo
47
Repo updated
First seen
Licence
MIT
At a glance
Creates isolated git worktrees, with optional tmux sessions, for PR reviews, issue fixes and feature work across projects and repositories.
Works in 3 steps: Subcommand: review, fix, feature, list,… → Reference: project#number, URL, or… → Options: --branch, --base, --no-claude,…
Reviewing a pull request in its own worktree
SKILL.md covers Commands, Project References, Configuration and Providers, plus 7 more sections
Runs Shell scripts from its folder; calls git, gh and jq; reaches github.com
What it does
This skill sets up a separate working environment for each task. Its quick start is omc teleport, which creates a worktree for an issue, a PR or a named feature and lists existing ones. The fuller psm commands add sessions: review for PRs, fix for issues and feature for new work, plus list, attach, kill, cleanup and status.
A target can be a project alias from ~/.psm/projects.json, owner/repo#123, a full URL or just #123 for the current repository. GitHub is the default provider and uses gh. Jira works for fix and feature through the jira CLI and an alias that sets jira_project, and the repo field is still needed because the work happens in a git repository. A clone_url entry covers non-GitHub repos, and provider scripts for Azure DevOps, Bitbucket, Gitea and GitLab are in the folder too.
When your agent uses it
Reviewing a pull request in its own worktree
Fixing an issue without disturbing the current checkout
Running several tasks in parallel across repositories
Cleaning up sessions whose PRs have been merged or closed
Example prompts
“Review PR 123 in a separate worktree.”
“Start a feature session called add-webhooks in the omc project.”
“Create a worktree for issue 42 and open it in a tmux session.”
“Clean up every session whose pull request was merged or closed.”
Requirements
Git
The `gh` CLI for GitHub projects, or the `jira` CLI for Jira projects
tmux for sessions (optional)
oh-my-claudecode for the omc command
Workflow steps
3 steps, taken from the first numbered list in SKILL.md.
1Subcommand: review, fix, feature, list, attach, kill, cleanup, status
2Reference: project#number, URL, or session ID
3Options: --branch, --base, --no-claude, --no-tmux, etc.
What it can do on your machine
Read from SKILL.md and the folder at commit 454bae0. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Ships script files (Shell, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
git
gh
jq
brew
From the folder's file list and the shell code blocks in SKILL.md.
Network
Hosts in commands or code, which the agent is likely to contact:
github.com
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Project Session Manager loads about 4k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 879 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~30
When it runs· the whole SKILL.md, loaded when a task matches
~4k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/project-session-manager/SKILL.md (or your agent's skills folder). This skill also uses 20 other files; get the full folder from GitHub.
name
project-session-manager
description
Worktree-first dev environment manager for issues, PRs, and features with optional tmux sessions
aliases
psm
level
2
Project Session Manager (PSM) Skill
psm is the compatibility alias for this canonical skill entrypoint.
Quick Start (worktree-first): Start with omc teleport when you want an isolated issue/PR/feature worktree before adding any tmux/session orchestration:
bash
omc teleport #123 # Create worktree for issue/PR
omc teleport my-feature # Create worktree for feature
omc teleport list # List worktrees
Automate isolated development environments using git worktrees and tmux sessions with Claude Code. Enables parallel work across multiple tasks, projects, and repositories.
PSM only recognizes PROJ-123 format as Jira when PROJ is explicitly configured as a jira_project in your aliases. This prevents false positives from branch names like FIX-123.
Jira Examples
bash
# Fix a Jira issue (MYPROJ must be configured)
psm fix MYPROJ-123
# Fix using alias (recommended)
psm fix mywork#123
# Feature development (works same as GitHub)
psm feature mywork add-webhooks
# Note: 'psm review' is not supported for Jira (no PR concept)
# Use 'psm fix' for Jira issues
The public session ID (colon form, e.g. omc:pr-123) is the human-facing
identifier stored in sessions.json and used with psm attach/psm kill. tmux
reserves : and . for its session:window.pane target syntax and silently
rewrites them, so the actual tmux session name uses a tmux-safe form where
those characters become _ (issue #3528). PSM translates the public ID to the
tmux-safe name at every tmux boundary; attach directly with the tmux-safe name.
Type
Public ID (psm attach/kill)
Tmux Session (tmux attach -t)
Worktree Dir
PR Review
omc:pr-123
psm_omc_pr-123
~/.psm/worktrees/omc/pr-123
Issue Fix
omc:issue-42
psm_omc_issue-42
~/.psm/worktrees/omc/issue-42
Feature
omc:feat-auth
psm_omc_feat-auth
~/.psm/worktrees/omc/feat-auth
Implementation Protocol
When the user invokes a PSM command, follow this protocol:
Parse Arguments
Parse {{ARGUMENTS}} to determine:
Subcommand: review, fix, feature, list, attach, kill, cleanup, status
Reference: project#number, URL, or session ID
Options: --branch, --base, --no-claude, --no-tmux, etc.
# --dangerously-skip-permissions prevents the "Do you trust this directory?" prompt
# and repeated tool-approval prompts from stalling the session (issue #2508).
tmux send-keys -t "psm_${project_alias}_pr-$pr_number" "claude --dangerously-skip-permissions" Enter
# After claude boots (PSM_CLAUDE_STARTUP_DELAY, default 5s), deliver the task.
# Use -l (literal) so special characters are not misinterpreted by tmux.
sleep "${PSM_CLAUDE_STARTUP_DELAY:-5}"
tmux send-keys -t "psm_${project_alias}_pr-$pr_number" -l \
"Review PR #$pr_number: \"$pr_title\" by @$pr_author ($head_branch → $base_branch). URL: $pr_url." Enter
Active PSM Sessions:
ID | Type | Status | Worktree
-------------------|---------|----------|---------------------------
omc:pr-123 | review | active | ~/.psm/worktrees/omc/pr-123
omc:issue-42 | fix | detached | ~/.psm/worktrees/omc/issue-42
Subcommand: attach <session>
Purpose: Attach to existing session
Steps:
Parse session ID: project:type-number
Verify session exists:
bash
tmux has-session -t "psm_${session_id//[.:]/_}" 2>/dev/null # translate public id to tmux-safe name
tmux display-message -p "#{session_name}" 2>/dev/null
# or check if cwd is inside a worktree
Read session metadata:
bash
cat .psm-session.json 2>/dev/null
Show status:
Current Session: omc:pr-123
Type: review
PR: #123 - Add webhook support
Branch: feature/webhooks
Created: 2 hours ago
Error Handling
Error
Resolution
Worktree exists
Offer: attach, recreate, or abort
PR not found
Verify URL/number, check permissions
No tmux
Warn and skip session creation
No gh CLI
Error with install instructions
Teleport Command
The omc teleport command provides a lightweight alternative to full PSM sessions. It creates git worktrees without tmux session management — ideal for quick, isolated development.
Usage
bash
# Create worktree for an issue or PR
omc teleport #123
omc teleport owner/repo#123
omc teleport https://github.com/owner/repo/issues/42
# Create worktree for a feature
omc teleport my-feature
# List existing worktrees
omc teleport list
# Remove a worktree
omc teleport remove issue/my-repo-123
omc teleport remove --force feat/my-repo-my-feature
Project Session Manager next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Project Session Manager compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Project Session Manager this skillYeachan-Heo/oh-my-claudecode
A skill your agent uses whenever releasing or deploying KanVibe desktop from a clean, up-to-date dev checkout: ask only for the target version and release-note approval, then let the AI update…
Audits, preserves and recovers local Git state before cleanup: unpushed or wrong-branch commits, dirty worktrees, duplicate clones, stashes, dangling commits, squash-merge uncertainty.
Charts a foggy effort into a map of decision tickets on the repo's issue tracker and works through them one per session, producing decisions rather than deliverables.
Runs an autonomous improvement loop on a repository: agents propose and execute plans, a tournament picks the winner by benchmark, and each round is recorded and plotted.
Takes a short product idea through requirements, design, planning, parallel implementation, QA cycles and multi-reviewer validation to produce working code.
Creates isolated git worktrees, with optional tmux sessions, for PR reviews, issue fixes and feature work across projects and repositories. This skill sets up a separate working environment for each task. Its quick start is omc teleport, which creates a worktree for an issue, a PR or a named feature and lists existing ones.
When should I use Project Session Manager?
Project Session Manager fits situations like: reviewing a pull request in its own worktree; fixing an issue without disturbing the current checkout; running several tasks in parallel across repositories; cleaning up sessions whose PRs have been merged or closed.
How do I install Project Session Manager in Claude Code?
Run `npx skills add Yeachan-Heo/oh-my-claudecode --skill project-session-manager -a claude-code`. Or copy the skill folder (skills/project-session-manager in Yeachan-Heo/oh-my-claudecode) into .claude/skills/project-session-manager in your project. Claude Code loads it when a task matches its description.
How do I install Project Session Manager in Codex?
Run `npx skills add Yeachan-Heo/oh-my-claudecode --skill project-session-manager -a codex`. Or copy the skill folder (skills/project-session-manager in Yeachan-Heo/oh-my-claudecode) into .agents/skills/project-session-manager in your project. Codex loads it when a task matches its description.
Can I use Project Session Manager in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Yeachan-Heo/oh-my-claudecode --skill project-session-manager -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/project-session-manager, .gemini/skills/project-session-manager, .github/skills/project-session-manager and .opencode/skills/project-session-manager in your project.
What does Project Session Manager need to run?
Going by SKILL.md and its folder, Project Session Manager needs a shell for the scripts in its folder and the command-line tools its instructions call (git, gh, jq and brew). Our summary lists: Git; The `gh` CLI for GitHub projects, or the `jira` CLI for Jira projects; tmux for sessions (optional); oh-my-claudecode for the omc command.
Does Project Session Manager access the network?
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Is Project Session Manager safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Project Session Manager use?
Project Session Manager is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Project Session Manager use?
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Project Session Manager?
Skills that share tags, products or a category with Project Session Manager: Multi Agent Orchestration (cat-xierluo/legal-skills, 720 stars), Clean Complete Branches (jtenniswood/espcontrol, 1.1k stars), Kanvibe Release Deploy (rookedsysc/kanvibe, 144 stars) and Conventional Git (samber/cc-skills, 227 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Project Session Manager?
Yeachan-Heo (a GitHub user) maintains it in Yeachan-Heo/oh-my-claudecode, which has 39,751 GitHub stars. The repository holds 47 skills in this directory. The repository was last updated on October 8, 2026.
Source: Yeachan-Heo/oh-my-claudecode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.