# libtmux.core/chain!

- **Module:** libtmux.core
- **Package:** io.github.libtmux:libtmux-clojure
- **Language:** Clojure
- **Kind:** function
- **Source:** https://github.com/libtmux/libtmux-java/blob/5f88402151ff08fc0390dd438b90963692ec3fe4/libtmux-clojure/src/main/clojure/libtmux/core.clj#L589
- **Public owner:** libtmux.core
- **Page:** https://libtmux.org/en/clojure/latest/reference/libtmux-core-chain/

```
(chain! server operations)

(chain! server operations options)
```

Runs dependent argv commands with tmux's implicit target between positions.

Uses a fresh Java CommandChain. Failed/skipped outcomes are data; transport
failure throws with `:tmux/results.` Use `{:kind :wait}` for groups needing a
release, including blocking shell commands. No rollback or retry safety is
promised.
[[batch!]] runs commands with explicit independent targets.

## Parameters

- `server`
- `operations`
- `options` (for `chain!(server, operations, options)`)

## Guides

Pages that discuss `chain!`.

- [Captures, effects and streams](/en/clojure/latest/guides/captures-and-effects/)
