# atgc plugin A Claude Code plugin whose SessionStart hook tells an agent what Tangled is, how it signs in to atgc as its own didbot identity, and that it has to name the account on every command. It then points the agent at `atgc agent` for the rest. `bin/hook.py` is the whole plugin. Its doc comment says what the hook prints and when. ``` /plugin marketplace add https://tangled.org/permadeath.com/atgc.git /plugin install atgc@atgc ``` ## What it needs The `atgc` command on `PATH`, installed as the top-level [README](../README.md#install) says. Without it the hook prints nothing. It never tells an agent to install anything, because that is the human's call. On a machine running [didbot](https://tangled.org/permadeath.com/didbot), with the `didbot` command and its agent daemon's socket (`$DIDBOT_SOCK`, or else `didbot-agent/agent.sock` under `$XDG_RUNTIME_DIR`, or under `/tmp` when that is unset), the hook also says how the session signs in as its agent identity and approves that sign-in with `didbot oauth approve`. Without didbot it leaves those lines out. ## Updates `plugin.json` names no version, so Claude Code versions the plugin by the commit its marketplace is at, and every commit to `main` is an update. Claude Code doesn't fetch updates on its own for a marketplace that isn't Anthropic's until auto-update is turned on in `/plugin` > Marketplaces. To update by hand: ```sh claude plugin marketplace update atgc claude plugin update atgc@atgc ``` ## Tests ```sh python3 -m unittest discover -s plugin/tests ```