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