Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add RobinNorberg/oh-my-copilot --skill project-session-managergit clone --depth 1 https://github.com/RobinNorberg/oh-my-copilotWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/robinnorberg/oh-my-copilot/project-session-manager)<a href="https://agentmods.dev/skills/robinnorberg/oh-my-copilot/project-session-manager"><img src="https://agentmods.dev/badge/skills/robinnorberg/oh-my-copilot/project-session-manager/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/robinnorberg/oh-my-copilot/project-session-manager"><img src="https://agentmods.dev/badge/skills/robinnorberg/oh-my-copilot/project-session-manager.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00023 | $0.05060 |
| Opus 5.5 | $0.00009 | $0.02024 |
| Sonnet 5.5 | $0.00005 | $0.01012 |
| Haiku 4.5 | $0.00002 | $0.00506 |
Grade A, and why
project-session-manager scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
node -e "const{execFileSync}=require('node:child_process');let o='';try{o=execFileSync('tmux',['list-sessions','-F','#{session_name}'],{encoding:'utf8'})}catch{o=''};for(const s of o.split(/\r?\n/).map(x=>x.trim()).filte This is a copy
88% identical to project-session-manager — 85 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 574 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Project Session Manager (PSM) Skill
psm is the compatibility alias for this canonical skill entrypoint.
Quick Start (worktree-first): Start with
omc teleportwhen you want an isolated issue/PR/feature worktree before adding any tmux/session orchestration:omc teleport #123 # Create worktree for issue/PR omc teleport my-feature # Create worktree for feature omc teleport list # List worktreesSee Teleport Command below for details.
Automate isolated development environments using git worktrees and tmux sessions with Claude Code. Enables parallel work across multiple tasks, projects, and repositories.
Canonical slash command: /oh-my-copilot:project-session-manager (alias: /oh-my-copilot:psm).
Commands
| Command | Description | Example |
|---|---|---|
review <ref> |
PR review session | /psm review omc#123 |
fix <ref> |
Issue fix session | /psm fix omc#42 |
feature <proj> <name> |
Feature development | /psm feature omc add-webhooks |
list [project] |
List active sessions | /psm list |
attach <session> |
Attach to session | /psm attach omc:pr-123 |
kill <session> |
Kill session | /psm kill omc:pr-123 |
cleanup |
Clean merged/closed | /psm cleanup |
status |
Current session info | /psm status |
Project References
Supported formats:
- Alias:
omc#123(requires~/.psm/projects.json) - Full:
owner/repo#123 - URL:
https://github.com/owner/repo/pull/123 - Current:
#123(uses current directory's repo)
Configuration
Project Aliases (~/.psm/projects.json)
{
"aliases": {
"omc": {
"repo": "RobinNorberg/oh-my-copilot",
"local": "~/Workspace/oh-my-copilot",
"default_base": "main"
}
},
"defaults": {
"worktree_root": "~/.psm/worktrees",
"cleanup_after_days": 14
}
}
Providers
PSM supports multiple issue tracking providers:
| Provider | CLI Required | Reference Formats | Commands |
|---|---|---|---|
| GitHub (default) | gh |
owner/repo#123, alias#123, GitHub URLs |
review, fix, feature |
| Jira | jira |
PROJ-123 (if PROJ configured), alias#123 |
fix, feature |
What ships with it
19 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- lib/config.sh 3.7 KB runs code
- lib/parse.sh 5.9 KB runs code
- lib/providers/azure-devops.sh 1.5 KB runs code
- lib/providers/bitbucket.sh 1.8 KB runs code
- lib/providers/gitea.sh 2.7 KB runs code
- lib/providers/github.sh 1.5 KB runs code
- lib/providers/gitlab.sh 1.5 KB runs code
- lib/providers/interface.sh 1.9 KB runs code
- lib/providers/jira.sh 2.2 KB runs code
- lib/session.sh 5.8 KB runs code
- lib/tmux.sh 7.7 KB runs code
- lib/worktree.sh 7.0 KB runs code
- psm.sh 26 KB runs code
- templates/feature.md 1.1 KB
- templates/issue-fix.md 1.1 KB
- templates/pr-review.md 1.5 KB
- templates/projects.json 413 B
- tests/test-jira-provider.sh 6.2 KB runs code
- tests/test-psm-prompt-injection.sh 12 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago Changed 4bae0a3c2ad2
- 1mo ago First seen · 574 lines · 23 tokens per session scan A 848e727122da
project-session-manager is a skill published in the GitHub repository RobinNorberg/oh-my-copilot (5 stars, last pushed yesterday), licensed MIT. It adds 23 tokens to every session and 5,060 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 1 finding (runs shell commands). It is 88% identical to project-session-manager, differing in 85 lines, and is treated as a copy.
Other skills, from other repositories
implement-ticket
Use when asked to implement, build, or pick up a ticket end to end — a Jira work item, GitHub Issue, or GitLab Issue — including "implement ABC-123", "implement gh issue #137", "work on issue 137", or "pick up this ticket". Critiques the request against the code, builds it in a throwaway git worktree, verifies it with…
project-session-manager
Worktree-first dev environment manager for issues, PRs, and features with optional tmux sessions.
close-task-commit-push-pr
Close the active backlog task (detected from branch name), commit all changes, push to remote, and open a pull request. Use when the user says "close task and ship it", "close task commit push pr", or invokes /close-task-commit-push-pr.
start-task
Create a feature branch for a backlog task, switch to it, and start implementation. Use when the user says "start task-123", "work on task-123", "implement task-123", or invokes /start-task with a task ID.
github-triage
Triage GitHub issues through a label-based state machine with interactive grilling sessions. Use when user wants to triage issues, review incoming bugs or feature requests, prepare issues for an AFK agent, or manage issue workflow.
github-pr-workflow
Use when creating, updating, or managing pull requests — reads PRs and reviews with gh (the default when installed) or the built-in GitHub MCP server when exposed, and opens, updates, or merges them with /pr or gh.