[{"data":1,"prerenderedAt":845},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fgit":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\u002Fgit.md","Git workflow",{"type":7,"value":8,"toc":74},"minimark",[9,13,18,26,30,34,38,45,56,60,63],[10,11,12],"p",{},"Plexus speaks worktrees natively, so the whole git workflow lives one keystroke away — no context switch to a separate client.",[14,15,17],"h2",{"id":16},"git-built-in","Git, built in",[10,19,20,21,25],{},"The ",[22,23,24],"strong",{},"Git"," tab exposes the operations you'd reach for in the terminal, scoped to the session's branch. Everything is reversible and clearly labeled.",[14,27,29],{"id":28},"operations","Operations",[31,32],"key-table",{":rows":33},"[[\"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,35,37],{"id":36},"opening-a-pr","Opening a PR",[10,39,40,41,44],{},"Hit ",[22,42,43],{},"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.",[46,47,53],"pre",{"className":48,"code":50,"language":51,"meta":52},[49],"language-bash","$ plexus pr create\n● opened #128 against main\n  https:\u002F\u002Fgithub.com\u002Fyou\u002Fyour-app\u002Fpull\u002F128\n","bash","",[54,55,50],"code",{"__ignoreMap":52},[14,57,59],{"id":58},"resolving-conflicts","Resolving conflicts",[10,61,62],{},"If a rebase hits conflicts, Plexus tells you exactly where:",[64,65,67],"callout",{"tone":66},"warn",[10,68,69,70,73],{},"Could not rebase — conflicts in ",[54,71,72],{},"src\u002Flib\u002Fapi.ts",". Resolve them in the Explorer tab, then continue.",{"title":52,"searchDepth":75,"depth":75,"links":76},2,[77,78,79,80],{"id":16,"depth":75,"text":17},{"id":28,"depth":75,"text":29},{"id":36,"depth":75,"text":37},{"id":58,"depth":75,"text":59},"Plexus speaks worktrees natively, so the whole git workflow lives one keystroke away.","md","Working with agents","GitMerge",{},true,6,"\u002Fdocs\u002Fgit",{"title":5,"description":81},"docs\u002Fgit","-840C8uwjQJDW_XjyO_mxAITPMdJWm4AoI4glHHp4gE",[93,219,341,432,510,584,628,684,748],{"id":94,"title":95,"body":96,"description":210,"extension":82,"group":211,"icon":212,"meta":213,"navTitle":95,"navigation":86,"order":214,"path":215,"seo":216,"stem":217,"__hash__":218},"docs\u002Fdocs\u002Findex.md","Introduction",{"type":7,"value":97,"toc":204},[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,198,199,203],{},"Install Plexus and spin up your first session in ",[194,195,197],"a",{"href":196},"\u002Fdocs\u002Fgetting-started","Getting started",", or read how it's all wired together in ",[194,200,202],{"href":201},"\u002Fdocs\u002Farchitecture","Architecture",".",{"title":52,"searchDepth":75,"depth":75,"links":205},[206,207,208,209],{"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":210},"docs\u002Findex","nbi4V79q9ZlbuonNVpJk3tSGyQfhOAz0PcROY_9nhXs",{"id":220,"title":197,"body":221,"description":335,"extension":82,"group":211,"icon":336,"meta":337,"navTitle":197,"navigation":86,"order":75,"path":196,"seo":338,"stem":339,"__hash__":340},"docs\u002Fdocs\u002Fgetting-started.md",{"type":7,"value":222,"toc":328},[223,226,230,238,244,251,255,262,271,275,282,288,292,303,308,312],[10,224,225],{},"Install Plexus, add a repository, and run your first agent session in under a minute.",[14,227,229],{"id":228},"install","Install",[10,231,232,233,237],{},"Download the build for your platform from the ",[194,234,236],{"href":235},"\u002F","home page",", or grab the latest release directly:",[46,239,242],{"className":240,"code":241,"language":51,"meta":52},[49],"# macOS (Homebrew)\nbrew install --cask plexus\n\n# Linux (.deb)\nsudo dpkg -i plexus_amd64.deb\n",[54,243,241],{"__ignoreMap":52},[10,245,246,247,250],{},"Windows builds ship as a signed ",[54,248,249],{},".msi"," installer. All artifacts are published on the GitHub releases page.",[14,252,254],{"id":253},"first-launch","First launch",[10,256,257,258,261],{},"On first run, Plexus checks that the agent CLI is available on your ",[54,259,260],{},"PATH",". If it isn't, you'll see an actionable prompt:",[64,263,264],{"tone":66},[10,265,266,267,270],{},"Claude Code CLI not found on PATH. Install the ",[54,268,269],{},"claude"," command, then restart Plexus.",[14,272,274],{"id":273},"add-a-project","Add a project",[10,276,277,278,281],{},"Click ",[22,279,280],{},"Add repository"," in the tree, or use the command palette. Point Plexus at any local git repo — no daemon, no server-side config.",[46,283,286],{"className":284,"code":285,"language":51,"meta":52},[49],"# 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",[54,287,285],{"__ignoreMap":52},[14,289,291],{"id":290},"start-a-session","Start a session",[10,293,294,295,298,299,302],{},"With a project selected, hit ",[54,296,297],{},"⌘N"," for ",[22,300,301],{},"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.",[64,304,305],{},[10,306,307],{},"Each session is fully isolated — running three in parallel won't touch your main working tree.",[14,309,311],{"id":310},"requirements","Requirements",[123,313,314,317,323],{},[126,315,316],{},"macOS 12+, Windows 10+, or a modern Linux distribution",[126,318,319,322],{},[54,320,321],{},"git"," 2.30+ with worktree support",[126,324,325,326],{},"A supported agent CLI (e.g. Claude Code) on your ",[54,327,260],{},{"title":52,"searchDepth":75,"depth":75,"links":329},[330,331,332,333,334],{"id":228,"depth":75,"text":229},{"id":253,"depth":75,"text":254},{"id":273,"depth":75,"text":274},{"id":290,"depth":75,"text":291},{"id":310,"depth":75,"text":311},"Install Plexus, add a repository, and run your first agent session.","Rocket",{},{"title":197,"description":335},"docs\u002Fgetting-started","N5TalsyBzELqeO9vp0fZuR83Pb6I70m5KIxF4ael5jY",{"id":342,"title":202,"body":343,"description":425,"extension":82,"group":211,"icon":426,"meta":427,"navTitle":202,"navigation":86,"order":428,"path":201,"seo":429,"stem":430,"__hash__":431},"docs\u002Fdocs\u002Farchitecture.md",{"type":7,"value":344,"toc":419},[345,348,352,355,375,379,386,392,396,412,416],[10,346,347],{},"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,349,351],{"id":350},"the-big-picture","The big picture",[10,353,354],{},"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,356,357,363,369],{},[126,358,359,362],{},[22,360,361],{},"Core (Rust \u002F Tauri)"," — owns git operations, worktree lifecycle, and agent processes.",[126,364,365,368],{},[22,366,367],{},"UI (Vue 3 + Vite)"," — renders state and dispatches commands; never touches your repo directly.",[126,370,371,374],{},[22,372,373],{},"Agents"," — each runs as a child process scoped to its worktree.",[14,376,378],{"id":377},"worktrees","Worktrees",[10,380,381,382,385],{},"A session maps one-to-one to a ",[194,383,116],{"href":384},"\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.",[46,387,390],{"className":388,"code":389,"language":51,"meta":52},[49],"# 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",[54,391,389],{"__ignoreMap":52},[14,393,395],{"id":394},"the-shell","The shell",[10,397,398,399,177,402,177,405,408,409,411],{},"Session views are split into tabs — ",[22,400,401],{},"Agent",[22,403,404],{},"Review",[22,406,407],{},"Explorer",", and ",[22,410,24],{},". Fixed-height chrome (40px title bar, 28px rows) and resizable, persisted panes keep the layout dense and predictable.",[14,413,415],{"id":414},"local-first","Local-first",[10,417,418],{},"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":52,"searchDepth":75,"depth":75,"links":420},[421,422,423,424],{"id":350,"depth":75,"text":351},{"id":377,"depth":75,"text":378},{"id":394,"depth":75,"text":395},{"id":414,"depth":75,"text":415},"How Plexus is built — a thin Tauri desktop app, local-first by design.","Boxes",{},3,{"title":202,"description":425},"docs\u002Farchitecture","hNhSBstTdPbA-qAbwRQjgUxC6EJLx0_vewkZB3SAc98",{"id":433,"title":434,"body":435,"description":503,"extension":82,"group":83,"icon":504,"meta":505,"navTitle":434,"navigation":86,"order":506,"path":384,"seo":507,"stem":508,"__hash__":509},"docs\u002Fdocs\u002Fsessions.md","Sessions & worktrees",{"type":7,"value":436,"toc":497},[437,440,444,447,451,454,458,461,481,490,494],[10,438,439],{},"A session is a single agent running in its own git worktree on its own branch — the atomic unit of work in Plexus.",[14,441,443],{"id":442},"what-a-session-is","What a session is",[10,445,446],{},"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,448,450],{"id":449},"lifecycle","Lifecycle",[31,452],{":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.\"]]",[14,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:",[123,462,463,469,475],{},[126,464,465,468],{},[22,466,467],{},"Working"," — emerald, with a live pulse. The agent is actively running.",[126,470,471,474],{},[22,472,473],{},"Waiting"," — amber. The agent needs your input or approval.",[126,476,477,480],{},[22,478,479],{},"Idle"," — muted gray. Nothing in flight.",[64,482,483],{},[10,484,485,486,489],{},"Sort the dashboard by ",[22,487,488],{},"Needs input first"," to surface every waiting session at the top.",[14,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":52,"searchDepth":75,"depth":75,"links":498},[499,500,501,502],{"id":442,"depth":75,"text":443},{"id":449,"depth":75,"text":450},{"id":456,"depth":75,"text":457},{"id":492,"depth":75,"text":493},"A session is a single agent running in its own git worktree on its own branch.","Bot",{},4,{"title":434,"description":503},"docs\u002Fsessions","ndcYMXe0sIO-5yovjxPna7p2ZVWWlESSEZ0Pk51o8k0",{"id":511,"title":512,"body":513,"description":576,"extension":82,"group":83,"icon":577,"meta":578,"navTitle":512,"navigation":86,"order":579,"path":580,"seo":581,"stem":582,"__hash__":583},"docs\u002Fdocs\u002Freview.md","Review & diffs",{"type":7,"value":514,"toc":570},[515,518,522,532,536,539,547,551,554,559,563],[10,516,517],{},"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,519,521],{"id":520},"the-review-tab","The Review tab",[10,523,524,525,527,528,531],{},"Each session's ",[22,526,404],{}," tab lists changed files with diff stats — ",[54,529,530],{},"+128 −34"," in monospace with tabular numerals — and renders a side-by-side or unified diff for each.",[14,533,535],{"id":534},"reading-diffs","Reading diffs",[10,537,538],{},"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.",[46,540,545],{"className":541,"code":543,"language":544,"meta":52},[542],"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",[54,546,543],{"__ignoreMap":52},[14,548,550],{"id":549},"review-and-fix","Review-and-fix",[10,552,553],{},"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.",[64,555,556],{},[10,557,558],{},"The review-and-fix cycle is the heart of working with Plexus: read, nudge, re-read, ship.",[14,560,562],{"id":561},"approving-changes","Approving changes",[10,564,565,566,569],{},"Once a diff looks right, move straight to the ",[194,567,568],{"href":88},"git workflow"," — rebase, squash, merge, or open a PR — without leaving the session.",{"title":52,"searchDepth":75,"depth":75,"links":571},[572,573,574,575],{"id":520,"depth":75,"text":521},{"id":534,"depth":75,"text":535},{"id":549,"depth":75,"text":550},{"id":561,"depth":75,"text":562},"The Review tab shows exactly what an agent changed and lets you iterate.","GitPullRequestArrow",{},5,"\u002Fdocs\u002Freview",{"title":512,"description":576},"docs\u002Freview","ePXxlyQtsqvfMm8oFFePKfkPymf1JcVZ74ZYxcAmK_U",{"id":4,"title":5,"body":585,"description":81,"extension":82,"group":83,"icon":84,"meta":626,"navTitle":5,"navigation":86,"order":87,"path":88,"seo":627,"stem":90,"__hash__":91},{"type":7,"value":586,"toc":620},[587,589,591,595,597,599,601,605,610,612,614],[10,588,12],{},[14,590,17],{"id":16},[10,592,20,593,25],{},[22,594,24],{},[14,596,29],{"id":28},[31,598],{":rows":33},[14,600,37],{"id":36},[10,602,40,603,44],{},[22,604,43],{},[46,606,608],{"className":607,"code":50,"language":51,"meta":52},[49],[54,609,50],{"__ignoreMap":52},[14,611,59],{"id":58},[10,613,62],{},[64,615,616],{"tone":66},[10,617,69,618,73],{},[54,619,72],{},{"title":52,"searchDepth":75,"depth":75,"links":621},[622,623,624,625],{"id":16,"depth":75,"text":17},{"id":28,"depth":75,"text":29},{"id":36,"depth":75,"text":37},{"id":58,"depth":75,"text":59},{},{"title":5,"description":81},{"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,488],{},", which floats every waiting session to the top so nothing stalls on you.",[64,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 ",[194,666,668],{"href":667},"\u002Fdocs\u002Fshortcuts","command palette",", you can reach any agent in two keystrokes.",{"title":52,"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 ",[54,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",[31,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",[31,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,24],{"id":321},[31,720],{":rows":721},"[[\"⌘⇧M\",\"Merge the session branch\"],[\"⌘⇧P\",\"Create a pull request\"],[\"⌘⇧R\",\"Rebase onto the base branch\"]]",[64,723,724],{},[10,725,726,727,730,731,734],{},"Shortcuts respect your platform — ",[54,728,729],{},"⌘"," on macOS maps to ",[54,732,733],{},"Ctrl"," on Windows and Linux.",{"title":52,"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":321,"depth":75,"text":24},"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 ",[54,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 ",[54,775,776],{},".plexus.toml"," at a repo root to set per-project defaults:",[46,779,784],{"className":780,"code":782,"language":783,"meta":52},[781],"language-toml","[session]\nagent = \"claude-code\"\nbase_branch = \"main\"\nbranch_prefix = \"agent\u002F\"\n\n[worktrees]\ndir = \".plexus\u002Fwt\"\n","toml",[54,785,782],{"__ignoreMap":52},[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 ",[54,794,795],{},".plexus\u002Fhooks.json",", or set them up visually in ",[22,798,799],{},"Settings → Hooks"," with no file editing.",[46,802,807],{"className":803,"code":805,"language":806,"meta":52},[804],"language-json","{\n  \"create\": \"pnpm install\",\n  \"run\": \"cp .env.example .env\",\n  \"teardown\": \"docker compose down\"\n}\n","json",[54,808,805],{"__ignoreMap":52},[64,810,811],{},[10,812,813,814,816,817,819],{},"Every hook you add in ",[22,815,799],{}," is written straight to ",[54,818,795],{}," — the UI and the file are always in sync.",[64,821,822],{"tone":66},[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":52,"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",1782485240135]