Back to Browse

Coders Talk Plugin MCP Server

Developer ToolsLow Risk10.0MCP RegistryRemote
Free

Server data from the Official MCP Registry

Real coding-agent sessions: what worked, where agents failed and what the human did about it.

About

Real coding-agent sessions: what worked, where agents failed and what the human did about it.

Remote endpoints: streamable-http: https://coders.talk/mcp

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.

Endpoint verified · Requires authentication · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

file_system

Check that this permission is expected for this type of plugin.

env_vars

Check that this permission is expected for this type of plugin.

Shell Command Execution

Runs commands on your machine. Be cautious — only use if you trust this plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

How to Connect

Remote Plugin

No local installation needed. Your AI client connects to the remote endpoint directly.

Add this to your MCP configuration to connect:

{
  "mcpServers": {
    "talk-coders-library": {
      "url": "https://coders.talk/mcp"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Coders Talk for Claude Code, Codex, Cursor and Pi

Send the Claude Code, Codex, Cursor or Pi session you are in to Coders Talk as a draft Build: the prompts, interventions and fails that mattered, with the raw log one layer down. The plugin never publishes. The draft is private: only you see it, or your team when the session ran in one of the team's repositories. You review every moment on the site and publish it there if you want to.

The other way round, the plugin gives your agent the Coders Talk library: before a non-trivial task, or after a few failed attempts, it can look up sessions where other developers did something similar, and what went wrong for them (see The library in your agent). And /coders-talk:use puts a published Build's playbook, what that session learned the hard way, into your repository as a skill or a rule (see Playbooks).

Install

From a terminal

curl -fsSL https://coders.talk/install.sh | sh        # macOS and Linux
irm https://coders.talk/install.ps1 | iex              # Windows, in PowerShell
coders-talk login

This installs coders-talk, one file with no Node.js needed, into ~/.coders-talk/bin and adds that folder to your PATH (the rc file of your shell; on Windows the user PATH). The installer takes the file for your platform from this repository's releases and checks it against the release's SHA256SUMS. No sudo or administrator rights. CODERS_TALK_VERSION=0.11.0 installs that version, CODERS_TALK_NO_MODIFY_PATH=1 leaves PATH alone.

coders-talk login waits in the terminal until you press Connect in the browser; over SSH it prints the link and the code to open elsewhere. coders-talk update replaces the file with the latest release after checking its SHA256. A command you type mentions a newer release in one line, at most once a day; it never waits for the network to do so, and hooks never check. CODERS_TALK_NO_UPDATE_CHECK=1 turns that off.

Then coders-talk enable connects Claude Code, Codex, Cursor and Pi to it. It says what it found and what it will do, asks, and then installs the plugin through each agent's own plugin system: it lays the plugin out in ~/.coders-talk/plugin and adds that folder as the local marketplace coders-talk-local (claude plugin marketplace add, claude plugin install coders-talk@coders-talk-local; codex plugin marketplace add, codex plugin add), and installs Pi's package from it with pi install. Cursor has no command that installs a plugin, so it gets what the plugin is made of as files of its own folder, ~/.cursor, next to whatever is there: the hooks in hooks.json, the commands as skills in skills/coders-talk-* and the library in mcp.json. Only what is ours is ever changed in them, and a file it cannot read (comments, a syntax error) is left as it is and the lines to add are printed. It is the same plugin as the one below, but its hooks and skills call coders-talk by its absolute path, so no Node.js is needed and desktop apps find it without your shell's PATH. On the way it:

  • replaces the plugin from the GitHub marketplace (coders-talk@coders-talk), or Pi's git package (pi install git:github.com/coders-talk/coders-talk-plugin), whose hooks would otherwise run twice;
  • finds a Coders Talk MCP server you added by hand (claude mcp add, mcp_servers in Codex's config.toml, an entry in ~/.cursor/mcp.json) and removes it, or keeps it and installs the plugin without its own server for that agent;
  • asks once about auto mode for every agent it found (off unless you say otherwise). Codex runs the hooks only after you trust them in /hooks; enable does not do that for you. Cursor and Pi need nothing of the kind;
  • in a git repository, asks whether to put the Coders Talk git hooks into it (no, unless they are there already; see Git hooks).

coders-talk enable --yes goes ahead without asking, with --agent=claude-code,codex,cursor,pi, --auto=off|on|team|push, --mcp=remove|keep and --git-hooks, --no-git-hooks or --no-trailers for the answers. coders-talk status shows the file, the sign-in, each agent's Coders Talk plugins and auto mode, and the git hooks of the repository you are in. coders-talk disable uninstalls the plugin and its marketplace from Claude Code and Codex, removes Pi's package, takes the hooks, skills and library entry it wrote out of ~/.cursor, and takes the git hooks out of every repository enable put them in; the sign-in, your settings and the file stay. coders-talk update lays the plugin out again in the new version and updates it in the agents, so the plugin's version is always the file's.

To send a session without going back into it, run coders-talk sessions in the folder it ran in: it lists that folder's Claude Code, Codex, Cursor and Pi sessions (also those run at the top of its repository), newest first, with how many prompts each has, the start of the first one and whether it was sent already. coders-talk build 2 then shows the same summary and privacy check as /coders-talk:build, asks [y/N] and sends; coders-talk build alone takes the newest session, and a session id works too. It takes the same options (--private, --team=<slug>, --keep=<numbers>, --continues=<link>). It runs only in a terminal: neither an agent nor a script can answer its question, and there is no --yes. From a script, coders-talk preview <id> and coders-talk send <id> (with --agent=codex, --agent=cursor or --agent=pi for the others) do the two steps.

A Coders Talk connector your organisation added in claude.ai is not visible on your computer, so enable cannot find it. If the agent then lists the library's tools twice, turn one of the two servers off in /mcp.

From the agent

  1. In Claude Code:

    /plugin marketplace add coders-talk/coders-talk-plugin
    /plugin install coders-talk@coders-talk
    
  2. Connect it to your account: /coders-talk:login. It opens coders.talk in the browser; check that the page shows the same code as Claude Code and press Connect. The plugin receives its token directly from the site and keeps it in ~/.coders-talk/credentials.json, readable by you only. There is no token to copy, and it never passes through the chat. The sign-in request names only the program asking (Claude Code, Codex, Cursor, Pi or Coders Talk CLI) and its version, not your computer; the site lists the token under that name in Settings → Agent plugins.

Needs Node.js 20 or newer, nothing else.

Codex
codex plugin marketplace add coders-talk/coders-talk-plugin
codex plugin add coders-talk@coders-talk

Start a new session, then $coders-talk:login and $coders-talk:build (the same commands as below, with $ instead of /). For the library, also run codex mcp login coders-talk once in a terminal. Codex asks to run the plugin's command outside its sandbox: it needs the network to reach coders.talk and your home folder for the sign-in. The session is found through CODEX_THREAD_ID in ~/.codex/sessions (or CODEX_HOME), and HEAD at its start comes from the rollout's session_meta, so Codex needs no hook for it. Codex runs the plugin's hooks only for auto mode (see Auto mode), and only once you trust them in /hooks.

Cursor

coders-talk enable (above) is the way in: Cursor has nothing that installs a plugin from a script, so it writes the plugin into ~/.cursor, where the IDE and the agent CLI read it at every start. hooks.json gets four hooks (sessionStart, beforeSubmitPrompt, stop and sessionEnd, each running coders-talk hook cursor <event>), skills/coders-talk-<name>/SKILL.md the commands, and mcp.json the library. Restart Cursor (or run "Developer: Reload Window"), press Connect for coders-talk in Settings → MCP, then type /coders-talk-login and /coders-talk-build: the commands below with a hyphen for the colon, since a skill's name in Cursor cannot hold one.

Cursor's transcript of a conversation (~/.cursor/projects/<folder>/agent-transcripts/<id>/<id>.jsonl) has the prompts, the answers and the tool calls, but no tool results, no token counts and no time but the minute. The hooks add what it lacks: beforeSubmitPrompt and stop note the time of each turn, the model, the tokens of each answer and which conversation each workspace is in (in ~/.coders-talk/cursor/: times and counts, never the text), so coders-talk preview finds the conversation of the folder it runs in without being told. What each turn changed comes from the agent's own edit calls and the git snapshots. Cursor does not always call sessionEnd (a closed window, a crash): the next sessionStart sends what was left.

Pi

coders-talk enable installs it with pi install. From this repository instead, without the file:

pi install git:github.com/coders-talk/coders-talk-plugin

That runs the scripts with Node.js, which Pi needs itself (22.19 or newer). Type /reload or start Pi again, then /coders-talk:login and /coders-talk:build. The plugin is one extension (pi/extensions/coders-talk.js, named by the pi key of package.json). Its commands run in Pi's own process, so nothing of them lands in the session, and the question "Send this session?" is Pi's own dialog. Its events (session_start, agent_start, agent_settled and session_shutdown) run the same hooks the other agents have: auto mode, the git snapshots and the suggestion to share. The session is the file Pi keeps in ~/.pi/agent/sessions (or where PI_CODING_AGENT_DIR, PI_CODING_AGENT_SESSION_DIR or the sessionDir setting put it); the extension tells coders-talk which one, as Pi does for the commands it runs itself (PI_SESSION_ID, PI_SESSION_FILE). Pi has no MCP, so the extension registers the library's three tools itself; they ask the site through coders-talk mcp-call with your sign-in. A fork (/fork, /clone) is a new file that names its parent: it is sent as its own draft, linked to the original. Pi reads a repository's own .agents/skills (where use puts a playbook) only in a project you trusted.

One repository

One repository serves all four agents: Claude Code reads .claude-plugin/ and skills/, Codex reads .codex-plugin/, .agents/plugins/marketplace.json, codex/skills/ and codex/hooks.json (its manifest points there, so Codex never picks up hooks/hooks.json; the same scripts run with --agent=codex), Pi loads the extension the pi key of package.json names, and cursor/skills/ holds the skills enable copies into ~/.cursor. Codex does not expand ${CLAUDE_PLUGIN_ROOT} or ${CLAUDE_SESSION_ID} in skills, so its skills give the script path relative to the skill file and pass --agent=codex.

Claude Code on the web

A session on claude.ai/code keeps its whole transcript in its cloud machine (~/.claude/projects/… there). Teleporting it to your computer brings only the part after its last compaction, so /coders-talk:build there sends a long session without its beginning. The cloud machine installs no plugins, though, and reaches coders.talk only when its environment allows it. So a cloud session sends itself another way, with nothing to set up in the environment:

  1. Connect the Coders Talk connector in claude.ai (connector settings). The same connector gives the agent the library. A connection made before connectors could send sessions can only read: disconnect and connect it again (the upload tools say so).
  2. Add the Coders Talk skill: download coders-talk-skill.zip from the latest release and upload it in claude.ai's skills settings. Cloud sessions load the skills you enable on claude.ai by themselves.
  3. In a cloud session, ask: "send this session to Coders Talk" (or, with this plugin on your claude.ai account, /coders-talk:build: in a cloud machine with no token of its own it takes the same route by itself). The skill runs this plugin's script in the cloud machine: it finds the session (the newest transcript there), shows what goes and what the privacy check found, and asks. Then the connector's start_session_upload hands out a one-time upload link (15 minutes) in the site's storage (Cloudflare R2, which the cloud's default network list allows), coders-talk send --connector --upload=<link> puts the session there, and finish_session_upload makes the draft and returns its link.

The skill is built by node scripts/skill.mjs (dist/coders-talk-skill.zip: its SKILL.md is web-skill/SKILL.md), and each release carries it.

The proxy of a cloud machine looks inside TLS with its own CA. The plugin trusts it from SSL_CERT_FILE, REQUESTS_CA_BUNDLE, CURL_CA_BUNDLE, the system store (Node 22.15 and newer) or ~/.ccr/ca-bundle.crt, where Claude Code on the web keeps it, on top of Node's own CAs and NODE_EXTRA_CA_CERTS. Where coders.talk itself is refused by a proxy, the plugin says so and, in Claude Code on the web, which environment setting lets it through.

Use

The commands are the same in every agent, typed its way: /coders-talk:build in Claude Code and Pi, $coders-talk:build in Codex, /coders-talk-build in Cursor. The tables below use the first.

CommandWhat it does
/coders-talk:buildShows what would be sent (project folder, prompts, time span, size), where it goes and what the privacy check found, asks, sends, prints the draft link.
/coders-talk:build --privateThe same, and the draft stays yours even in a team's repository.
/coders-talk:build --team <slug>The same, and the draft goes to that team (the part after /t/ in the team's link).
/coders-talk:auto onFrom now on every session of this agent on this computer is sent by itself while it runs and when it ends (see Auto mode).
/coders-talk:auto teamThe same, only for sessions in repositories of teams that ask for it.
/coders-talk:auto offStops it. /coders-talk:auto alone says whether it is on and what it last sent.
/coders-talk:auto session onOnly this session is sent by itself, even with auto mode off. session off keeps this session on the computer whatever the mode; session alone says which applies.
/coders-talk:loginConnects this computer through the browser, or says which account it is connected to.
/coders-talk:logoutForgets the token on this computer (revoke it on the site under Settings → Agent plugins).
/coders-talk:lookup <task>Searches the Coders Talk library for sessions of a similar task and shows what came back. The agent also does this by itself (see below).
/coders-talk:use <link>Shows a published Build's playbook as a skill for this agent: the whole text, where it goes and what changed since the version here. Asks, then writes it. --as rule or --as prompt for the other two forms; --team <team> --stack <stack> for your team's rules (see Playbooks).

Sending the same session again updates its draft until you publish it.

Two rules:

  • Commands that send your session (build and auto, and login and logout with them) run only when you type them. The agent never invokes them on its own (in Cursor their skills are marked so; in Pi they are extension commands, which only you can type).
  • Putting a playbook into your repository (use) runs only when you type it too. The library may tell the agent that a session has a playbook; the agent can only pass that on to you.
  • Searching the library is something the agent does by itself when a task calls for it (the lookup skill and the coders-talk MCP server). It sends a short description of the task and the stack, never the session. Switch it off in /mcp (Claude Code), in ~/.codex/config.toml (Codex) or in Settings → MCP (Cursor); see The library in your agent.

A forked session (/branch or --fork-session in Claude Code, a fork in Codex, /fork or /clone in Pi) is sent as its own draft, and the plugin tells the site which session it came from and where it left it. The fork's Build then says it is a fork and links to the Build of the original session, and the original's Build links to its forks. Whichever of the two is sent first, the link appears once both are on the site. Claude Code writes the lines the fork inherited with the original's session id and Codex names it in the rollout's session_meta and Pi in the header of the new file, so no hook is needed for it. Cursor's transcripts do not say whether a conversation was forked.

If the privacy check found something the preview lists it by number; it goes as [REDACTED] unless you name its number, and the preview runs again with --keep=<numbers> (see What leaves your machine).

If coders.talk cannot be reached or answers with a server error, the send step opens coders.talk/new in the browser and the file manager with the prepared .jsonl.gz selected, and prints the link and the path: drop the file on the page. It is the same checked file the preview described. It is kept for 30 minutes, so sending again once the site is back works too; after that the next run of coders-talk (or the next session start) deletes it. CODERS_TALK_NO_BROWSER=1 keeps the browser and the file manager closed; the link and the path are printed anyway. A rejected token or request never ends up there: sign in again instead.

Auto mode

Off until you turn it on, per computer, per site and per agent: /coders-talk:auto on in Claude Code never sends Codex, Cursor or Pi sessions, and the other way round. With it on, each session is sent the way /coders-talk:build would send it, without asking: to your team's space when the repository is one of your team's, else to your private Builds. With /coders-talk:auto team, only sessions in repositories of teams that ask for it (a team setting) are sent, and nothing else leaves the machine. A team can ask; it can never switch this on for you.

One session can choose for itself. /coders-talk:auto session on sends the current session the way on would, even while auto mode is off for the computer; other sessions are not touched. /coders-talk:auto session off keeps the current session on the computer whatever the mode, the git hooks' push included (what it already sent stays a draft). The choice is kept in auto-sessions.json with the session, so a resumed session keeps it, and /coders-talk:auto off does not forget it. CODERS_TALK_AUTO=0 still stops everything.

Three hooks do the sending, each in a background process so the agent never waits for an upload:

  • Stop, after an answer of the agent: when the session grew and the last send is ten minutes old, it is sent as still going. The draft stays up to date, and a crash loses at most those minutes. A session shorter than ten minutes is only sent at its end.
  • SessionEnd: the session is sent once more, as ended. Codex also ends a session after 30 idle minutes, which is what ends one in its desktop app.
  • SessionStart: sessions that never said they ended (a crash, a closed terminal) and grew since their last send are sent at the next start, up to three at a time. One quiet for half an hour goes as ended; a fresher one as still going. Only sessions auto mode saw while it was on, or turned on for themselves, are considered, never older history.

The site asks the model for moments once per session, when it is over: when the plugin says it ended, or after half an hour without anything new. Sending a session that is still going costs nothing and does not count against the daily limit.

Nothing is published by it. A session you already published is left alone. Every send gets a line in ~/.coders-talk/auto.log: sent or synced (with the draft link), skipped and why, or failed. The log keeps its last 500 lines, none older than 30 days. ~/.coders-talk/auto-sessions.json remembers which sessions auto mode saw and how much of each went, never their content; /coders-talk:auto off forgets it. CODERS_TALK_AUTO=0 in the environment turns auto mode off for that shell.

In Cursor the hooks are the ones enable wrote into ~/.cursor/hooks.json (sessionStart, stop and sessionEnd, and beforeSubmitPrompt, which only notes the turn); nothing has to be trusted. The IDE does not call sessionEnd every time, so the site also asks for moments after half an hour without anything new, and the next sessionStart sends what was left. In Pi the extension runs the hooks on session_start, agent_settled (after an answer) and session_shutdown; Pi waits for the last one, so the upload starts in the background before it exits.

In Codex the hooks are codex/hooks.json. Codex runs a plugin's hooks only once you trust them: type /hooks and trust the three Coders Talk hooks ($coders-talk:auto on reminds you). On Windows Codex runs them through PowerShell and puts the plugin folder into ${PLUGIN_ROOT} itself. When the Codex CLI exits it also ends what its hooks started, so the session-end hook waits up to three seconds for the upload; what does not make it goes at the next start, and the site asks for moments after half an hour without anything new anyway.

Private and team drafts

A draft is private: it is in your My builds, not in the feed, search engines or your profile. If you are in a team on Coders Talk and the session ran in a repository of one of the GitHub organisations the team named, the draft goes to the team's space instead: the team sees it, nobody else. The preview says where the draft goes before anything is sent; --private and --team <slug> override it. Publishing to the community is always a separate step on the site, and for a team's draft only if the team allows it.

The library in your agent

The plugin brings an MCP server, coders-talk (https://coders.talk/mcp), to Claude Code, Codex and Cursor, and the same tools as the extension's own to Pi, which has no MCP. There are three, all read-only: search_coding_agent_sessions finds published sessions of a similar task, get_coding_agent_session reads one of them, find_coding_agent_failures finds where agents failed on a similar problem and what the human did. The lookup skill tells the agent when to use them (before a non-trivial task on a known stack, after two or three failed attempts, when you ask how others did something), what may go into a query and what may not, and to treat the answers as other people's experience: it never runs a command from them without asking you. When a session helped, it says so with the link.

  • Signing in. In Claude Code the server uses the sign-in of /coders-talk:login: .mcp.json asks scripts/coders-talk.mjs mcp-headers for the token at each connection (headersHelper), so the token is in no config file and never passes through the chat. Not signed in, the server asks you to sign in through the browser in /mcp. Codex runs a plugin's header helper from the session's folder with an empty environment, where the plugin cannot find its own script, so in Codex the server signs in on its own: run codex mcp login coders-talk once. Cursor signs in on its own too, to the server enable put in ~/.cursor/mcp.json: Settings → MCP → coders-talk → Connect. Pi's tools use the sign-in of /coders-talk:login. All need access to the library: during the closed beta, see coders.talk/for-agents.

  • What a search sends. The query (a few words about the task, or the symptom of a failure), the stack, and the agent's name. The agent is told never to put code, paths, repository, company or client names, hostnames, URLs or secrets in it. The site keeps the query text, the filters and how many results it found for 180 days, not tied to you or your IP address. The session itself never goes with it.

  • Switching it off. Claude Code: /mcp, choose coders-talk, disable. Codex: in ~/.codex/config.toml

    [plugins."coders-talk@coders-talk".mcp_servers.coders-talk]
    enabled = false
    

    Cursor: Settings → MCP, or delete coders-talk from ~/.cursor/mcp.json. Pi: pi remove the package, or coders-talk disable.

  • Another site. The plugin's server always points at https://coders.talk/mcp: the Claude desktop app compares the address it shows with the session's and does not expand variables, so a ${…} address breaks signing in there. For another site add your own server and switch the plugin's off: in Claude Code claude mcp add --transport http coders-talk-dev http://…/mcp, in Codex [mcp_servers.coders-talk-dev] with url = "http://…/mcp" in config.toml, in Cursor another entry in mcp.json. Pi's tools ask the site that CODERS_TALK_URL names. Sending sessions still follows CODERS_TALK_URL and the plugin option url.

  • Which Builds your session used. When you send a session, the plugin counts the agent's calls to these tools in it and collects the Builds their answers linked to (/b/<slug>?ref=agent), up to 20, and the Builds whose playbooks the agent worked with: a ct-<slug> skill it ran (the Skill tool, or /ct-… typed in Claude Code; a <skill> block, or the agent reading the skill's SKILL.md, in Codex or Pi; /ct-… typed in Cursor), by the Build's link at the end of the skill's text. Cursor's transcript keeps no tool results, so from a Cursor session only the number of calls is known, not the Builds they returned. A playbook written as a rule into AGENTS.md or CLAUDE.md is in every session whether it helped or not, so it is not counted. The preview shows them. The site links your draft to those Builds: "Used from the library" and "Built with the playbook from @author" on yours, "Helped N published sessions" and "N built with its playbook" on theirs, once yours is published. Only the count and the slugs are sent, not the queries: in the session itself each library call goes as the tool's name with [library call — not kept] in place of the query and of the answer. The count and the slugs are taken from the session file on your computer before that.

  • A suggestion to share. Once per session, after an answer, when the agent got Builds from the library and the session changed code, the Stop hook shows you one line: "Your agent used 2 Builds from coders.talk in this session. Share yours: /coders-talk:build". It sends nothing, and it never shows with auto mode on. To read the session for it, the hook goes on from where it stopped the last time and keeps that place, the count and the slugs in ~/.coders-talk/nudges/. Turn it off with CODERS_TALK_NUDGE=0, or node <plugin folder>/scripts/coders-talk.mjs nudge off. In Codex the hook runs only once you trust the plugin's hooks in /hooks.

Playbooks

A published Build can come with a playbook: what its session taught, written for an agent from the Build's page (when to use it, the approach, the pitfalls, the checks, and a better first prompt). /coders-talk:use <link or slug> ($coders-talk:use in Codex, /coders-talk-use in Cursor, coders-talk use in a terminal) shows it in full, says where it would go and what changed since the version already here, and writes it only after you say yes.

--asClaude CodeCodex, Cursor and Pi
skill (the default).claude/skills/ct-<slug>/SKILL.md.agents/skills/ct-<slug>/SKILL.md
rulea block in CLAUDE.mda block in AGENTS.md
promptshown, not writtenshown, not written
  • The paths are at the root of the repository you are in, or in the folder itself outside a repository. A skill is a folder of its own: delete the folder and it is gone. The agent opens it by itself when a task matches its description; its front matter has a name and a description and nothing else, so no tool permissions.
  • A rule is the block between and; the rest of the file stays as it was, line endings included. When CLAUDE.md imports @AGENTS.md, the block goes into AGENTS.md once and both agents read it. With both files and no import, it goes into the file of the agent you chose, and the output says the other agent will not see it.
  • .coders-talk/uses.json in the repository notes what was written: the Build, the version, the format and the agent. Nothing updates by itself: use again shows what changed and asks again.
  • In a terminal it asks [y/N] before writing, and asks for which agent when both are on this computer. For scripts, --agent=claude|codex|cursor|pi and --write answer both.
  • It asks the site for one public file, /b/<slug>/use/<format>.md, with via=cli and the agent; the request that goes with writing adds write=1, which the site counts as a use (once a day). Nothing about your repository goes with it, and no token: only when the file is not public (a Build of your team that is not published) does it ask again with your sign-in, and only this site ever gets it. A team's own Build is not counted.
  • Your team's rules: use --team=<team> --stack=<stack>, as the team's page shows it. The rules the team merged for that stack, in one block in CLAUDE.md or AGENTS.md (``), written the same way as a rule. A rule changes only when the team merges a proposal on the site, so every member gets the same block. For members only, so it needs the sign-in. When the block here is older, use --team names the proposals merged since.
  • Kept up with: at the start of a session in a repository with a team's block, the SessionStart hook says in one line when the team merged a proposal since the block was written, from what the last check found. It never goes to the network itself: when the last check is over six hours old it starts one in the background (GET /t/<team>/rules/<stack>.md with If-None-Match and your sign-in; the site answers 304 until a merge), and notes the result in ~/.coders-talk/team-rules.json. It never rewrites the block: use --team does, when you run it.
  • Once written, it prints the Build's link with ?ref=use: open it after your agent has worked with the playbook and say whether it worked for you.

On GitHub

A published Build can tell whoever reviews the pull request how the change was built: /coders-talk:share ($coders-talk:share in Codex, /coders-talk-share in Cursor, coders-talk share in a terminal).

  • share alone shows this session's Build (or the one you name by link or slug): the numbers, where it already is, and the block for the pull request. A Build that is still a draft is not shared: the command gives you its link to publish it first.
  • share --pr puts the block "How this change was built" into the description of the session's pull request: the one the Build links to, else the open one of the session's branch, else the one of the branch checked out here; --pr=<link> names it. The block sits between and, so running it again replaces it; the rest of the description stays as it is. It uses your own GitHub CLI (gh, signed in): Coders Talk never writes to GitHub. If the Build had no pull request yet, it links to this one.
  • share --readme writes the "Built with AI" section into the repository's README, between `` markers. For a public repository its badge counts the repository's public sessions and leads to them, so it stays up to date without another edit. Nothing is committed.
  • Both show what would change first. The agent's skill asks you; in a terminal it asks [y/N]; scripts pass --write.
  • Auto mode for pull requests: share auto on (or Settings → GitHub on the site) and each session that starts in a repository on github.com checks, at most once an hour and in the background, for the Builds you published from that repository in the last two weeks that are not in a pull request yet, and puts each into its open pull request with your gh. The next session start says in one line what it did. Off by default; share auto off turns it off. Until this computer knows it is on (share auto on, or the site said so to whoami or a preview), no repository's address goes to the site for it.

Git hooks

Only in a repository where you said yes to coders-talk enable (or --git-hooks); never globally. Two hooks, each a block between # >>> coders-talk and # <<< coders-talk right after the first line, so a hook already there keeps its own lines and disable leaves it as it was:

  • prepare-commit-msg adds Agent-Session: <session id> to a commit that holds a session's work: a Claude Code, Cursor or Pi session whose answers changed a staged file that has not been committed since (the git snapshots tell), or a Codex session that auto mode follows in this repository and that was written to since the last commit. Merges and squashes are left alone, and the same trailer is never added twice. --no-trailers leaves this hook out. The session id becomes part of the repository's history: in a public repository everyone sees it.
  • pre-push finds the sessions behind the commits you push, by their trailers and by the snapshots of Claude Code, Cursor and Pi that saw those commits. With auto mode on, team or push, it sends them in the background, as ended. Without auto mode, it prints one line saying how many sessions are behind the push. The push never waits for the network and never fails because of Coders Talk, and the snapshot refs (refs/coders-talk/…) are never pushed.

Auto mode push sends a session only when its commits are pushed; sessions whose code you never push stay on your computer. The agents' own hooks send nothing in this mode.

A repository whose hooks live elsewhere (core.hooksPath: husky, lefthook, a shared folder) gets no hooks from enable: it prints the lines to add to those hooks yourself.

What leaves your machine

Documentation truncated — see the full README on GitHub.

Reviews

No reviews yet

Be the first to review this server!