Workbranch › Ohjeet

Ohje

Näin käytät hookeja Claude Codessa

Haluat jonkin tapahtuvan joka kerta, kuten tiedoston muotoilun Clauden muokkauksen jälkeen tai ilmoituksen, kun Claude odottaa sinua, ilman että pitää toivoa Clauden muistavan. Juuri sitä hookit tekevät. Tämä ohje kertoo, mitä ne ovat, käy läpi ensimmäisen hookin ja näyttää, mihin ne laitetaan.

Päivitetty 30. lokakuuta 2026

Lyhyesti: hook on shell-komento, jonka Claude Code ajaa automaattisesti tietyssä kohdassa, esimerkiksi ennen työkalun ajoa, tiedoston muokkauksen jälkeen tai kun Claude tarvitsee vastaustasi. Lisää hookit hooks-avaimen alle asetustiedostoon, kuten ~/.claude/settings.json (kaikki projektit) tai .claude/settings.json (yksi projekti), ja kirjoita sitten /hooks varmistaaksesi, että Claude Code näkee ne.

Alla olevat tapahtumien nimet, tiedostojen sijainnit ja toiminta perustuvat Anthropicin Claude Code -dokumentaatioon lokakuussa 2026. Claude Code päivittyy usein, joten aja claude update, jos jotain puuttuu.

Mitä hookit ovat ja miksi niistä on apua

Kehotteen tai CLAUDE.md-tiedoston ohjeet ovat ehdotuksia: Claude yleensä noudattaa niitä, mutta päätös on sen. Hook on eri asia. Claude Code itse ajaa komentosi aina, kun tapahtuma laukeaa, joten toiminto tapahtuu varmasti joka kerta. Tyypillisiä käyttötapoja Anthropicin ohjeesta:

Käytetyimpiä tapahtumia ovat SessionStart (istunto alkaa tai jatkuu), UserPromptSubmit (lähetät kehotteen), PreToolUse (ennen työkalun kutsua, ja se voi estää sen), PostToolUse (työkalun onnistuneen kutsun jälkeen), Notification, Stop (Claude lopettaa vastauksensa), PreCompact ja SessionEnd. Hookien referenssin koko lista on paljon pidempi.

Tee ensimmäinen hook: työpöytäilmoitus

Tämä Anthropicin esimerkistä muokattu hook ilmoittaa macOS:ssä aina, kun Claude Code tarvitsee huomiotasi.

  1. Avaa ~/.claude/settings.json tekstieditorissa. Luo tiedosto, jos sitä ei ole.
  2. Lisää hooks-objekti, jossa on Notification-merkintä. Sen sisään tulee lista matcher-ryhmiä; jokaisessa on matcher (jätä se tyhjäksi merkkijonoksi, niin hook laukeaa jokaisesta ilmoituksesta) ja hooks-lista, jossa on yksi kohde "type": "command".
  3. Aseta komennoksi osascript -e 'display notification "Claude Code needs your attention" with title "Claude Code"'. Linuxissa Anthropicin esimerkki käyttää sen sijaan komentoa notify-send. Muista escapata sisemmät lainausmerkit JSONissa.
  4. Jos tiedostossa on jo hooks-avain, lisää Notification olemassa olevien tapahtumien viereen äläkä korvaa koko objektia.
  5. Kirjoita Claude Codessa /hooks. Hookien selaimen pitäisi listata uusi hookisi kohdassa Notification. Palaa takaisin painamalla Esc.
  6. Pyydä Claudelta jotain, mikä vaatii luvan, ja siirry toiseen ikkunaan. Ilmoituksen pitäisi tulla näkyviin.

Jos haluat hookin laukeavan vain osasta ilmoituksia, aseta matcheriksi tyyppi, kuten permission_prompt (lupakysely on odottanut noin kuusi sekuntia) tai idle_prompt (Claude on valmis etkä ole kirjoittanut mitään noin minuuttiin).

Toinen esimerkki: muotoile tiedostot muokkausten jälkeen

Projektikohtaista hookia varten laita määritys tiedostoon .claude/settings.json projektin juureen. Käytä PostToolUse-tapahtumaa matcherilla Edit|Write, jolloin hook ajetaan vain tiedostoja muokkaavien työkalujen jälkeen. Anthropicin esimerkkikomento lukee muokatun polun JSONista, jonka Claude Code antaa vakiosyötteeseen, ja välittää sen Prettierille: jq -r '.tool_input.file_path' | xargs npx prettier --write. Se vaatii, että jq on asennettu. Onnistunut hook ei näy keskustelussa mitenkään; näet vain, että tiedosto on muotoiltu uudelleen.

Missä hookit määritetään

SijaintiKoskeeJaettu?
~/.claude/settings.jsonKaikkia projektejasiEi, vain omalla koneellasi
.claude/settings.jsonYhtä projektiaKyllä, voidaan commitoida
.claude/settings.local.jsonYhtä projektiaEi, pidetään gitin ulkopuolella
Hallinnoidut käytäntöasetukset (managed policy settings)Koko organisaatiotaYlläpitäjien määrittämät
Pluginin hooks/hooks.jsonNiin kauan kuin plugin on käytössäPluginin mukana
Skillin frontmatterIstunnon loppua skillin käynnistämisen jälkeenSkill-tiedostossa
Subagentin frontmatterNiin kauan kuin subagent on käynnissäSubagent-tiedostossa

Kytke hookit pois asettamalla asetustiedostoon "disableAllHooks": true. Hallinnoitujen asetusten hookit jatkavat toimintaansa, ellei asetusta ole tehty myös niihin.

Miten hook vastaa

Kun tapahtuma laukeaa, Claude Code lähettää tapahtuman tiedot JSONina komentosi vakiosyötteeseen. Komentosi vastaa exit-koodillaan:

Tarkempaa hallintaa varten palauta exit 0 ja tulosta sen sijaan JSON-objekti. Valitse yksi tapa hookia kohden.

Hyvä tietää

Jos se ei toimi

Pidä kirjaa siitä, mitä kukin istunto jättää kesken

Workbranchin plugin Claude Codelle käyttää istunnon alussa näytettävää yhteenvetoa: kansiossa, joka on linkitetty Workbranch-projektiin, se näyttää istunnon alkaessa, mikä on vielä auki, ja kun sanot "save this to Workbranch", istunnon tehtävät, päätökset ja avoimet kysymykset tallentuvat siihen projektiin. Katso Workbranch for Claude. Onko Claude Code sinulle uusi? Aloita ohjeesta näin pääset alkuun Claude Coden kanssa.

Lähteet

Usein kysytyt kysymykset

Voiko Claude kirjoittaa hookin puolestani?

Kyllä. Anthropicin ohjeen mukaan voit kuvailla haluamasi hookin Claude Coden kehotteessa ja pyytää Claudea lisäämään sen asetuksiisi. Tarkista tulos jälkeenpäin komennolla /hooks.

Voiko hook pysäyttää Clauden myös bypass-tilassa?

PreToolUse-hook, joka palauttaa deny-päätöksen, estää työkalun kaikissa käyttöoikeustiloissa, myös bypassPermissions-tilassa. Siksi hookit sopivat sääntöihin, joita ei voi kiertää vaihtamalla tilaa.

Onko hookeja, jotka käyttävät mallia skriptin sijaan?

Kyllä. Shell-komentojen lisäksi hook voi olla HTTP-pyyntö, MCP-työkalun kutsu, yksittäinen Claude-mallin arvioima kehote tai kokeellinen agent-hook, jolla on pääsy työkaluihin.