Hooks
Takku has no integrations of its own. When a meeting is ready, it runs your script and hands it the files: the script sends them wherever you want.
Takku has no integrations of its own. When a meeting is ready, it runs your script and hands it the files: the script sends them wherever you want.
A hook is one executable file: ~/.takku/hooks/after-processing (no extension). Start it with a #! line for the language you use—#!/bin/sh for a shell script, #!/usr/bin/env python3 for Python, #!/usr/bin/env node for JavaScript.
When a meeting is ready, and again after every regenerated summary or reprocessed recording, Takku runs it in your notes folder with two arguments: the path of the meeting note ($1) and the path of the transcript ($2). The simplest hook commits the folder to git:
#!/bin/sh
# $1: the meeting note, $2: the transcript
git add -A && git commit -qm "Meeting: $(basename "$1" .md)"
To create it, make the file, make it executable, and open it in your text editor:
mkdir -p ~/.takku/hooks
touch ~/.takku/hooks/after-processing
chmod +x ~/.takku/hooks/after-processing
open -t ~/.takku/hooks/after-processing
chmod +x, Takku tells you it can’t run it.takku_id never changes: use it for that.~/.takku/hooks/after-processing.log, with the command to run it again by hand. If the script fails, a notification says so, and Takku leaves the meeting as it is.A ready-made hook, notion.py, copies each meeting note (the summary and your notes, without the screenshots) to a Notion page under a page you choose, and updates the same page when a summary is regenerated. It needs Python 3, from Homebrew or the Xcode Command Line Tools.
security add-generic-password -a "$USER" -s takku-notion -wPARENT_PAGE_ID at its top:
for more than one hook, save it as notion.py instead: see below
mkdir -p ~/.takku/hooks
curl -fsSL https://raw.githubusercontent.com/mameli/Takku/main/examples/hooks/notion.py \
-o ~/.takku/hooks/after-processing
chmod +x ~/.takku/hooks/after-processing
open -t ~/.takku/hooks/after-processing~/.takku/hooks/after-processing "/path/to/notes/Meetings/a meeting.md"From then on every meeting goes to Notion as soon as it is ready.
If you use a coding agent (Claude Code, Codex, Copilot CLI, Cursor…), it can set up the hook for you: hooks.md is this page written for agents, with what Takku passes to the hook, the format of the files and the rules to follow. Paste this to your agent, and say what you want the hook to do:
Read https://takku.app/hooks.md and set up a Takku hook that …
For example, a summary of every meeting from a subscription you already have, such as Copilot, Claude or Codex: record with Transcript only and let the hook ask your assistant. You lose what Takku does around its own summary: the template, the vocabulary, the speaker names and the title of the note. The agent asks you which meetings it may send; a meeting with a customer is the customer’s data.
Takku runs only after-processing. To do more than one thing, keep each hook in its own file in the same folder, and make after-processing run them in turn. For example, Notion for every meeting, git for every meeting, and Confluence only for the notes you tagged confluence:
#!/bin/sh
# ~/.takku/hooks/after-processing: runs the other hooks in turn
hooks="$HOME/.takku/hooks"
failed=0
"$hooks/notion.py" "$1" "$2" || failed=1
"$hooks/git-commit" "$1" "$2" || failed=1
# Only the notes tagged confluence
if grep -q '^tags:.*confluence' "$1"; then
"$hooks/confluence" "$1" "$2" || failed=1
fi
exit $failed
#! line and chmod +x, like after-processing. Their names are up to you: Takku never runs them by itself.after-processing as a whole, the hooks it calls included.