# jackin-host (https://jackin.tailrocks.com/reference/crates/jackin-host/)



{/* GENERATED from crates/jackin-host/README.md — edit the README, not this file */}

Host OS integration for jackin❯: desktop notifications, clipboard, and caffeinate/keep-awake (prevent sleep during active sessions). Platform-specific host surface used by the runtime and console.

## What this crate owns [#what-this-crate-owns]

* Keep-awake / caffeinate (`caffeinate`) so the host does not sleep mid-session.
* Host clipboard (`host_clipboard`) and desktop notifications (`host_desktop`).
* Host-side naming (`naming`) and the host "universe" aggregate (`universe`).

## Architecture tier and allowed dependencies [#architecture-tier-and-allowed-dependencies]

**L2 infrastructure.** Allowed workspace dependencies: the core ports/types, `jackin-diagnostics`, `jackin-docker`, `jackin-protocol`, `jackin-tui`. Lower domain crates (L0) must not depend on this; presentation crates (L3) reach host-clipboard/desktop through it.

## Structure [#structure]

| Module                                                                                                                                                                            | Owns                    | Tests                                                                                 |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------- |
| <RepoFile path="crates/jackin-host/src/lib.rs">`lib.rs`</RepoFile>                                                                                                                | crate root, re-exports  | —                                                                                     |
| <RepoFile path="crates/jackin-host/src/caffeinate.rs">`caffeinate.rs`</RepoFile> · <RepoFile path="crates/jackin-host/src/caffeinate.rs">`caffeinate/`</RepoFile>                 | keep-awake              | <RepoFile path="crates/jackin-host/src/caffeinate/tests.rs">`tests.rs`</RepoFile>     |
| <RepoFile path="crates/jackin-host/src/host_clipboard.rs">`host_clipboard.rs`</RepoFile> · <RepoFile path="crates/jackin-host/src/host_clipboard.rs">`host_clipboard/`</RepoFile> | clipboard               | <RepoFile path="crates/jackin-host/src/host_clipboard/tests.rs">`tests.rs`</RepoFile> |
| <RepoFile path="crates/jackin-host/src/host_desktop.rs">`host_desktop.rs`</RepoFile> · <RepoFile path="crates/jackin-host/src/host_desktop.rs">`host_desktop/`</RepoFile>         | desktop notifications   | <RepoFile path="crates/jackin-host/src/host_desktop/tests.rs">`tests.rs`</RepoFile>   |
| <RepoFile path="crates/jackin-host/src/naming.rs">`naming.rs`</RepoFile>                                                                                                          | host naming             | —                                                                                     |
| <RepoFile path="crates/jackin-host/src/universe.rs">`universe.rs`</RepoFile>                                                                                                      | host universe aggregate | —                                                                                     |

## Public API [#public-api]

Keep-awake, clipboard, and desktop-notify entry points consumed by `jackin-runtime` and `jackin-console`. Platform differences are contained here, not leaked upward.

## How to verify [#how-to-verify]

```sh
cargo nextest run -p jackin-host
cargo clippy -p jackin-host --all-targets -- -D warnings
```
