# libtmux.hooks.HooksMixin.set_hook

- **Module:** libtmux.hooks
- **Package:** libtmux
- **Language:** Python
- **Kind:** method
- **Source:** https://github.com/tmux-python/libtmux/blob/38e368c11117fb4aeb2f082d552cd4f210eae06a/src/libtmux/hooks.py#L118
- **Page:** https://libtmux.org/en/py/stable/reference/libtmux-hooks-hooksmixin-set_hook/

tmux catalog: [Hooks](/en/tmux/latest/catalog/hooks/)

```
libtmux.hooks.HooksMixin.set_hook(
    self,
    hook: str,
    value: int | str,
    unset: bool | None = None,
    run: bool | None = None,
    append: bool | None = None,
    g: bool | None = None,
    global_: bool | None = None,
    scope: OptionScope
    | _DefaultOptionScope
    | None = DEFAULT_OPTION_SCOPE,
) -> Self
```

Set hook for tmux target.

Wraps [`$ tmux set-hook <hook> <value>`](/en/tmux/latest/manual/set-hook/).

## Parameters

- `hook` (`str`): hook to set, e.g. 'aggressive-resize'
- `value` (`int | str`): hook command.
- `unset` (`bool | None`)
- `run` (`bool | None`)
- `append` (`bool | None`)
- `g` (`bool | None`)
- `global_` (`bool | None`)
- `scope` (`OptionScope | _DefaultOptionScope | None`)

## Raises

- [`exc.OptionError`](/en/py/stable/reference/libtmux-exc-optionerror/)
- [`exc.UnknownOption`](/en/py/stable/reference/libtmux-exc-unknownoption/)
- [`exc.InvalidOption`](/en/py/stable/reference/libtmux-exc-invalidoption/)
- [`exc.AmbiguousOption`](/en/py/stable/reference/libtmux-exc-ambiguousoption/)
