[{"data":1,"prerenderedAt":1129},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fbilling":3,"docs-nav":849,"docs-updated":1087,"site-nav-marketing":1097},{"id":4,"title":5,"body":6,"description":838,"extension":839,"group":840,"icon":841,"meta":842,"navTitle":277,"navigation":843,"order":844,"path":845,"seo":846,"stem":847,"__hash__":848},"docs\u002Fdocs\u002Fbilling.md","Plans, seats and billing",{"type":7,"value":8,"toc":826},"minimark",[9,18,92,109,118,123,130,154,157,160,171,190,194,204,283,294,302,306,317,328,343,346,361,440,447,451,481,503,506,569,587,594,598,601,669,677,686,689,698,705,711,715,731,737,741,761,786,793,805],[10,11,12,13,17],"p",{},"A ",[14,15,16],"strong",{},"plan"," is the one thing in Plexus you can pay for — an optional monthly subscription on top of a free account — and it unlocks seven things:",[19,20,21,32,42,51,60,69,83],"ul",{},[22,23,24,31],"li",{},[14,25,26],{},[27,28,30],"a",{"href":29},"\u002Fdocs\u002Fsync","Cross-device sync"," — your settings, workspaces and projects following you to every machine you sign in on.",[22,33,34,41],{},[14,35,36,40],{},[27,37,39],{"href":38},"\u002Fdocs\u002Fprompts","Prompt templates"," saved to your account"," — a prompt you wrote on one machine, available on the next.",[22,43,44,50],{},[14,45,46],{},[27,47,49],{"href":48},"\u002Fdocs\u002Fshared-workspaces","The workspaces an organization shares"," — a workspace somebody in your organization set up once, with its repositories already attached, arriving in your sidebar.",[22,52,53,59],{},[14,54,55],{},[27,56,58],{"href":57},"\u002Fdocs\u002Fmanaged-settings","The settings an organization manages"," — a setting value somebody in your organization published once, recommended on your machines or enforced and locked there.",[22,61,62,68],{},[14,63,64],{},[27,65,67],{"href":66},"\u002Fdocs\u002Forg-prompts","The prompts an organization publishes"," — a prompt template somebody in your organization published as a numbered revision, in your template list beside your own and updated for everybody when the organization publishes the next one.",[22,70,71,77,78,82],{},[14,72,73],{},[27,74,76],{"href":75},"\u002Fdocs\u002Fissues","The open issues of a project's tracker"," — a project's GitHub issues listed inside Plexus, fetched from your own GitHub account, each one a click away from a session that is linked to it — and the same for a ",[27,79,81],{"href":80},"\u002Fdocs\u002Fplnnrly","Plnnrly"," project's work items, board and sprints, from your own Plnnrly organization.",[22,84,85,91],{},[14,86,87],{},[27,88,90],{"href":89},"\u002Fdocs\u002Fstacks","Stacks & ordered merging"," — sessions stacked on each other's branches and kept in sync, and a stack — or a list of pull requests — merged in order with one click.",[10,93,94,95,99,100,103,104,108],{},"The first two reach across ",[96,97,98],"em",{},"your own"," machines. The next three reach across a ",[96,101,102],{},"team",", and they are the ones a seat carries inside the organization that bought it. The last two reach nowhere but your git provider: they run between your machine and your own account, and they are the things on this list that are not a service we operate — a plan unlocks the fetching of the issue list and the automation of a stack, while attaching a tracker, the link a session carries, the ",[105,106,107],"code",{},"Closes #123"," line, basing a session on another session's branch and opening a pull request against any branch you like are free.",[110,111,112],"callout",{},[10,113,114,117],{},[14,115,116],{},"The core of Plexus is free, and always will be."," Sessions, worktrees, the agent terminal, review, the explorer, the git client, hooks, pull requests and the dashboard never need a plan or a seat; a plan adds the seven things above, on top. A plan is not a licence to run Plexus — the app is yours to use either way — and a plan that lapses takes nothing you have made away with it. What ends is your machines keeping each other up to date; every one of them keeps everything it has, and keeps working exactly as it did.",[119,120,122],"h2",{"id":121},"what-a-plan-is","What a plan is",[10,124,125,126,129],{},"Not buying anything is the free plan, and it is where every install starts. On top of it there are two paid ones, both billed ",[14,127,128],{},"monthly",":",[19,131,132,139],{},[22,133,134,135,138],{},"An ",[14,136,137],{},"individual plan"," belongs to your own Plexus account.",[22,140,134,141,144,145,149,150,153],{},[14,142,143],{},"organization plan"," belongs to one ",[27,146,148],{"href":147},"\u002Fdocs\u002Faccount#organizations","organization"," and is billed ",[14,151,152],{},"per seat"," — you choose how many seats it has, and that is what it costs.",[10,155,156],{},"You can hold both. They are separate purchases with separate invoices, and deliberately so: a company name, a VAT number and an invoice address belong to the organization, not to whoever happened to press Buy. Putting them on one invoice would put a company's VAT number on a personal one.",[10,158,159],{},"Plans start immediately and renew each month until they are cancelled. There is no annual option, no trial, and no coupon to enter.",[10,161,162,165,166,170],{},[14,163,164],{},"Prices are shown on the checkout page",", in the currency and with the VAT that applies to you, before you pay for anything. The Billing page on the web panel shows the plan's current price too, read from the invoicing provider's own product rather than typed into Plexus, with VAT added at checkout. Plexus never quotes you a price it worked out itself — see ",[27,167,169],{"href":168},"#invoices-vat-and-payment-details","Invoices, VAT and payment details",".",[10,172,173,174,177,178,181,182,185,186,189],{},"Everything below lives on two Settings pages. Your own plan is the ",[14,175,176],{},"Plan"," row of ",[14,179,180],{},"Settings → My account",". An organization's plan, its seats and its people are on ",[14,183,184],{},"Settings → Organizations",", under ",[14,187,188],{},"Plan, seats and people",": pick the organization from the organization picker at the top, and that row — like the rest of the page — is about that one. Picking it is also the moment Plexus goes and reads any of it; nothing about an organization is read until it is the one on screen.",[119,191,193],{"id":192},"buying-a-plan","Buying a plan",[10,195,196,197,200,201,170],{},"Buying always finishes in your browser, wherever you start it: the payment page is hosted by ",[14,198,199],{},"Moneybird",", the accounting service we bill through, so the tab that opens is on ",[105,202,203],{},"moneybird.com",[205,206,207,217,244,261],"ol",{},[22,208,209,212,213,216],{},[14,210,211],{},"Fill in the billing details first."," Your company name, VAT number and invoice address are edited in the Plexus web panel (the ",[14,214,215],{},"Billing information"," form on its Billing page), not in the app — they end up on every invoice, and your country and VAT number are what decide the VAT.",[22,218,219,222,223,226,227,230,231,234,235,238,239,243],{},[14,220,221],{},"Tick the acknowledgement."," A plan starts the moment it is paid for, so the app asks you to say that out loud: ",[96,224,225],{},"\"Start straight away. The plan begins the moment it is paid for, so the 14-day right to withdraw doesn't apply — you can cancel any time and it runs to the end of the period.\""," The box starts unticked and the purchase is refused without it: in the app ",[14,228,229],{},"the Buy button does nothing until you tick it",", and on the web panel it is in the ",[14,232,233],{},"Start your plan"," dialog that ",[14,236,237],{},"Subscribe"," opens. Our ",[27,240,242],{"href":241},"\u002Flegal\u002Fterms","Terms"," set out what you are agreeing to.",[22,245,246,249,250,253,254,257,258,260],{},[14,247,248],{},"Buy."," ",[14,251,252],{},"Buy a plan"," for your own account, or ",[14,255,256],{},"Buy seats"," on an organization after setting the number you want — on the web panel the button is ",[14,259,237],{},", on a card that also shows the current price. A browser tab opens showing the plan, the price and the VAT for your country. Pay there — and if you pay by a method that supports it, the same step sets up the direct debit that collects later months automatically.",[22,262,263,266,267,270,271,274,275,278,279,282],{},[14,264,265],{},"Come back to Plexus."," A finished checkout has no way to tell the app it is done, so Plexus re-reads what it is showing whenever its window comes back to the front, and what the plan unlocks follows within seconds of the plan changing. Give it a moment after switching back rather than restarting the app — and if it still shows the old state, press the ",[14,268,269],{},"Reload"," button (the circular arrow) beside the plan's status: it asks the invoicing provider for the plan's current state right now. The web panel's Billing page has the same button as ",[14,272,273],{},"Refresh",". The payment page itself sends your browser back to the web panel's ",[14,276,277],{},"Billing"," page, which checks the plan as it opens and says either ",[96,280,281],{},"\"Payment received — your plan is active.\""," or that the payment is still being confirmed; if what you bought was seats for an organization, it takes you on to that organization's Billing page.",[10,284,285,286,289,290,293],{},"While a purchase is being confirmed the status reads ",[14,287,288],{},"Waiting for confirmation","; once it lands it reads ",[14,291,292],{},"Active — renews 18 Sep 2026",", with the real date.",[110,295,296],{},[10,297,298,301],{},[14,299,300],{},"A checkout link is good for one hour."," It is minted when you press the button and it is never stored, so a tab left open overnight refuses you rather than taking a payment against a stale price. Press the button again and you get a fresh link.",[119,303,305],{"id":304},"seats","Seats",[10,307,12,308,311,312,316],{},[14,309,310],{},"seat"," is one assignable membership on a paid organization plan. It is not a device — those are ",[27,313,315],{"href":314},"\u002Fdocs\u002Faccount#signed-in-devices","Signed-in devices"," and they cost nothing — and it is not the same thing as being in the organization.",[10,318,319,320,323,324,327],{},"A seat reaches everything an individual plan reaches, so giving somebody a seat gives them ",[27,321,322],{"href":29},"cross-device sync"," on their ",[14,325,326],{},"own"," machines. Buying seats for a team is how a team gets it without everybody buying a plan of their own, and nobody pays twice.",[10,329,330,331,334,335,338,339,342],{},"A seat also reaches two things an individual plan cannot: the ",[27,332,333],{"href":48},"workspaces this organization shares"," and the ",[27,336,337],{"href":57},"settings it manages",". Those are the capabilities a seat carries ",[96,340,341],{},"inside"," the organization rather than on the seat-holder's own machines, and they are why an organization with more members than seats has to choose who receives them.",[10,344,345],{},"What a seat does not give you is any sight of what that person syncs. Sync is attached to their personal account, never to your organization, so paying for the seat buys them the feature and shows you nothing — there is no admin view of it, by design.",[10,347,348,349,352,353,356,357,360],{},"That leaves an organization with two numbers, shown together as ",[14,350,351],{},"2 of 5 seats in use",": how many seats it ",[14,354,355],{},"pays for",", and how many of those are ",[14,358,359],{},"assigned"," to members.",[19,362,363,384,402,408,426],{},[22,364,365,368,369,371,372,375,376,383],{},[14,366,367],{},"More members than seats is normal."," A member without a seat is a full member: they are in the organization, they hold their role, and they use Plexus exactly as they did before. No session, worktree, review, hook or pull request in the app refuses to work for want of a seat. What a seat adds is ",[27,370,322],{"href":29}," and ",[27,373,374],{"href":38},"saved prompt templates"," on that person's own machines — which someone holding their own individual plan already has — and ",[14,377,378,379,334,381],{},"the ",[27,380,333],{"href":48},[27,382,337],{"href":57},", which no individual plan can give them, because they are this organization's to hand out.",[22,385,386,389,390,393,394,397,398,401],{},[14,387,388],{},"Assigning is one button."," In the people list, ",[14,391,392],{},"Give a seat"," hands a member one of the free seats and ",[14,395,396],{},"Take back seat"," hands it back. The count moves in the same breath, without a reload, because the app is told the new member row ",[96,399,400],{},"and"," the new seat count in one answer rather than counting them itself.",[22,403,404,407],{},[14,405,406],{},"Removing a member frees their seat."," There is no second step to remember and no seat left stranded on someone who has gone.",[22,409,410,413,414,418,419,421,422,425],{},[14,411,412],{},"Changing how many seats you pay for is a different action",", and a different ",[27,415,417],{"href":416},"\u002Fdocs\u002Froles","permission",": handing out a seat that already exists is an assignment, while changing the count is an invoice line, so the owner can grant one without the other. Set the number in the ",[14,420,305],{}," field and press ",[14,423,424],{},"Update seats",". Adding seats takes effect straight away and Moneybird raises a one-off invoice for the rest of the current month; releasing them lowers what you are billed from the next invoice onward. You cannot drop below the number currently assigned — the app says which people hold one rather than failing halfway.",[22,427,428,431,432,371,436,170],{},[14,429,430],{},"Zero is a legal number."," Setting the count to zero is how an organization gives its seats up without being deleted; everyone stays a member, the app keeps working for all of them, and what they lose is sync between their own machines and any further updates to the workspaces this organization shares and the settings it manages. The workspaces they already joined stay on their machines, with everything under them, and a setting already enforced keeps its last known value — see ",[27,433,435],{"href":434},"\u002Fdocs\u002Fshared-workspaces#what-needs-a-seat-and-what-never-stops","What needs a seat, and what never stops",[27,437,439],{"href":438},"\u002Fdocs\u002Fmanaged-settings#what-needs-a-seat-and-what-never-stops","the same section for managed settings",[10,441,442,443,446],{},"You can also end up with more seats assigned than paid for — seats can be released in the payment provider's own portal while people still hold them. The app says so plainly (",[96,444,445],{},"\"More people hold a seat than this plan pays for. Take one back, or add seats.\"",") and nothing is taken from anyone in the meantime.",[119,448,450],{"id":449},"inviting-people","Inviting people",[10,452,453,456,457,460,461,464,465,468,469,472,473,476,477,480],{},[14,454,455],{},"Invite someone"," takes an ",[14,458,459],{},"Email address"," and a ",[14,462,463],{},"Role",". The app offers two of them — ",[14,466,467],{},"Member",", or ",[14,470,471],{},"Admin"," — and the account panel on the web offers ",[14,474,475],{},"every role the organization has bar Owner",", including ",[27,478,479],{"href":416},"Maintainer, Restricted and any role you wrote yourself",". Owner is not a role you can hand out from either; every organization keeps the owner who created it, and handing one over is done against a member who has already joined.",[110,482,484],{"tone":483},"warn",[10,485,486,489,490,493,494,502],{},[14,487,488],{},"Since version 1.0.0, buying a plan is the owner's alone."," An admin manages members, and gives and takes back the seats the plan already pays for — but buying a plan, changing how many seats it pays for, opening the billing portal, reading the invoices and deleting the organization are the ",[14,491,492],{},"owner's",". What you are allowed to do is decided by the account service when the button is pressed, never worked out from the name of your role. If you want your admins to keep billing, ",[27,495,497,498,501],{"href":496},"\u002Fdocs\u002Froles#making-your-own","copy the Admin role and tick ",[14,499,500],{},"Manage billing"," on the copy"," — one screen, and no new version of Plexus.",[10,504,505],{},"What happens next:",[19,507,508,515,526,544,566],{},[22,509,510,511,514],{},"The invitation is emailed to that address and is ",[14,512,513],{},"valid for 14 days",", single use. The link is in the email and nowhere else — it never appears on a screen, in a list or in an invoice.",[22,516,517,518,521,522,525],{},"It shows in the people list as ",[14,519,520],{},"invitation pending",", and ",[14,523,524],{},"it does not take a seat",". Seats are for people who have actually joined.",[22,527,528,531,532,535,536,539,540,543],{},[14,529,530],{},"Remove"," on that row withdraws the invitation, and says so — ",[96,533,534],{},"\"Withdraw this invitation?\""," rather than ",[96,537,538],{},"\"Remove this person?\"",". Sending the same invitation again (",[14,541,542],{},"Send again",") is in the account panel on the web.",[22,545,546,547,551,552,558,559,371,562,565],{},"The person you invited needs a ",[27,548,550],{"href":549},"\u002Fdocs\u002Faccount","Plexus account"," of their own. The link in the email opens a page asking ",[14,553,554,555,557],{},"Join ",[96,556,148],{},"?",", with ",[14,560,561],{},"Join",[14,563,564],{},"No thanks","; joining adds them with the role the invitation carried.",[22,567,568],{},"Giving them a seat is a separate step afterwards, and there is no rush: they can work without one.",[10,570,571,572,575,576,579,580,583,584,586],{},"Who may do which of these is decided by ",[27,573,574],{"href":416},"roles",", and the line falls in a different place for the two halves. ",[14,577,578],{},"The plan is the owner's"," — buying it, changing how many seats it pays for, opening the billing portal, reading its invoices and cancelling it. ",[14,581,582],{},"The people and the seats already paid for"," are the owner's ",[96,585,400],{}," the admins': inviting, removing, and giving or taking back a seat.",[10,588,589,590,593],{},"Anybody who holds neither sees the same state with the controls replaced by one line — ",[96,591,592],{},"\"You do not have permission to change Acme's plan or seats.\""," Plexus asks the account service what you are allowed to do rather than working it out from your role, and it asks on every request with nothing cached, so a role change takes effect the next time the page loads.",[119,595,597],{"id":596},"in-the-app-and-in-the-browser","In the app, and in the browser",[10,599,600],{},"Plexus shows you the state natively and hands off anything that ends in a payment form or a PDF:",[602,603,604,617],"table",{},[605,606,607],"thead",{},[608,609,610,614],"tr",{},[611,612,613],"th",{},"In the app",[611,615,616],{},"In the browser",[618,619,620,629,637,645,653,661],"tbody",{},[608,621,622,626],{},[623,624,625],"td",{},"Your plan, its status, and when it renews",[623,627,628],{},"Buying a plan, and paying for it",[608,630,631,634],{},[623,632,633],{},"An organization's seat count and how many are in use",[623,635,636],{},"Your billing details — company name, VAT number, invoice address (the Plexus web panel)",[608,638,639,642],{},[623,640,641],{},"The people list: members, their roles, who holds a seat, and unanswered invitations",[623,643,644],{},"Payment details and the direct-debit mandate (the payment provider's portal)",[608,646,647,650],{},[623,648,649],{},"Inviting someone, and withdrawing an invitation",[623,651,652],{},"Sending an invitation again",[608,654,655,658],{},[623,656,657],{},"Giving and taking back seats; changing how many seats you pay for",[623,659,660],{},"Invoices, and downloading them as PDFs (from the Billing page's list, or from the portal)",[608,662,663,666],{},[623,664,665],{},"The overdue warning, when there is one",[623,667,668],{},"Accepting an invitation, and cancelling a plan",[10,670,671,371,674,676],{},[14,672,673],{},"Buy",[14,675,500],{}," are the two buttons that open your browser, and the account panel on the web can do all of it.",[110,678,679],{},[10,680,681,682,685],{},"Plexus keeps ",[14,683,684],{},"no copy"," of any of this on your machine. Your plan, your seats and your people are read fresh from the account service when you open those pages — and again when you come back to the window — because they can all change from a browser tab or from a colleague's laptop while you are looking at them. A stale number here would be a wrong answer about money.",[119,687,169],{"id":688},"invoices-vat-and-payment-details",[10,690,691,693,694,697],{},[14,692,500],{}," in the app (",[14,695,696],{},"Payment method & invoice PDFs"," on the web panel's Billing page) opens the payment provider's customer portal — the same one-hour link rule as checkout, minted when you press it. From there you can change how you pay, update the mandate, and open every invoice the plan has raised, each downloadable as a PDF carrying the billing details you entered. Invoices are also emailed to the invoice address on the account.",[10,699,700,701,704],{},"You do not need the portal for the PDFs themselves. The Billing page lists every invoice, and each issued one has a ",[14,702,703],{},"Download PDF"," button on its row that saves the file straight from the panel, named after the invoice number. A draft has no number yet and no button.",[10,706,707,710],{},[14,708,709],{},"We do not calculate your VAT and we do not store a rate."," Moneybird derives it from the country, address and VAT number on the billing details, which is why filling those in accurately matters: a business in another EU country with a valid VAT number is invoiced at 0% under the reverse charge, a consumer is invoiced at their own country's rate, and outside the EU no VAT is charged. If the VAT shown at checkout looks wrong, fix the billing details before paying rather than after.",[119,712,714],{"id":713},"if-a-payment-fails","If a payment fails",[110,716,717],{"tone":483},[10,718,719,722,723,726,727,730],{},[14,720,721],{},"Nothing is switched off."," A card that expired or a direct debit that was refused is a payments problem, not an access problem. The plan stays active, every assigned seat stays assigned, and ",[27,724,725],{"href":29},"sync"," keeps running — an overdue invoice changes no capability, deliberately. What you get is a warning reading ",[14,728,729],{},"A payment hasn't gone through",", on the plan in the app and in the account panel, while the reminders go out. Clear the payment and it clears itself.",[10,732,733,734,736],{},"The usual causes are an expired card or a mandate cancelled at your bank, both fixed under ",[14,735,500],{},". A plan only ever ends by being cancelled, or by an invoice being written off as uncollectible after every reminder has gone unanswered — and even then the app keeps working exactly as it does now.",[119,738,740],{"id":739},"cancelling-a-plan","Cancelling a plan",[10,742,743,744,747,748,750,751,754,755,757,758,760],{},"Cancel with ",[14,745,746],{},"Cancel plan"," on the web panel's Billing page, or from the customer portal under ",[14,749,500],{},". The plan then reads ",[14,752,753],{},"Cancelled — ends 18 Sep 2026"," and runs to the end of the period you have already paid for: seats stay assigned and the people list is untouched. A cancellation cannot be taken back, so once the plan is cancelled the Billing page offers no second ",[14,756,746],{}," and no Resume — when the period runs out, ",[14,759,237],{}," starts a fresh plan.",[10,762,763,764,371,766,769,770,773,774,777,778,781,782,785],{},"On the day it lapses, the only things that change are the five a plan unlocks: your machines stop sending and receiving ",[27,765,322],{"href":29},[14,767,768],{},"Settings → Sync"," goes back to showing what the feature does and how to get it; the ",[27,771,772],{"href":38},"prompt library"," stops saving new templates to your account; the ",[27,775,776],{"href":48},"workspaces your organization shares"," stop updating; the ",[27,779,780],{"href":57},"settings your organization manages"," stop arriving, while every enforced value already on a machine keeps applying; and the ",[27,783,784],{"href":66},"prompts it publishes"," stop arriving, while every one already on a machine keeps listing and running. Every setting, workspace, project and session on every machine stays exactly as it is, nothing is deleted from your account, and starting a plan again picks up where it left off.",[10,787,788,789,170],{},"Deleting your Plexus account cancels any plan it holds. You have to delete or hand over the organizations you own first, which the panel tells you up front — see ",[27,790,792],{"href":791},"\u002Fdocs\u002Faccount#deleting-your-account","Deleting your account",[110,794,795],{},[10,796,797,798,801,802,804],{},"If the status ever reads ",[14,799,800],{},"We couldn't read this plan's status",", that is Plexus admitting the payment provider told it something this version has no name for, rather than guessing at the nearest word and being wrong about money. Nothing is affected; ",[14,803,500],{}," shows you the real state.",[10,806,807,808,810,811,814,815,818,819,371,823,825],{},"Next: ",[27,809,30],{"href":29}," for the one thing a plan unlocks, ",[27,812,813],{"href":416},"Roles and permissions"," for who in an organization may do any of this, ",[27,816,817],{"href":549},"Your Plexus account"," for organizations, devices and what leaves your device, or the ",[27,820,822],{"href":821},"\u002Flegal\u002Fprivacy","Privacy Policy",[27,824,242],{"href":241}," for the full picture.",{"title":827,"searchDepth":828,"depth":828,"links":829},"",2,[830,831,832,833,834,835,836,837],{"id":121,"depth":828,"text":122},{"id":192,"depth":828,"text":193},{"id":304,"depth":828,"text":305},{"id":449,"depth":828,"text":450},{"id":596,"depth":828,"text":597},{"id":688,"depth":828,"text":169},{"id":713,"depth":828,"text":714},{"id":739,"depth":828,"text":740},"What a paid Plexus plan unlocks, individual and per-seat organization plans, buying through Moneybird, invitations, invoices and VAT, and cancelling.","md","Integrations","CreditCard",{},true,42,"\u002Fdocs\u002Fbilling",{"title":5,"description":838},"docs\u002Fbilling","9SqT08WQiA5V8mztmwdXeOOp0gPnfvH0GntMqPeMJDM",[850,857,863,869,875,882,888,895,902,909,917,924,931,938,945,952,958,963,967,973,979,987,994,1000,1005,1012,1016,1017,1022,1027,1032,1037,1042,1048,1055,1062,1067,1073,1080],{"path":851,"title":852,"navTitle":852,"description":853,"icon":854,"group":855,"order":856},"\u002Fdocs","Introduction","Plexus runs Claude Code sessions in parallel, each in its own git worktree, in one native desktop app with diff review, a git client and hooks built in.","BookOpen","Overview",1,{"path":858,"title":859,"navTitle":860,"description":861,"icon":862,"group":855,"order":828},"\u002Fdocs\u002Finstall","Installation","Install","Download and install Plexus on macOS (Apple Silicon or Intel), Linux (.deb or AppImage) or Windows, check Claude Code and Git, and get automatic updates.","Download",{"path":864,"title":865,"navTitle":865,"description":866,"icon":867,"group":855,"order":868},"\u002Fdocs\u002Frequirements","Requirements","What Plexus needs on your machine: the Claude Code CLI and Git, plus optional GitHub or Bitbucket access, notify-send on Linux, and supported platforms.","Check",3,{"path":870,"title":871,"navTitle":871,"description":872,"icon":873,"group":855,"order":874},"\u002Fdocs\u002Fgetting-started","Getting started","Your first run of Plexus: add a git repository, create a session in its own worktree, start Claude Code and send your first prompt.","Rocket",4,{"path":876,"title":877,"navTitle":878,"description":879,"icon":880,"group":855,"order":881},"\u002Fdocs\u002Fconcepts","Core concepts","Concepts","Workspaces, projects and sessions in Plexus — each session usually its own git worktree running Claude Code — and the two status indicators on every row.","Boxes",5,{"path":883,"title":884,"navTitle":884,"description":885,"icon":886,"group":855,"order":887},"\u002Fdocs\u002Farchitecture","Architecture","How Plexus is built: a Tauri desktop app with a Vue UI and a Rust backend that wraps the Claude Code CLI, runs git natively and keeps your code local.","Package",6,{"path":889,"title":890,"navTitle":890,"description":891,"icon":892,"group":893,"order":894},"\u002Fdocs\u002Fdashboard","Dashboard","One live table of every Claude Code session across your Plexus workspaces, with activity state, PR status, summary counts, filters and sorting.","LayoutGrid","Working with projects",10,{"path":896,"title":897,"navTitle":898,"description":899,"icon":900,"group":893,"order":901},"\u002Fdocs\u002Fproject-git","Project Git client","Git GUI","A full git GUI for a project's main checkout: commit graph with branches, tags, stashes and worktrees, pull, push, line staging, compare, blame, history rewrites, undo and conflict resolution.","GitGraph",11,{"path":903,"title":904,"navTitle":905,"description":906,"icon":907,"group":893,"order":908},"\u002Fdocs\u002Fproject-terminal","Project Terminal","Terminal","Open plain shell terminals in a project's root folder from the project view. They keep running in the background, so a dev server or file watcher stays up.","MonitorDot",12,{"path":910,"title":911,"navTitle":912,"description":913,"icon":914,"group":915,"order":916},"\u002Fdocs\u002Fsessions","Sessions & worktrees","Sessions","Create a Plexus session — one Claude Code agent in its own git worktree, on a new or existing branch — and start, stop, resume, archive or remove it.","Bot","Working with sessions",20,{"path":918,"title":919,"navTitle":920,"description":921,"icon":922,"group":915,"order":923},"\u002Fdocs\u002Fstatus","Status & notifications","Status","What Plexus's status dots and PR colors mean — working, waiting, idle, background work — and the alerts you get when a Claude Code session needs you.","Activity",21,{"path":925,"title":926,"navTitle":927,"description":928,"icon":929,"group":915,"order":930},"\u002Fdocs\u002Fagent","The Agent tab","Agent","The Agent tab is the Claude Code terminal in every session: send prompts, paste images, compose multi-line input, rewind, and choose the permission mode.","Sparkles",22,{"path":932,"title":933,"navTitle":934,"description":935,"icon":936,"group":915,"order":937},"\u002Fdocs\u002Fexplorer","Explorer & editor","Explorer","Browse a session's git worktree and edit files in the built-in Monaco editor, with tabs, change markers against the base branch and a Markdown preview.","FileText",23,{"path":939,"title":940,"navTitle":941,"description":942,"icon":943,"group":915,"order":944},"\u002Fdocs\u002Freview","Review & diffs","Review","Review a Claude Code session's changes as a PR-style diff, leave inline comments the agent acts on, run an AI code review and answer PR threads.","GitPullRequestArrow",24,{"path":946,"title":947,"navTitle":948,"description":949,"icon":950,"group":915,"order":951},"\u002Fdocs\u002Fgit","Git workflow","Session Git","The session Git tab lets you stage, commit, stash and push, and rebase, merge or squash a Claude Code session's branch, with AI-drafted commit messages.","GitMerge",25,{"path":953,"title":954,"navTitle":954,"description":955,"icon":956,"group":915,"order":957},"\u002Fdocs\u002Fpull-requests","Pull requests","Open a GitHub or Bitbucket pull request from a session's branch, let AI draft the title and description, and track PR and CI status without leaving Plexus.","Github",26,{"path":89,"title":90,"navTitle":959,"description":960,"icon":961,"group":915,"order":962},"Stacks & merging","Stack Claude Code sessions on each other's branches, keep every branch synced as the stack moves, see the whole stack as a map, and merge a stack — or a list of pull requests — in order, including through GitHub's and Bitbucket's merge queues.","Layers",27,{"path":964,"title":905,"navTitle":905,"description":965,"icon":907,"group":915,"order":966},"\u002Fdocs\u002Fterminal","Open plain shell terminals in a session's git worktree with ⌘J: several tabs, copy and paste, drag-and-drop file paths, and your choice of shell.",28,{"path":968,"title":969,"navTitle":969,"description":970,"icon":971,"group":915,"order":972},"\u002Fdocs\u002Fsplit-view","Split view","Put up to six sessions of one project side by side in a split view: each pane is a full session with its own tabs, and every agent keeps running whether its pane is on screen or not.","Grid2x2",29,{"path":974,"title":975,"navTitle":975,"description":976,"icon":977,"group":915,"order":978},"\u002Fdocs\u002Fwindows","Multiple windows","Open a session, a project, a single terminal or the dashboard in a window of its own: put an agent on a second monitor and keep the main window for everything else.","AppWindow",30,{"path":980,"title":981,"navTitle":982,"description":983,"icon":984,"group":985,"order":986},"\u002Fdocs\u002Fhooks","Lifecycle hooks","Hooks","Run your own shell scripts when a session's git worktree is created, when the agent starts, and at teardown — set globally, per project or in the repo.","RefreshCw","Automation",31,{"path":988,"title":989,"navTitle":990,"description":991,"icon":992,"group":985,"order":993},"\u002Fdocs\u002Fworktrees","Worktrees & env files","Worktrees & env","Where Plexus puts each session's git worktree, how .env and other gitignored files are copied in, and the block of dev server ports every session gets.","FolderGit2",32,{"path":995,"title":996,"navTitle":996,"description":997,"icon":998,"group":985,"order":999},"\u002Fdocs\u002Fsecrets","Secrets","Plexus keeps secrets in your OS keychain — macOS Keychain, Windows Credential Manager or Linux Secret Service — write-only, and out of every hook it runs.","KeyRound",33,{"path":38,"title":39,"navTitle":1001,"description":1002,"icon":1003,"group":985,"order":1004},"Prompts","Save Claude Code prompts you keep rewriting as templates with fill-in fields — text, choices, files, branches — and run them in a new or a running session.","Copy",34,{"path":1006,"title":1007,"navTitle":1008,"description":1009,"icon":1010,"group":840,"order":1011},"\u002Fdocs\u002Fconnections","Connecting a git provider","Git providers","Connect GitHub or Bitbucket to Plexus with a one-click browser sign-in, no personal access token, to open pull requests, clone repos and push over https.","PlugZap",40,{"path":549,"title":817,"navTitle":550,"description":1013,"icon":1014,"group":840,"order":1015},"Create a free, optional Plexus account to set up organizations, manage signed-in devices and turn on cross-device sync. The app works the same without one.","UsersRound",41,{"path":845,"title":5,"navTitle":277,"description":838,"icon":841,"group":840,"order":844},{"path":29,"title":30,"navTitle":1018,"description":1019,"icon":1020,"group":840,"order":1021},"Sync","Sync your Plexus settings, workspaces and projects to every machine you sign in on, after a preview of exactly what would leave this one.","Cloud",43,{"path":416,"title":813,"navTitle":1023,"description":1024,"icon":1025,"group":840,"order":1026},"Roles","Control what each member of a Plexus organization may do: five built-in roles, custom roles you copy and edit, and how roles combine. Free, on the web.","ShieldCheck",44,{"path":48,"title":1028,"navTitle":1028,"description":1029,"icon":1030,"group":840,"order":1031},"Shared workspaces","Set up a workspace once in a Plexus organization so every member gets the same repositories in their sidebar: join modes, leaving, cloning, and seats.","Building2",45,{"path":57,"title":1033,"navTitle":1033,"description":1034,"icon":1035,"group":840,"order":1036},"Managed settings","Let a Plexus organization recommend, enforce or dry-run settings on members' machines: the three levels, locked rows, eligible settings and offline rules.","Lock",46,{"path":66,"title":1038,"navTitle":1039,"description":1040,"icon":1003,"group":840,"order":1041},"Prompts your organization publishes","Organization prompts","Publish Claude Code prompt templates to every member of a Plexus organization as numbered revisions: proposing, publishing, rolling back, limits and seats.",47,{"path":75,"title":1043,"navTitle":1044,"description":1045,"icon":1046,"group":840,"order":1047},"Issues from your tracker","Issues","Read, edit and create a project's GitHub issues inside Plexus with your own GitHub account, and start a Claude Code session that stays linked to an issue. Plnnrly has a page of its own.","CircleDot",48,{"path":1049,"title":1050,"navTitle":1051,"description":1052,"icon":1053,"group":840,"order":1054},"\u002Fdocs\u002Ftoolchain","The Toolchain","Toolchain","Attach GitHub issues, GitHub Projects boards and Plnnrly projects to a workspace or project as tabs in Plexus, and choose whether a workspace shares each with its projects.","Wrench",49,{"path":1056,"title":1057,"navTitle":1058,"description":1059,"icon":1060,"group":840,"order":1061},"\u002Fdocs\u002Fboards","Boards from GitHub Projects","Boards","Work a GitHub Projects board inside Plexus: attach it to a workspace or project, switch views, drag cards, open the issue behind a card, start a session.","SquareKanban",50,{"path":80,"title":1063,"navTitle":81,"description":1064,"icon":1065,"group":840,"order":1066},"Plnnrly work items, boards and sprints","Connect a Plnnrly organization and work a Plnnrly project inside Plexus: its backlog, board and sprints, every work item editable, and a session started from any of them.","ClipboardList",51,{"path":1068,"title":1069,"navTitle":1069,"description":1070,"icon":1069,"group":1071,"order":1072},"\u002Fdocs\u002Fsettings","Settings","Every Plexus setting and its default, and how settings layer from global to workspace, project and session — including organization-enforced values.","Reference",52,{"path":1074,"title":1075,"navTitle":1076,"description":1077,"icon":1078,"group":1071,"order":1079},"\u002Fdocs\u002Fshortcuts","Keyboard shortcuts","Shortcuts","Every Plexus keyboard shortcut — session tabs, terminal and dashboard, ⌘K search, stack layers, the Claude Code prompt, rebase and squash, project Git undo — and how to rebind each.","Keyboard",53,{"path":1081,"title":1082,"navTitle":1083,"description":1084,"icon":1085,"group":1071,"order":1086},"\u002Fdocs\u002Ffeedback","Sending feedback","Feedback","Send a bug report or idea to the Plexus team from inside the app, with an optional screenshot and diagnostic logs you can preview before anything is sent.","SquarePen",54,{"\u002Fdocs\u002Faccount":1088,"\u002Fdocs\u002Fagent":1089,"\u002Fdocs\u002Farchitecture":1089,"\u002Fdocs\u002Fbilling":1088,"\u002Fdocs\u002Fboards":1089,"\u002Fdocs\u002Fconcepts":1090,"\u002Fdocs\u002Fconnections":1091,"\u002Fdocs\u002Fdashboard":1088,"\u002Fdocs\u002Fexplorer":1092,"\u002Fdocs\u002Ffeedback":1090,"\u002Fdocs\u002Fgetting-started":1093,"\u002Fdocs\u002Fgit":1088,"\u002Fdocs\u002Fhooks":1094,"\u002Fdocs":1089,"\u002Fdocs\u002Finstall":1089,"\u002Fdocs\u002Fissues":1090,"\u002Fdocs\u002Fmanaged-settings":1092,"\u002Fdocs\u002Forg-prompts":1092,"\u002Fdocs\u002Fplnnrly":1090,"\u002Fdocs\u002Fproject-git":1091,"\u002Fdocs\u002Fproject-terminal":1095,"\u002Fdocs\u002Fprompts":1094,"\u002Fdocs\u002Fpull-requests":1088,"\u002Fdocs\u002Frequirements":1093,"\u002Fdocs\u002Freview":1092,"\u002Fdocs\u002Froles":1089,"\u002Fdocs\u002Fsecrets":1094,"\u002Fdocs\u002Fsessions":1088,"\u002Fdocs\u002Fsettings":1088,"\u002Fdocs\u002Fshared-workspaces":1092,"\u002Fdocs\u002Fshortcuts":1096,"\u002Fdocs\u002Fsplit-view":1088,"\u002Fdocs\u002Fstacks":1088,"\u002Fdocs\u002Fstatus":1088,"\u002Fdocs\u002Fsync":1088,"\u002Fdocs\u002Fterminal":1095,"\u002Fdocs\u002Ftoolchain":1090,"\u002Fdocs\u002Fwindows":1094,"\u002Fdocs\u002Fworktrees":1094},"2026-10-16","2026-10-06","2026-10-15","2026-10-22","2026-10-09","2026-10-11","2026-10-14","2026-10-13","2026-10-19",{"features":1098,"compare":1116},[1099,1102,1104,1107,1110,1113],{"label":1100,"to":1101},"Sessions & status","\u002Ffeatures\u002Fsessions-and-status",{"label":941,"to":1103},"\u002Ffeatures\u002Freview",{"label":1105,"to":1106},"Worktrees & hooks","\u002Ffeatures\u002Fworktrees-and-hooks",{"label":1108,"to":1109},"Git & issues","\u002Ffeatures\u002Fgit-and-issues",{"label":1111,"to":1112},"Stacks","\u002Ffeatures\u002Fstacks",{"label":1114,"to":1115},"Teams","\u002Ffeatures\u002Fteams",[1117,1120,1123,1126],{"label":1118,"to":1119},"vs Claude Code","\u002Fcompare\u002Fclaude-code",{"label":1121,"to":1122},"vs Claude Squad and Nimbalyst","\u002Fcompare\u002Fclaude-squad-and-nimbalyst",{"label":1124,"to":1125},"vs Conductor","\u002Fcompare\u002Fconductor",{"label":1127,"to":1128},"vs Cursor","\u002Fcompare\u002Fcursor",1792695509909]