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



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

The jackin❯ CLI — the operator-facing binary that loads roles into isolated containers, drives the console, and wires the workspace together. This crate is the L4 entry/glue layer: `lib.rs` re-exports the module tree consumed by `main.rs`, `src/bin/role.rs`, and integration tests; the crate is simultaneously a library and a binary.

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

* The CLI surface (`cli`) and top-level application wiring (`app`), error type (`error`), and preflight checks (`preflight`).
* Console entry (`console`), launch/prompt flow (`prompt`), and the Warp integration (`warp`).
* Role-authoring (`role_authoring`, `role_claude_plugins`) and workspace commands (`workspace`).

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

**L4 entry/glue crate.** It depends on the whole stack — `jackin-config`, `jackin-core`, `jackin-docker`, `jackin-manifest`, `jackin-diagnostics`, `jackin-env`, `jackin-image`, `jackin-runtime`, `jackin-tui`, `jackin-launch-tui`, `jackin-console`, `jackin-protocol`, `jackin-build-meta`. Nothing depends on this crate; it is the top of the graph. Keep it thin — it assembles, it does not implement domain logic.

## Structure [#structure]

| Module                                                                                                                                                                                      | Owns                         | Tests                                                                                 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------------------------------------------------------------------------- |
| <RepoFile path="crates/jackin/src/lib.rs">`lib.rs`</RepoFile>                                                                                                                               | library re-exports           | —                                                                                     |
| <RepoFile path="crates/jackin/src/main.rs">`main.rs`</RepoFile>                                                                                                                             | binary entry                 | —                                                                                     |
| <RepoFile path="crates/jackin/src/cli.rs">`cli.rs`</RepoFile> · <RepoFile path="crates/jackin/src/cli.rs">`cli/`</RepoFile>                                                                 | CLI parsing                  | <RepoFile path="crates/jackin/src/cli/tests.rs">`tests.rs`</RepoFile>                 |
| <RepoFile path="crates/jackin/src/app.rs">`app.rs`</RepoFile> · <RepoFile path="crates/jackin/src/app.rs">`app/`</RepoFile>                                                                 | app wiring                   | <RepoFile path="crates/jackin/src/app/tests.rs">`tests.rs`</RepoFile>                 |
| <RepoFile path="crates/jackin/src/console.rs">`console.rs`</RepoFile>                                                                                                                       | console entry                | —                                                                                     |
| <RepoFile path="crates/jackin/src/prompt.rs">`prompt.rs`</RepoFile> · <RepoFile path="crates/jackin/src/prompt.rs">`prompt/`</RepoFile>                                                     | prompt flow                  | <RepoFile path="crates/jackin/src/prompt/tests.rs">`tests.rs`</RepoFile>              |
| <RepoFile path="crates/jackin/src/preflight.rs">`preflight.rs`</RepoFile> · <RepoFile path="crates/jackin/src/preflight.rs">`preflight/`</RepoFile>                                         | preflight checks             | <RepoFile path="crates/jackin/src/preflight/tests.rs">`tests.rs`</RepoFile>           |
| <RepoFile path="crates/jackin/src/workspace.rs">`workspace.rs`</RepoFile> · <RepoFile path="crates/jackin/src/workspace.rs">`workspace/`</RepoFile>                                         | workspace commands           | <RepoFile path="crates/jackin/src/workspace/tests.rs">`tests.rs`</RepoFile>           |
| <RepoFile path="crates/jackin/src/role_authoring.rs">`role_authoring.rs`</RepoFile> · <RepoFile path="crates/jackin/src/role_authoring.rs">`role_authoring/`</RepoFile>                     | role-authoring commands      | <RepoFile path="crates/jackin/src/role_authoring/tests.rs">`tests.rs`</RepoFile>      |
| <RepoFile path="crates/jackin/src/role_claude_plugins.rs">`role_claude_plugins.rs`</RepoFile> · <RepoFile path="crates/jackin/src/role_claude_plugins.rs">`role_claude_plugins/`</RepoFile> | role Claude-plugins commands | <RepoFile path="crates/jackin/src/role_claude_plugins/tests.rs">`tests.rs`</RepoFile> |
| <RepoFile path="crates/jackin/src/warp.rs">`warp.rs`</RepoFile>                                                                                                                             | Warp integration             | —                                                                                     |
| <RepoFile path="crates/jackin/src/error.rs">`error.rs`</RepoFile>                                                                                                                           | top-level error type         | —                                                                                     |
| `bin/`                                                                                                                                                                                      | extra binaries               | —                                                                                     |

## Public API [#public-api]

The `jackin` binary (`jackin`, `jackin load`, `jackin console`, …) plus the library re-exports used by integration tests. New user-visible flags/commands land here (CLI-first), then optionally surface in the console.

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

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