message-project
Forward a message from the user to a specific named project-lead and read the lead's reply.
Skill by techfreakworm
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/techfreakworm-message-project
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: sales
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/message-project
What's inside
- Skill name
message-project- Description
- Forward a message from the user to a specific named project-lead and read the lead's reply. Use when the user says "tell <project> to ...", "ask <project> about ...", or "<project>: ...".
- License
- MIT
- Instructions
- 91 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- allowed-tools: must be a space-separated string
Files (1)
- SKILL.md
SKILL.md (first lines)
# message-project Project-leads are NOT teammates of the channel bot. Each lead is an independent claude process in its OWN tmux server (socket `soma-lead-<name>`, session `soma-proj-<name>`, in a sibling cgroup). `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` only lets a lead spawn its own subagents; it does NOT federate the lead into the bot's team. So `SendMessage(to: "soma-proj-<name>")` always fails with "No agent named ... is currently addressable", and there is **no push-back channel** from a lead back to the bot. Therefore: deliver by typing into the lead's tmux pane, and read the reply by scraping that pane. > **If you are the channel bot, do NOT run this skill inline.** The reply-poll > in step 3 is unbounded (the lead may think for minutes) and would freeze the > Telegram channel. Dispatch a background `Agent` (`run_in_background=true`, > `model="opus"`) whose prompt is to run this flow and return the lead's reply, > ack the user immediately, and relay the reply when the agent completes — see > "Messaging a project-lead" in `system_prompts/responsive_bot.md`. Run the > steps below inline only when you are already a background/non-channel agent > (e.g. that dispatched agent, or a project-lead talking to another lead). ## Process 1. **Resolve + validate.** Extract the target project name from the user's message, then call `mcp__project-orchestrator__send_to_project(name, message)`. This DELIVERS NOTHING -- use it only to (a) confirm the project exists (it raises `no project named X` otherwise) and (b) confirm the bare name. From the bare name the tmux coordinates are fixed: - socket: `soma-lead-<name>` - session: `soma-proj-<name>` 2. **Deliver the message** with two SEPARATE tmux calls -- type the literal text, then submit. Combining the text and Enter into one call is unreliable. Shell-safety: the user's text is arbitrary (it may contain `'`, `"`, `$`, backticks, `#`, newlines). Wrap the whole message in SINGLE quotes and escape any embedded single quote as `'\''`. This is exactly what `shlex.quote` produces; inside single quotes every other character is literal, so nothing can expand or break out of the argument. ```bash # type the message literally (-l = literal text, no key-name interpretation) tmux -L soma-lead-<name> send-keys -t soma-proj-<name> -l '<safely-quoted message>' # submit it as a SEPARATE call tmux -L soma-lead-<name> send-keys -t soma-proj-<name> C-m ``` Worked example -- message is: `what's the $STATUS of build #3?` ```bash tmux -L soma-lead-f1-tracker send-keys -t soma-proj-f1-tracker -l 'what'\''s the $STATUS of build #3?' tmux -L soma-lead-f1-tracker send-keys -t soma-proj-f1-tracker C-m ``` If the text lands in the prompt but doesn't submit, send one more `C-m` after ~1s as a fallback. If the message spans multiple lines, send it as one `-l` call (single quotes preserve the newlines) -- but note each newline is delivered as an Enter, so the lead may treat lines as separate inputs; to keep a multi-line message as one turn, collapse it to a single line first. 3. **Read the reply by scraping the pane** (there is no reply bus). Give the lead a few seconds, then capture its pane; poll up to a few times if it's still thinking: ```bash sleep 4 tmux -L soma-lead-<name> capture-pane -p -t soma-proj-<name> ``` `capture-pane -p` returns the visible screen -- the lead's most recent output -- so just read the last lines of it for the response. For more scrollback, add `-S -<N>` (e.g. `-S -80` to start ~80 lines back). If the footer still shows the lead working/thinking, `sleep` again and re-capture. (Deliberately no `| tail`: the bare capture is already the tail, which keeps this skill's only shell dependency the single `tmux -L soma-lead-*` pattern. The pane is a live TUI, so expect box-drawing and a prompt footer around the text.) 4. **Report to the user**: relay the lead's response. If it's still working after a couple of polls, say the message was delivered and the lead is still processing. ## Error handling - `send_to_project` raises `no project named X`: the project doesn't exist (or already died and was reconciled out). Offer the closest match from `list_projects` and ask the user to confirm. - A tmux call prints `can't find session` or `no server running on ...`: the lead's session has died even if the registry still listed it. Tell the user the lead isn't running and offer to respawn it (spawn-project).
From techfreakworm/claude-soma, MIT.
More from techfreakworm/claude-soma
- 0.534score
hyperframes
techfreakworm
Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML.
SkillCFreshness: C★ 5Claude Code +9 - 0.534score
make-a-video
techfreakworm
Beginner-friendly end-to-end video creator for HyperFrames.
SkillCFreshness: C★ 5Claude Code +9 - 0.534score
gsap
techfreakworm
GSAP animation reference for HyperFrames.
SkillCFreshness: C★ 5Claude Code +9 - 0.529score
codex-image-gen
techfreakworm
Generate or edit an image by delegating to the user's Codex CLI subscription.
SkillCFreshness: C★ 5Claude Code +9 - 0.529score
hyperframes-cli
techfreakworm
HyperFrames CLI tool — hyperframes init, lint, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark.
SkillCFreshness: C★ 5Claude Code +9 - 0.529score
respond-with-voice
techfreakworm
Reply to the user with a voice note instead of (or in addition to) text.
SkillCFreshness: C★ 5Claude Code +9 - 0.529score
voice-action
techfreakworm
Auto-loaded when the user's incoming message has `voice_in: true` meta.
SkillCFreshness: C★ 5Claude Code +9 - 0.526score
parallel-tasks
techfreakworm
Phase-1 FREE-only parallel task dispatch for a pilot lead.
SkillCFreshness: C★ 5Claude Code +9 - 0.526score
grok-image
techfreakworm
Generate an image via the grok CLI (/imagine command).
SkillCFreshness: C★ 5Claude Code +9 - 0.525score
spawn-project
techfreakworm
Spawn a new persistent project-lead background session for a new app / workstream the user is starting.
SkillCFreshness: C★ 5Claude Code +9 - 0.522score
schedule-routine
techfreakworm
Schedule a one-shot Telegram reminder or a recurring cloud routine.
SkillCFreshness: C★ 5Claude Code +9 - 0.522score
portfolio-status
techfreakworm
Summarize what the user is currently working on across ~/Projects/llm/* and the active orchestrator projects.
SkillCFreshness: C★ 5Claude Code +9
Signals
- Stars
- 5
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- May 26, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/techfreakworm/claude-soma
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from techfreakworm
- 0.534score
gsap
techfreakworm
GSAP animation reference for HyperFrames.
SkillCFreshness: C★ 5Claude Code +9 - 0.534score
make-a-video
techfreakworm
Beginner-friendly end-to-end video creator for HyperFrames.
SkillCFreshness: C★ 5Claude Code +9 - 0.534score
hyperframes
techfreakworm
Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML.
SkillCFreshness: C★ 5Claude Code +9 - 0.529score
hyperframes-cli
techfreakworm
HyperFrames CLI tool — hyperframes init, lint, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark.
SkillCFreshness: C★ 5Claude Code +9 - 0.529score
codex-image-gen
techfreakworm
Generate or edit an image by delegating to the user's Codex CLI subscription.
SkillCFreshness: C★ 5Claude Code +9 - 0.529score
respond-with-voice
techfreakworm
Reply to the user with a voice note instead of (or in addition to) text.
SkillCFreshness: C★ 5Claude Code +9
Cite this page
message-project skill. Agent Mart. https://agentmart.dev/skills/techfreakworm-message-project (last updated 2026-10-24)