[{"data":1,"prerenderedAt":845},["ShallowReactive",2],{"docs-\u002Fdocs\u002Freview":3,"docs-nav":92},{"id":4,"title":5,"body":6,"description":81,"extension":82,"group":83,"icon":84,"meta":85,"navTitle":5,"navigation":86,"order":87,"path":88,"seo":89,"stem":90,"__hash__":91},"docs\u002Fdocs\u002Freview.md","Review & diffs",{"type":7,"value":8,"toc":74},"minimark",[9,13,18,31,35,38,48,52,55,61,65],[10,11,12],"p",{},"Before anything merges, you review it. The Review tab shows exactly what an agent changed and lets you iterate without dropping to a terminal.",[14,15,17],"h2",{"id":16},"the-review-tab","The Review tab",[10,19,20,21,25,26,30],{},"Each session's ",[22,23,24],"strong",{},"Review"," tab lists changed files with diff stats — ",[27,28,29],"code",{},"+128 −34"," in monospace with tabular numerals — and renders a side-by-side or unified diff for each.",[14,32,34],{"id":33},"reading-diffs","Reading diffs",[10,36,37],{},"Additions are tinted emerald, deletions red. File-level summaries roll up the totals so you can scan the shape of a change before opening any single file.",[39,40,46],"pre",{"className":41,"code":43,"language":44,"meta":45},[42],"language-diff","  src\u002Flib\u002Fapi.ts        +12  -4\n  src\u002Frouter\u002Fguards.ts   +6  -2\n- const returnTo = url.searchParams.get('returnTo')\n+ const returnTo = sanitizeReturnTo(url.searchParams.get('returnTo'))\n","diff","",[27,47,43],{"__ignoreMap":45},[14,49,51],{"id":50},"review-and-fix","Review-and-fix",[10,53,54],{},"Spotted something off? Send the agent a follow-up right from the Review tab. It edits in place, the diff updates, and you review again — a tight loop that keeps you in control without micromanaging.",[56,57,58],"callout",{},[10,59,60],{},"The review-and-fix cycle is the heart of working with Plexus: read, nudge, re-read, ship.",[14,62,64],{"id":63},"approving-changes","Approving changes",[10,66,67,68,73],{},"Once a diff looks right, move straight to the ",[69,70,72],"a",{"href":71},"\u002Fdocs\u002Fgit","git workflow"," — rebase, squash, merge, or open a PR — without leaving the session.",{"title":45,"searchDepth":75,"depth":75,"links":76},2,[77,78,79,80],{"id":16,"depth":75,"text":17},{"id":33,"depth":75,"text":34},{"id":50,"depth":75,"text":51},{"id":63,"depth":75,"text":64},"The Review tab shows exactly what an agent changed and lets you iterate.","md","Working with agents","GitPullRequestArrow",{},true,5,"\u002Fdocs\u002Freview",{"title":5,"description":81},"docs\u002Freview","ePXxlyQtsqvfMm8oFFePKfkPymf1JcVZ74ZYxcAmK_U",[93,218,343,434,513,557,628,684,748],{"id":94,"title":95,"body":96,"description":209,"extension":82,"group":210,"icon":211,"meta":212,"navTitle":95,"navigation":86,"order":213,"path":214,"seo":215,"stem":216,"__hash__":217},"docs\u002Fdocs\u002Findex.md","Introduction",{"type":7,"value":97,"toc":203},[98,104,108,111,118,122,144,148,151,171,186,190],[10,99,100,103],{},[22,101,102],{},"Plexus"," is an agent orchestration platform for managing coding CLIs like Claude Code. It gives you a single desktop control plane to launch, monitor, and coordinate agents across every project and branch.",[14,105,107],{"id":106},"what-is-plexus","What is Plexus",[10,109,110],{},"Modern development increasingly means running multiple coding agents at once — across projects, branches, and tasks. Instead of juggling a dozen terminal tabs, Plexus surfaces live activity, diffs, review, and pull-request state for everything in flight, in one fast native window.",[10,112,113,114,117],{},"Each session is its own ",[22,115,116],{},"git worktree"," running an agent, so work stays isolated and parallel. Plexus is local-first: your code and credentials never leave your machine.",[14,119,121],{"id":120},"why-orchestration","Why orchestration",[123,124,125,132,138],"ul",{},[126,127,128,131],"li",{},[22,129,130],{},"Parallelism without chaos"," — fan work out to several agents and keep every run tracked.",[126,133,134,137],{},[22,135,136],{},"One source of truth"," — status, logs, and diffs for all sessions at a glance.",[126,139,140,143],{},[22,141,142],{},"The full git loop"," — review, rebase, squash, merge, and open PRs without leaving the app.",[14,145,147],{"id":146},"core-concepts","Core concepts",[10,149,150],{},"Plexus organizes everything into a simple hierarchy:",[123,152,153,159,165],{},[126,154,155,158],{},[22,156,157],{},"Workspace"," — a collection of projects you group together.",[126,160,161,164],{},[22,162,163],{},"Project"," — a local git repository you've added to Plexus.",[126,166,167,170],{},[22,168,169],{},"Session"," — an agent running in its own worktree on its own branch.",[10,172,173,174,177,178,181,182,185],{},"Activity is communicated by colored status dots — ",[22,175,176],{},"working",", ",[22,179,180],{},"waiting",", or ",[22,183,184],{},"idle"," — and PR status reuses the branch glyph, tinted for open or merged.",[14,187,189],{"id":188},"where-to-next","Where to next",[10,191,192,193,197,198,202],{},"Install Plexus and spin up your first session in ",[69,194,196],{"href":195},"\u002Fdocs\u002Fgetting-started","Getting started",", or read how it's all wired together in ",[69,199,201],{"href":200},"\u002Fdocs\u002Farchitecture","Architecture",".",{"title":45,"searchDepth":75,"depth":75,"links":204},[205,206,207,208],{"id":106,"depth":75,"text":107},{"id":120,"depth":75,"text":121},{"id":146,"depth":75,"text":147},{"id":188,"depth":75,"text":189},"What Plexus is and why it exists.","Overview","BookOpen",{},1,"\u002Fdocs",{"title":95,"description":209},"docs\u002Findex","nbi4V79q9ZlbuonNVpJk3tSGyQfhOAz0PcROY_9nhXs",{"id":219,"title":196,"body":220,"description":337,"extension":82,"group":210,"icon":338,"meta":339,"navTitle":196,"navigation":86,"order":75,"path":195,"seo":340,"stem":341,"__hash__":342},"docs\u002Fdocs\u002Fgetting-started.md",{"type":7,"value":221,"toc":330},[222,225,229,237,245,252,256,263,273,277,284,290,294,305,310,314],[10,223,224],{},"Install Plexus, add a repository, and run your first agent session in under a minute.",[14,226,228],{"id":227},"install","Install",[10,230,231,232,236],{},"Download the build for your platform from the ",[69,233,235],{"href":234},"\u002F","home page",", or grab the latest release directly:",[39,238,243],{"className":239,"code":241,"language":242,"meta":45},[240],"language-bash","# macOS (Homebrew)\nbrew install --cask plexus\n\n# Linux (.deb)\nsudo dpkg -i plexus_amd64.deb\n","bash",[27,244,241],{"__ignoreMap":45},[10,246,247,248,251],{},"Windows builds ship as a signed ",[27,249,250],{},".msi"," installer. All artifacts are published on the GitHub releases page.",[14,253,255],{"id":254},"first-launch","First launch",[10,257,258,259,262],{},"On first run, Plexus checks that the agent CLI is available on your ",[27,260,261],{},"PATH",". If it isn't, you'll see an actionable prompt:",[56,264,266],{"tone":265},"warn",[10,267,268,269,272],{},"Claude Code CLI not found on PATH. Install the ",[27,270,271],{},"claude"," command, then restart Plexus.",[14,274,276],{"id":275},"add-a-project","Add a project",[10,278,279,280,283],{},"Click ",[22,281,282],{},"Add repository"," in the tree, or use the command palette. Point Plexus at any local git repo — no daemon, no server-side config.",[39,285,288],{"className":286,"code":287,"language":242,"meta":45},[240],"# the repo just needs to be a normal git checkout\ngit clone https:\u002F\u002Fgithub.com\u002Fyou\u002Fyour-app.git\n# then \"Add repository\" → select the folder\n",[27,289,287],{"__ignoreMap":45},[14,291,293],{"id":292},"start-a-session","Start a session",[10,295,296,297,300,301,304],{},"With a project selected, hit ",[27,298,299],{},"⌘N"," for ",[22,302,303],{},"New session",". Plexus creates a worktree, checks out a fresh branch, and launches the agent. Type your task into the Agent tab and watch it work.",[56,306,307],{},[10,308,309],{},"Each session is fully isolated — running three in parallel won't touch your main working tree.",[14,311,313],{"id":312},"requirements","Requirements",[123,315,316,319,325],{},[126,317,318],{},"macOS 12+, Windows 10+, or a modern Linux distribution",[126,320,321,324],{},[27,322,323],{},"git"," 2.30+ with worktree support",[126,326,327,328],{},"A supported agent CLI (e.g. Claude Code) on your ",[27,329,261],{},{"title":45,"searchDepth":75,"depth":75,"links":331},[332,333,334,335,336],{"id":227,"depth":75,"text":228},{"id":254,"depth":75,"text":255},{"id":275,"depth":75,"text":276},{"id":292,"depth":75,"text":293},{"id":312,"depth":75,"text":313},"Install Plexus, add a repository, and run your first agent session.","Rocket",{},{"title":196,"description":337},"docs\u002Fgetting-started","N5TalsyBzELqeO9vp0fZuR83Pb6I70m5KIxF4ael5jY",{"id":344,"title":201,"body":345,"description":427,"extension":82,"group":210,"icon":428,"meta":429,"navTitle":201,"navigation":86,"order":430,"path":200,"seo":431,"stem":432,"__hash__":433},"docs\u002Fdocs\u002Farchitecture.md",{"type":7,"value":346,"toc":421},[347,350,354,357,377,381,388,394,398,414,418],[10,348,349],{},"Plexus is a Tauri desktop app: a Rust core for git and process management, a Vue 3 front end for the UI. It's deliberately thin — fast to start, light on memory, and entirely on your machine.",[14,351,353],{"id":352},"the-big-picture","The big picture",[10,355,356],{},"The app is a three-pane orchestration shell: a project tree on the left, session tabs in the center, and an optional AI-summary sidebar on the right, plus a global dashboard across everything.",[123,358,359,365,371],{},[126,360,361,364],{},[22,362,363],{},"Core (Rust \u002F Tauri)"," — owns git operations, worktree lifecycle, and agent processes.",[126,366,367,370],{},[22,368,369],{},"UI (Vue 3 + Vite)"," — renders state and dispatches commands; never touches your repo directly.",[126,372,373,376],{},[22,374,375],{},"Agents"," — each runs as a child process scoped to its worktree.",[14,378,380],{"id":379},"worktrees","Worktrees",[10,382,383,384,387],{},"A session maps one-to-one to a ",[69,385,116],{"href":386},"\u002Fdocs\u002Fsessions",". This is what makes safe parallelism possible: agents edit independent checkouts of the same repo, so their changes never collide until you choose to integrate them.",[39,389,392],{"className":390,"code":391,"language":242,"meta":45},[240],"# what Plexus does under the hood, roughly:\ngit worktree add .plexus\u002Fwt\u002Ffix-auth-redirect -b fix\u002Fauth-redirect\n# → agent runs here, isolated from your main tree\n",[27,393,391],{"__ignoreMap":45},[14,395,397],{"id":396},"the-shell","The shell",[10,399,400,401,177,404,177,406,409,410,413],{},"Session views are split into tabs — ",[22,402,403],{},"Agent",[22,405,24],{},[22,407,408],{},"Explorer",", and ",[22,411,412],{},"Git",". Fixed-height chrome (40px title bar, 28px rows) and resizable, persisted panes keep the layout dense and predictable.",[14,415,417],{"id":416},"local-first","Local-first",[10,419,420],{},"There is no Plexus server. Everything — repos, keys, agent output — stays on your device. That's a deliberate privacy stance, and it's why the app stays fast.",{"title":45,"searchDepth":75,"depth":75,"links":422},[423,424,425,426],{"id":352,"depth":75,"text":353},{"id":379,"depth":75,"text":380},{"id":396,"depth":75,"text":397},{"id":416,"depth":75,"text":417},"How Plexus is built — a thin Tauri desktop app, local-first by design.","Boxes",{},3,{"title":201,"description":427},"docs\u002Farchitecture","hNhSBstTdPbA-qAbwRQjgUxC6EJLx0_vewkZB3SAc98",{"id":435,"title":436,"body":437,"description":506,"extension":82,"group":83,"icon":507,"meta":508,"navTitle":436,"navigation":86,"order":509,"path":386,"seo":510,"stem":511,"__hash__":512},"docs\u002Fdocs\u002Fsessions.md","Sessions & worktrees",{"type":7,"value":438,"toc":500},[439,442,446,449,453,457,461,464,484,493,497],[10,440,441],{},"A session is a single agent running in its own git worktree on its own branch — the atomic unit of work in Plexus.",[14,443,445],{"id":444},"what-a-session-is","What a session is",[10,447,448],{},"When you start a session, Plexus creates a worktree, checks out a new branch, and launches an agent inside it. The session owns that branch for its lifetime. You can have many sessions per project, each working independently.",[14,450,452],{"id":451},"lifecycle","Lifecycle",[454,455],"key-table",{":rows":456},"[[\"Start\",\"Create the worktree and launch the agent on a fresh branch.\"],[\"Resume\",\"Reattach to a paused session and continue where it left off.\"],[\"Stop\",\"Halt the agent but keep the worktree and its changes.\"],[\"Archive\",\"Remove the worktree once the work has merged or been discarded.\"]]",[14,458,460],{"id":459},"activity-states","Activity states",[10,462,463],{},"Every session shows a colored status dot so you always know what needs you:",[123,465,466,472,478],{},[126,467,468,471],{},[22,469,470],{},"Working"," — emerald, with a live pulse. The agent is actively running.",[126,473,474,477],{},[22,475,476],{},"Waiting"," — amber. The agent needs your input or approval.",[126,479,480,483],{},[22,481,482],{},"Idle"," — muted gray. Nothing in flight.",[56,485,486],{},[10,487,488,489,492],{},"Sort the dashboard by ",[22,490,491],{},"Needs input first"," to surface every waiting session at the top.",[14,494,496],{"id":495},"running-in-parallel","Running in parallel",[10,498,499],{},"Because each session is its own worktree, parallelism is safe by construction. Kick off a refactor in one, a bug fix in another, and a docs pass in a third — none of them can step on each other's files.",{"title":45,"searchDepth":75,"depth":75,"links":501},[502,503,504,505],{"id":444,"depth":75,"text":445},{"id":451,"depth":75,"text":452},{"id":459,"depth":75,"text":460},{"id":495,"depth":75,"text":496},"A session is a single agent running in its own git worktree on its own branch.","Bot",{},4,{"title":436,"description":506},"docs\u002Fsessions","ndcYMXe0sIO-5yovjxPna7p2ZVWWlESSEZ0Pk51o8k0",{"id":4,"title":5,"body":514,"description":81,"extension":82,"group":83,"icon":84,"meta":555,"navTitle":5,"navigation":86,"order":87,"path":88,"seo":556,"stem":90,"__hash__":91},{"type":7,"value":515,"toc":549},[516,518,520,526,528,530,535,537,539,543,545],[10,517,12],{},[14,519,17],{"id":16},[10,521,20,522,25,524,30],{},[22,523,24],{},[27,525,29],{},[14,527,34],{"id":33},[10,529,37],{},[39,531,533],{"className":532,"code":43,"language":44,"meta":45},[42],[27,534,43],{"__ignoreMap":45},[14,536,51],{"id":50},[10,538,54],{},[56,540,541],{},[10,542,60],{},[14,544,64],{"id":63},[10,546,67,547,73],{},[69,548,72],{"href":71},{"title":45,"searchDepth":75,"depth":75,"links":550},[551,552,553,554],{"id":16,"depth":75,"text":17},{"id":33,"depth":75,"text":34},{"id":50,"depth":75,"text":51},{"id":63,"depth":75,"text":64},{},{"title":5,"description":81},{"id":558,"title":559,"body":560,"description":621,"extension":82,"group":83,"icon":622,"meta":623,"navTitle":559,"navigation":86,"order":624,"path":71,"seo":625,"stem":626,"__hash__":627},"docs\u002Fdocs\u002Fgit.md","Git workflow",{"type":7,"value":561,"toc":615},[562,565,569,575,579,582,586,593,599,603,606],[10,563,564],{},"Plexus speaks worktrees natively, so the whole git workflow lives one keystroke away — no context switch to a separate client.",[14,566,568],{"id":567},"git-built-in","Git, built in",[10,570,571,572,574],{},"The ",[22,573,412],{}," tab exposes the operations you'd reach for in the terminal, scoped to the session's branch. Everything is reversible and clearly labeled.",[14,576,578],{"id":577},"operations","Operations",[454,580],{":rows":581},"[[\"Rebase\",\"Replay the session branch onto the latest base branch.\"],[\"Squash\",\"Collapse the session's commits into one clean commit.\"],[\"Merge\",\"Integrate the branch into its base.\"],[\"Create PR\",\"Push and open a pull request against the base branch.\"]]",[14,583,585],{"id":584},"opening-a-pr","Opening a PR",[10,587,588,589,592],{},"Hit ",[22,590,591],{},"Create PR"," and Plexus pushes the branch and opens the pull request. The session's PR status updates live — the branch glyph turns emerald for open, purple once merged.",[39,594,597],{"className":595,"code":596,"language":242,"meta":45},[240],"$ plexus pr create\n● opened #128 against main\n  https:\u002F\u002Fgithub.com\u002Fyou\u002Fyour-app\u002Fpull\u002F128\n",[27,598,596],{"__ignoreMap":45},[14,600,602],{"id":601},"resolving-conflicts","Resolving conflicts",[10,604,605],{},"If a rebase hits conflicts, Plexus tells you exactly where:",[56,607,608],{"tone":265},[10,609,610,611,614],{},"Could not rebase — conflicts in ",[27,612,613],{},"src\u002Flib\u002Fapi.ts",". Resolve them in the Explorer tab, then continue.",{"title":45,"searchDepth":75,"depth":75,"links":616},[617,618,619,620],{"id":567,"depth":75,"text":568},{"id":577,"depth":75,"text":578},{"id":584,"depth":75,"text":585},{"id":601,"depth":75,"text":602},"Plexus speaks worktrees natively, so the whole git workflow lives one keystroke away.","GitMerge",{},6,{"title":559,"description":621},"docs\u002Fgit","-840C8uwjQJDW_XjyO_mxAITPMdJWm4AoI4glHHp4gE",{"id":629,"title":630,"body":631,"description":675,"extension":82,"group":676,"icon":677,"meta":678,"navTitle":630,"navigation":86,"order":679,"path":680,"seo":681,"stem":682,"__hash__":683},"docs\u002Fdocs\u002Fdashboard.md","Dashboard",{"type":7,"value":632,"toc":670},[633,636,640,643,647,653,658,662],[10,634,635],{},"The dashboard is the bird's-eye view: every project and session across all workspaces in one sortable list.",[14,637,639],{"id":638},"the-global-view","The global view",[10,641,642],{},"Open the dashboard from the title bar (Dashboard) to see counts of working, waiting, and idle sessions, plus open and merged PRs at a glance.",[14,644,646],{"id":645},"sorting-filtering","Sorting & filtering",[10,648,649,650,652],{},"Sort by activity to keep the busiest work up top, or by name for a stable list. The most useful sort is ",[22,651,491],{},", which floats every waiting session to the top so nothing stalls on you.",[56,654,655],{},[10,656,657],{},"Counts use tabular numerals so the numbers never jitter as state changes.",[14,659,661],{"id":660},"jumping-to-work","Jumping to work",[10,663,664,665,669],{},"Click any row to jump straight into that session's view. Combined with the ",[69,666,668],{"href":667},"\u002Fdocs\u002Fshortcuts","command palette",", you can reach any agent in two keystrokes.",{"title":45,"searchDepth":75,"depth":75,"links":671},[672,673,674],{"id":638,"depth":75,"text":639},{"id":645,"depth":75,"text":646},{"id":660,"depth":75,"text":661},"The bird's-eye view — every project and session across all workspaces.","Reference","LayoutGrid",{},7,"\u002Fdocs\u002Fdashboard",{"title":630,"description":675},"docs\u002Fdashboard","iTrfBtzzgQv2ERu7koRoPlvw_c31HcfTz-H8U59wxAk",{"id":685,"title":686,"body":687,"description":741,"extension":82,"group":676,"icon":742,"meta":743,"navTitle":686,"navigation":86,"order":744,"path":667,"seo":745,"stem":746,"__hash__":747},"docs\u002Fdocs\u002Fshortcuts.md","Keyboard shortcuts",{"type":7,"value":688,"toc":735},[689,692,696,703,707,710,714,717,719,722],[10,690,691],{},"Plexus is keyboard-driven. Almost every action has a shortcut, and the command palette can reach the rest.",[14,693,695],{"id":694},"command-palette","Command palette",[10,697,698,699,702],{},"Press ",[27,700,701],{},"⌘K"," to open the palette. Type to fuzzy-find any project, session, or action and run it without lifting your hands from the keyboard.",[14,704,706],{"id":705},"global","Global",[454,708],{":rows":709},"[[\"⌘K\",\"Open the command palette\"],[\"⌘N\",\"New session\"],[\"⌘D\",\"Go to dashboard\"],[\"⌘,\",\"Open settings\"],[\"⌘\\\\\",\"Toggle the summary sidebar\"]]",[14,711,713],{"id":712},"within-a-session","Within a session",[454,715],{":rows":716},"[[\"⌘1–4\",\"Switch between Agent \u002F Review \u002F Explorer \u002F Git\"],[\"⌘J\",\"Toggle the terminal\"],[\"⌘Enter\",\"Send the current message to the agent\"],[\"⌘R\",\"Resume a paused session\"]]",[14,718,412],{"id":323},[454,720],{":rows":721},"[[\"⌘⇧M\",\"Merge the session branch\"],[\"⌘⇧P\",\"Create a pull request\"],[\"⌘⇧R\",\"Rebase onto the base branch\"]]",[56,723,724],{},[10,725,726,727,730,731,734],{},"Shortcuts respect your platform — ",[27,728,729],{},"⌘"," on macOS maps to ",[27,732,733],{},"Ctrl"," on Windows and Linux.",{"title":45,"searchDepth":75,"depth":75,"links":736},[737,738,739,740],{"id":694,"depth":75,"text":695},{"id":705,"depth":75,"text":706},{"id":712,"depth":75,"text":713},{"id":323,"depth":75,"text":412},"Plexus is keyboard-driven — almost every action has a shortcut.","Keyboard",{},8,{"title":686,"description":741},"docs\u002Fshortcuts","RsvrNekIlociUxDIhM0axogLI_tcBG4qiUOlNuSaw64",{"id":749,"title":750,"body":751,"description":838,"extension":82,"group":676,"icon":759,"meta":839,"navTitle":750,"navigation":86,"order":840,"path":841,"seo":842,"stem":843,"__hash__":844},"docs\u002Fdocs\u002Fconfiguration.md","Configuration & hooks",{"type":7,"value":752,"toc":832},[753,756,760,767,771,778,786,790,801,809,820,825,829],[10,754,755],{},"Plexus works with zero configuration, but a few settings and hooks let you tailor it to your workflow.",[14,757,759],{"id":758},"settings","Settings",[10,761,762,763,766],{},"Open settings with ",[27,764,765],{},"⌘,",". Configure your default agent, base branch naming, worktree location, and the icon\u002Ftheme preferences.",[14,768,770],{"id":769},"project-config","Project config",[10,772,773,774,777],{},"Drop a ",[27,775,776],{},".plexus.toml"," at a repo root to set per-project defaults:",[39,779,784],{"className":780,"code":782,"language":783,"meta":45},[781],"language-toml","[session]\nagent = \"claude-code\"\nbase_branch = \"main\"\nbranch_prefix = \"agent\u002F\"\n\n[worktrees]\ndir = \".plexus\u002Fwt\"\n","toml",[27,785,782],{"__ignoreMap":45},[14,787,789],{"id":788},"hooks","Hooks",[10,791,792,793,796,797,800],{},"Hooks run shell commands around a worktree's lifecycle — setup, run, and teardown. Use them to install dependencies when a worktree is created, prepare the environment before the agent runs, or clean up when it's removed. Edit them in ",[27,794,795],{},".plexus\u002Fhooks.json",", or set them up visually in ",[22,798,799],{},"Settings → Hooks"," with no file editing.",[39,802,807],{"className":803,"code":805,"language":806,"meta":45},[804],"language-json","{\n  \"create\": \"pnpm install\",\n  \"run\": \"cp .env.example .env\",\n  \"teardown\": \"docker compose down\"\n}\n","json",[27,808,805],{"__ignoreMap":45},[56,810,811],{},[10,812,813,814,816,817,819],{},"Every hook you add in ",[22,815,799],{}," is written straight to ",[27,818,795],{}," — the UI and the file are always in sync.",[56,821,822],{"tone":265},[10,823,824],{},"Hooks run on your machine with your permissions. Only enable hooks for repositories you trust.",[14,826,828],{"id":827},"theme","Theme",[10,830,831],{},"Plexus ships light and dark as equal peers and follows your system preference by default. Toggle it from the title bar or with the theme switch in settings — the same control you'll find in the top-right of this site.",{"title":45,"searchDepth":75,"depth":75,"links":833},[834,835,836,837],{"id":758,"depth":75,"text":759},{"id":769,"depth":75,"text":770},{"id":788,"depth":75,"text":789},{"id":827,"depth":75,"text":828},"A few settings and hooks let you tailor Plexus to your workflow.",{},9,"\u002Fdocs\u002Fconfiguration",{"title":750,"description":838},"docs\u002Fconfiguration","cTouykLGByPHMaTfI533DrH05BKKwc4Ukw9bD41JFd8",1782485240134]