[{"data":1,"prerenderedAt":1517},["ShallowReactive",2],{"docs.index":3,"docs.page.\u002Fdocs\u002Fdesktop\u002Fcli-reference":358},[4,20,26,33,43,52,59,65,71,76,82,89,95,100,104,111,115,119,123,132,137,141,147,152,157,163,170,177,183,189,193,199,205,211,217,222,226,230,236,242,247,252,256,260,265,271,277,283,287,294,299,305,310,314,318,322,328,333,338,343,347,353],{"path":5,"title":6,"navTitle":7,"seoTitle":8,"description":9,"type":10,"position":11,"updated":12,"release":13,"related":14,"plans":17},"\u002Fdocs\u002Faccount\u002Fbilling","Upgrade and manage billing","Billing",null,"Move a workspace onto Grove or Forest, understand how seats are charged, and what happens if a payment fails or you cancel.","how-to",2,"2026-09-29","public",[15,16],"\u002Fdocs\u002Faccount\u002Fplans-and-limits","\u002Fdocs\u002Fsharing\u002Finvite-people",[18,19],"grove","forest",{"path":21,"title":22,"navTitle":8,"seoTitle":8,"description":23,"type":24,"position":25,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Faccount","Account and billing","What each plan includes, how billing and seats work, managing your account, and how Treehouse keeps your files safe.","hub",7,{"path":15,"title":27,"navTitle":8,"seoTitle":8,"description":28,"type":29,"position":30,"updated":12,"release":13,"related":31,"plans":8},"Plans and limits","What Seedling, Grove and Forest include, how usage is counted, and what happens when a workspace reaches a limit.","reference",1,[5,16,32],"\u002Fdocs\u002Fsharing\u002Fshare-links",{"path":34,"title":35,"navTitle":8,"seoTitle":8,"description":36,"type":37,"position":38,"updated":12,"release":13,"related":39,"plans":8},"\u002Fdocs\u002Faccount\u002Fsecurity-and-privacy","Security and privacy","How Treehouse encrypts your files, who can see what in a workspace, and how keys, share links and HTML pages are kept in check.","concept",4,[40,32,41,42],"\u002Fdocs\u002Fagents\u002Fconnect\u002Fapi-keys","\u002Fdocs\u002Ffiles\u002Fprivate-files","\u002Fdocs\u002Ffiles\u002Fhtml-pages",{"path":44,"title":45,"navTitle":46,"seoTitle":8,"description":47,"type":10,"position":48,"updated":12,"release":13,"related":49,"plans":8},"\u002Fdocs\u002Faccount\u002Fyour-account","Manage your account","Your account","Create an account, sign in and out, reset a forgotten password, and move between the workspaces you belong to.",3,[50,51,34],"\u002Fdocs\u002Fget-started\u002Fquickstart","\u002Fdocs\u002Fsharing\u002Fcustomise-your-workspace",{"path":40,"title":53,"navTitle":54,"seoTitle":8,"description":55,"type":10,"position":38,"updated":12,"release":13,"related":56,"plans":8},"Manage API keys","API keys","Create a key for each agent, see which keys can reach your workspaces, and revoke the ones you no longer need.",[57,58,34],"\u002Fdocs\u002Fagents\u002Fconnect\u002Fclaude-code","\u002Fdocs\u002Fagents\u002Freference\u002Fauthentication",{"path":57,"title":60,"navTitle":8,"seoTitle":8,"description":61,"type":10,"position":11,"updated":12,"release":13,"related":62,"plans":8},"Connect Claude Code","Give Claude Code access to a workspace through your synced folder, the Treehouse MCP server, or both.",[63,40,64],"\u002Fdocs\u002Fagents\u002Fconnect\u002Fhow-agents-work","\u002Fdocs\u002Fplaybooks\u002Fwrite-your-agents-md",{"path":63,"title":66,"navTitle":67,"seoTitle":8,"description":68,"type":37,"position":30,"updated":12,"release":13,"related":69,"plans":8},"How agents work with Treehouse","How agents work","The two ways an agent can reach a workspace, what it can do there, and how its work shows up for everyone else.",[57,40,70],"\u002Fdocs\u002Fagents\u002Fhandbook",{"path":72,"title":73,"navTitle":74,"seoTitle":8,"description":75,"type":24,"position":30,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Fagents\u002Fconnect","Connect an agent","Connect","Give Claude Code, Codex, Cursor or any other agent access to a workspace, with its own key when you want its work labelled.",{"path":77,"title":78,"navTitle":8,"seoTitle":8,"description":79,"type":10,"position":48,"updated":12,"release":13,"related":80,"plans":8},"\u002Fdocs\u002Fagents\u002Fconnect\u002Fother-agents","Connect other agents","Connection settings for Cursor, VS Code, Codex, Gemini CLI, Claude Desktop and any other MCP client.",[57,40,81],"\u002Fdocs\u002Fagents\u002Freference\u002Fmcp-server",{"path":70,"title":83,"navTitle":83,"seoTitle":84,"description":85,"type":24,"position":11,"updated":12,"release":13,"related":86,"plans":8},"Agent handbook","Agent handbook: how agents work in Treehouse","Written for agents. How to reach a Treehouse workspace, the rules that keep everyone's work safe, and the conventions the web app understands.",[81,87,88],"\u002Fdocs\u002Fagents\u002Fhandbook\u002Fversions-and-conflicts","\u002Fdocs\u002Fplaybooks\u002Freview-loop",{"path":87,"title":90,"navTitle":8,"seoTitle":8,"description":91,"type":37,"position":30,"updated":12,"release":13,"related":92,"plans":8},"Versions and conflicts","The concurrency contract every Treehouse client shares - version numbers, compare-and-swap writes, conflicted copies, deletes, moves and restores.",[93,94,81],"\u002Fdocs\u002Ffiles\u002Fconflicted-copies","\u002Fdocs\u002Fagents\u002Freference\u002Frest-api",{"path":96,"title":97,"navTitle":8,"seoTitle":98,"description":99,"type":24,"position":30,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Fagents","Agents","Treehouse for agents","Everything an agent needs to work in a Treehouse workspace, and everything you need to connect one.",{"path":58,"title":101,"navTitle":8,"seoTitle":8,"description":102,"type":29,"position":30,"updated":12,"release":13,"related":103,"plans":8},"Authentication","How API keys work, what each kind of key can reach, the device authorisation flow the CLI and desktop app use, and how keys are revoked.",[40,81,94],{"path":105,"title":106,"navTitle":8,"seoTitle":8,"description":107,"type":29,"position":38,"updated":12,"release":13,"related":108,"plans":8},"\u002Fdocs\u002Fagents\u002Freference\u002Fchange-feed","Change feed","Read every change to a workspace in order with a cursor, so a script or agent can react to new and edited files.",[109,110,87],"\u002Fdocs\u002Fsharing\u002Factivity","\u002Fdocs\u002Fplaybooks\u002Froutines",{"path":112,"title":113,"navTitle":8,"seoTitle":8,"description":114,"type":24,"position":48,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Fagents\u002Freference","API reference","The protocol reference - authentication, every MCP tool, the REST API and the change feed.",{"path":81,"title":116,"navTitle":8,"seoTitle":8,"description":117,"type":29,"position":11,"updated":12,"release":13,"related":118,"plans":8},"MCP server","Every tool the Treehouse MCP server exposes, with parameters, outputs, limits and the instructions it gives connected agents.",[57,77,87],{"path":94,"title":120,"navTitle":8,"seoTitle":8,"description":121,"type":29,"position":48,"updated":12,"release":13,"related":122,"plans":8},"REST API","Endpoints for reading, writing, moving, searching, sharing and commenting on workspace files over HTTP, with headers, status codes and examples.",[58,87,105],{"path":124,"title":125,"navTitle":126,"seoTitle":8,"description":127,"type":29,"position":128,"updated":12,"release":13,"related":129,"plans":8},"\u002Fdocs\u002Fdesktop\u002Fcli-reference","Sync CLI reference","Sync CLI","Every treehouse command and flag, the files and environment variables the CLI reads, and the safety rules it follows while syncing.",5,[130,131,105],"\u002Fdocs\u002Fdesktop\u002Fsync-with-the-cli","\u002Fdocs\u002Fdesktop\u002Fhow-sync-works",{"path":131,"title":133,"navTitle":8,"seoTitle":8,"description":134,"type":37,"position":11,"updated":12,"release":13,"related":135,"plans":8},"How sync works","What the sync engine does in the background, which files it skips, and how it protects your work when things go wrong.",[93,41,109,136],"\u002Fdocs\u002Fget-started\u002Fhow-treehouse-works",{"path":138,"title":139,"navTitle":8,"seoTitle":8,"description":140,"type":24,"position":128,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Fdesktop","Desktop app and sync","Keep a folder on your computer in step with a workspace, using the Mac app or the sync CLI.",{"path":142,"title":143,"navTitle":8,"seoTitle":8,"description":144,"type":10,"position":30,"updated":12,"release":13,"related":145,"plans":8},"\u002Fdocs\u002Fdesktop\u002Finstall-the-desktop-app","Install the desktop app","Download Treehouse for Mac, sign in and pick a folder, and your workspace's files appear on your computer and stay in sync.",[131,146,130],"\u002Fdocs\u002Fdesktop\u002Fmanage-synced-folders",{"path":146,"title":148,"navTitle":8,"seoTitle":8,"description":149,"type":10,"position":48,"updated":12,"release":13,"related":150,"plans":8},"Manage synced folders","Check sync status, pause, move or stop syncing a folder, add another workspace, and sign out, all from the Treehouse icon in your menu bar.",[131,130,151],"\u002Fdocs\u002Fhelp\u002Ftroubleshooting",{"path":130,"title":153,"navTitle":154,"seoTitle":8,"description":155,"type":10,"position":38,"updated":12,"release":13,"related":156,"plans":8},"Sync a folder with the CLI","Sync with the CLI","Install the treehouse command-line tool to sync a folder on Windows, Linux, a server or any machine where the desktop app doesn't run.",[124,131,146],{"path":93,"title":158,"navTitle":8,"seoTitle":8,"description":159,"type":37,"position":160,"updated":12,"release":13,"related":161,"plans":8},"Conflicted copies","When two edits to the same file collide, Treehouse keeps both. Here's what a conflicted copy is, how to spot one and how to resolve it.",9,[162,131,87],"\u002Fdocs\u002Ffiles\u002Fversion-history",{"path":164,"title":165,"navTitle":166,"seoTitle":8,"description":167,"type":10,"position":11,"updated":12,"release":13,"related":168,"plans":8},"\u002Fdocs\u002Ffiles\u002Fcreate-and-edit","Create and edit files","Create and edit","Make new files and folders in the web app, edit markdown, code and HTML, and save your changes.",[169,93,162],"\u002Fdocs\u002Ffiles\u002Ffront-matter",{"path":171,"title":172,"navTitle":173,"seoTitle":8,"description":174,"type":10,"position":128,"updated":12,"release":13,"related":175,"plans":8},"\u002Fdocs\u002Ffiles\u002Ffolder-pages","Turn a folder into a page or calendar","Folder pages and calendars","Give a folder a front page with a README, or show a folder of dated notes as a calendar you can reschedule by dragging.",[169,42,176],"\u002Fdocs\u002Fplaybooks\u002Fshape-your-workspace",{"path":169,"title":178,"navTitle":179,"seoTitle":8,"description":180,"type":29,"position":181,"updated":12,"release":13,"related":182,"plans":8},"Front matter reference","Front matter","The YAML block at the top of a markdown file, and the keys Treehouse reads from it to label, title and schedule your files.",6,[171,164,110],{"path":42,"title":184,"navTitle":185,"seoTitle":8,"description":186,"type":10,"position":25,"updated":12,"release":13,"related":187,"plans":8},"Publish an HTML page","HTML pages","Show HTML files as full pages, decide when their scripts may run, and share them publicly as reports, dashboards or decks.",[32,171,188],"\u002Fdocs\u002Ffiles\u002Fview-files",{"path":190,"title":191,"navTitle":8,"seoTitle":8,"description":192,"type":24,"position":48,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Ffiles","Files and folders","Find, read, write, upload and organise the files in a workspace, and get back anything that changed.",{"path":194,"title":195,"navTitle":196,"seoTitle":8,"description":197,"type":10,"position":38,"updated":12,"release":13,"related":198,"plans":8},"\u002Fdocs\u002Ffiles\u002Forganise-files","Rename, move and organise files","Organise files","Rename, move, reorder and delete files and folders, and give them icons, from the sidebar tree.",[162,41,176],{"path":41,"title":200,"navTitle":201,"seoTitle":8,"description":202,"type":10,"position":203,"updated":12,"release":13,"related":204,"plans":8},"Keep files private","Private files","Make a file or folder visible only to you and your own agents, even in a workspace you share with others.",10,[194,32,63],{"path":206,"title":207,"navTitle":208,"seoTitle":8,"description":209,"type":10,"position":48,"updated":12,"release":13,"related":210,"plans":8},"\u002Fdocs\u002Ffiles\u002Fupload-and-download","Upload and download files","Upload and download","Add files from your computer to a workspace, decide what happens when names clash, and download a copy of any file.",[164,131,15],{"path":162,"title":212,"navTitle":213,"seoTitle":8,"description":214,"type":10,"position":215,"updated":12,"release":13,"related":216,"plans":8},"See and restore earlier versions","Version history","Look through every change to a file, see who made it, view or restore an older version, and catch up on what changed while you were away.",8,[93,109,87],{"path":188,"title":218,"navTitle":219,"seoTitle":8,"description":220,"type":10,"position":30,"updated":12,"release":13,"related":221,"plans":8},"Find and view files","Find and view","Browse the file tree, search by name, and see how Treehouse shows markdown, HTML, code, images and everything else.",[164,171,162],{"path":136,"title":223,"navTitle":8,"seoTitle":8,"description":224,"type":37,"position":48,"updated":12,"release":13,"related":225,"plans":8},"How Treehouse works","Workspaces, versions, conflicted copies and attribution - the handful of ideas the rest of Treehouse is built on.",[162,93,63,87],{"path":227,"title":228,"navTitle":8,"seoTitle":8,"description":229,"type":24,"position":11,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Fget-started","Get started","What Treehouse is, how to set up your first workspace, and how it works underneath.",{"path":50,"title":231,"navTitle":8,"seoTitle":8,"description":232,"type":233,"position":11,"updated":12,"release":13,"related":234,"plans":8},"Quickstart","Create a workspace, sync it to your computer, connect an agent and let it set things up. About ten minutes.","guide",[235,57,64],"\u002Fdocs\u002Fget-started\u002Fset-up-with-an-agent",{"path":235,"title":237,"navTitle":238,"seoTitle":8,"description":239,"type":10,"position":38,"updated":12,"release":13,"related":240,"plans":8},"Set up a workspace with an agent","Set up with an agent","Hand a new, empty workspace to an agent. It interviews you, proposes a structure and builds it once you agree.",[176,64,241],"\u002Fdocs\u002Fplaybooks\u002Finbox-and-filing",{"path":243,"title":244,"navTitle":244,"seoTitle":8,"description":245,"type":37,"position":30,"updated":12,"release":13,"related":246,"plans":8},"\u002Fdocs\u002Fget-started\u002Fwhat-is-treehouse","What is Treehouse?","A shared workspace of plain files that people and agents both work in, with the sharing, history and review that plain folders lack.",[50,136,63],{"path":248,"title":249,"navTitle":250,"seoTitle":8,"description":251,"type":29,"position":11,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Fhelp\u002Ffaq","Frequently asked questions","FAQ","Short answers to the questions people ask most about Treehouse, agents, sharing and data.",{"path":253,"title":254,"navTitle":8,"seoTitle":8,"description":255,"type":29,"position":48,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Fhelp\u002Fglossary","Glossary","The words Treehouse uses, and what each one means in the app and in these docs.",{"path":257,"title":258,"navTitle":8,"seoTitle":8,"description":259,"type":24,"position":215,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Fhelp","Help","Fixes for common problems, answers to common questions, and the words Treehouse uses.",{"path":151,"title":261,"navTitle":8,"seoTitle":262,"description":263,"type":10,"position":30,"updated":12,"release":13,"related":264,"plans":8},"Troubleshooting","Troubleshooting Treehouse sync, agents and sharing","The problems people hit most often with sync, agent connections, sharing and limits, and how to fix each one.",[146,57,93],{"path":266,"title":267,"navTitle":8,"seoTitle":268,"description":269,"type":24,"position":270,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs","Treehouse docs","Treehouse documentation","How to set up a shared workspace for your team and your agents, and how to get the most out of it once you have.",0,{"path":272,"title":273,"navTitle":274,"seoTitle":8,"description":275,"type":233,"position":215,"updated":12,"release":13,"related":276,"plans":8},"\u002Fdocs\u002Fplaybooks\u002Fclient-work","Run client work","Client work","A folder per client, agents that prepare the deliverables, and share links that give clients exactly what they should see.",[32,42,88],{"path":241,"title":278,"navTitle":279,"seoTitle":8,"description":280,"type":233,"position":48,"updated":12,"release":13,"related":281,"plans":8},"Run an inbox your agent files","Inbox and filing","Drop anything into Inbox\u002F without deciding where it goes, and have an agent file it by rules you write once.",[110,282,176],"\u002Fdocs\u002Fplaybooks\u002Fsecond-brain",{"path":284,"title":285,"navTitle":8,"seoTitle":8,"description":286,"type":24,"position":181,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Fplaybooks","Playbooks","Opinionated patterns for running a workspace with your agents, from the rulebook they follow to the routines that keep it alive.",{"path":288,"title":289,"navTitle":290,"seoTitle":8,"description":291,"type":233,"position":128,"updated":12,"release":13,"related":292,"plans":8},"\u002Fdocs\u002Fplaybooks\u002Fmemory-and-decisions","Give your agents a memory","Memory and decisions","Status pages, decision records and handoff notes that let any agent pick up where the last session left off.",[64,293,171],"\u002Fdocs\u002Fplaybooks\u002Fmultiple-agents",{"path":293,"title":295,"navTitle":296,"seoTitle":8,"description":297,"type":233,"position":25,"updated":12,"release":13,"related":298,"plans":8},"Work with several agents","Several agents","Give each agent its own key and its own lane, hand work over through files, and let versioning catch the collisions.",[40,288,93],{"path":88,"title":300,"navTitle":301,"seoTitle":8,"description":302,"type":233,"position":38,"updated":12,"release":13,"related":303,"plans":8},"Review your agent's work","Review loop","Let an agent draft, review it with comments in the web app, and have the agent work through your feedback thread by thread.",[304,162,57],"\u002Fdocs\u002Fsharing\u002Fcomments",{"path":110,"title":306,"navTitle":307,"seoTitle":8,"description":308,"type":233,"position":181,"updated":12,"release":13,"related":309,"plans":8},"Set up routines","Routines","Recurring agent work, like a morning inbox run or a weekly review, and where the schedule lives when Treehouse doesn't run agents itself.",[241,130,105],{"path":282,"title":311,"navTitle":8,"seoTitle":8,"description":312,"type":233,"position":160,"updated":12,"release":13,"related":313,"plans":8},"Build a second brain","A personal workspace where you capture everything quickly and an agent keeps it filed, linked and useful.",[241,110,171],{"path":176,"title":315,"navTitle":8,"seoTitle":8,"description":316,"type":233,"position":11,"updated":12,"release":13,"related":317,"plans":8},"Shape your workspace","Folder structures that work for people and agents alike, and the handful of habits that keep a workspace easy to navigate as it grows.",[64,171,194],{"path":64,"title":319,"navTitle":8,"seoTitle":8,"description":320,"type":233,"position":30,"updated":12,"release":13,"related":321,"plans":8},"Write your AGENTS.md","The one file every agent reads first. What to put in it so any agent, in any session, works the way your team does.",[176,63,235],{"path":323,"title":324,"navTitle":325,"seoTitle":8,"description":326,"type":24,"position":160,"updated":12,"release":13,"related":327,"plans":8},"\u002Fdocs\u002Fself-hosting","Self-host Treehouse","Self-hosting","Run your own Treehouse server - the architecture, required and optional environment variables, storage and encryption, and connecting clients.",[58,81,124],{"path":109,"title":329,"navTitle":330,"seoTitle":8,"description":331,"type":10,"position":38,"updated":12,"release":13,"related":332,"plans":8},"See what changed in a workspace","Activity","The activity feed shows every change and comment in a workspace, who made it, and whether it came from a person or an agent.",[63,40,162,93],{"path":304,"title":334,"navTitle":335,"seoTitle":8,"description":336,"type":10,"position":48,"updated":12,"release":13,"related":337,"plans":8},"Comment on a document","Comments","Leave comments on passages of a markdown file, reply and resolve threads, and let agents read and act on your feedback.",[88,162,109],{"path":51,"title":339,"navTitle":340,"seoTitle":8,"description":341,"type":10,"position":128,"updated":12,"release":13,"related":342,"plans":8},"Customise your workspace","Customise a workspace","Rename a workspace, give it an icon and colour, create new workspaces, and choose a theme for everyone or just for you.",[15,32],{"path":344,"title":345,"navTitle":8,"seoTitle":8,"description":346,"type":24,"position":38,"updated":12,"release":13,"related":8,"plans":8},"\u002Fdocs\u002Fsharing","Share and collaborate","Invite people into a workspace, share files with anyone by link, comment on documents and see who changed what.",{"path":16,"title":348,"navTitle":349,"seoTitle":8,"description":350,"type":10,"position":30,"updated":12,"release":13,"related":351,"plans":352},"Invite people to a workspace","Invite people","Bring teammates into a workspace with an invite link, see who's a member, and remove people when they no longer need access.",[32,5,40],[18,19],{"path":32,"title":354,"navTitle":355,"seoTitle":8,"description":356,"type":10,"position":11,"updated":12,"release":13,"related":357,"plans":8},"Share a file or folder with a link","Share links","Send members straight to a file, or give anyone read-only access to a file or folder, with an optional password and a pinned version.",[16,42,162,15],{"id":359,"title":125,"body":360,"description":127,"extension":1510,"meta":1511,"navTitle":126,"navigation":1512,"path":124,"plans":8,"position":128,"related":1513,"release":13,"seo":1514,"seoTitle":8,"stem":1515,"type":29,"updated":12,"__hash__":1516},"docs\u002Fdocs\u002Fdesktop\u002Fcli-reference.md",{"type":361,"value":362,"toc":1493},"minimark",[363,377,382,413,464,475,479,682,688,693,857,861,875,878,890,894,898,960,966,970,1025,1039,1049,1053,1168,1184,1188,1191,1329,1336,1340,1347,1417,1421,1440,1444,1447,1467,1489],[364,365,366,367,371,372,376],"p",{},"The ",[368,369,370],"code",{},"treehouse"," CLI keeps a local folder and a workspace in step, in both directions. For a walkthrough, see ",[373,374,375],"a",{"href":130},"sync with the CLI","; this page is the reference.",[378,379,381],"h2",{"id":380},"install","Install",[383,384,389],"pre",{"className":385,"code":386,"language":387,"meta":388,"style":388},"language-bash shiki shiki-themes everforest-dark","curl -fsSL https:\u002F\u002Fdl.trytree.house\u002Finstall.sh | sh\n","bash","",[368,390,391],{"__ignoreMap":388},[392,393,395,399,403,406,410],"span",{"class":394,"line":30},"line",[392,396,398],{"class":397},"sRC7j","curl",[392,400,402],{"class":401},"sySyC"," -fsSL",[392,404,405],{"class":401}," https:\u002F\u002Fdl.trytree.house\u002Finstall.sh",[392,407,409],{"class":408},"sDOmQ"," |",[392,411,412],{"class":397}," sh\n",[414,415,416,429],"table",{},[417,418,419],"thead",{},[420,421,422,426],"tr",{},[423,424,425],"th",{},"Platform",[423,427,428],{},"Prebuilt binary",[430,431,432,441,448,456],"tbody",{},[420,433,434,438],{},[435,436,437],"td",{},"macOS, Apple Silicon",[435,439,440],{},"Yes",[420,442,443,446],{},[435,444,445],{},"Linux, arm64",[435,447,440],{},[420,449,450,453],{},[435,451,452],{},"macOS, Intel",[435,454,455],{},"Not yet",[420,457,458,461],{},[435,459,460],{},"Linux, x64",[435,462,463],{},"Paused for now",[364,465,466,467,470,471,474],{},"The script downloads the binary for your platform, checks it against the published SHA-256 checksums, and installs it to ",[368,468,469],{},"~\u002F.local\u002Fbin\u002Ftreehouse",". Set ",[368,472,473],{},"TREEHOUSE_BIN_DIR"," to install somewhere else. On an unsupported platform it stops with a message and installs nothing.",[378,476,478],{"id":477},"commands","Commands",[414,480,481,491],{},[417,482,483],{},[420,484,485,488],{},[423,486,487],{},"Command",[423,489,490],{},"What it does",[430,492,493,507,520,530,540,550,560,570,596,606,616,626,636,650,668],{},[420,494,495,500],{},[435,496,497],{},[368,498,499],{},"treehouse login [folder]",[435,501,502,503,506],{},"Connect a folder to a workspace through the browser, then start syncing it. ",[368,504,505],{},"link"," is an alias.",[420,508,509,514],{},[435,510,511],{},[368,512,513],{},"treehouse sync [folder]",[435,515,516,517,519],{},"Reconcile the folder with its workspace once and exit. Running ",[368,518,370],{}," with no command does the same for the current folder.",[420,521,522,527],{},[435,523,524],{},[368,525,526],{},"treehouse sync [folder] --watch",[435,528,529],{},"Keep syncing in the foreground until stopped: watches the folder and polls the change feed.",[420,531,532,537],{},[435,533,534],{},[368,535,536],{},"treehouse start",[435,538,539],{},"Start the background daemon, which syncs every linked folder, and turn on autostart at login.",[420,541,542,547],{},[435,543,544],{},[368,545,546],{},"treehouse stop",[435,548,549],{},"Stop the daemon and turn off autostart.",[420,551,552,557],{},[435,553,554],{},[368,555,556],{},"treehouse restart",[435,558,559],{},"Stop and start the daemon, for example after an update.",[420,561,562,567],{},[435,563,564],{},[368,565,566],{},"treehouse status",[435,568,569],{},"Show each linked folder's state and whether an update is available.",[420,571,572,577],{},[435,573,574],{},[368,575,576],{},"treehouse logs [name]",[435,578,579,580,583,584,587,588,591,592,595],{},"Print the end of a log. ",[368,581,582],{},"name"," is ",[368,585,586],{},"daemon"," (the sync daemon, the default), ",[368,589,590],{},"app"," or ",[368,593,594],{},"updater"," (the desktop app's own logs).",[420,597,598,603],{},[435,599,600],{},[368,601,602],{},"treehouse pause [folder]",[435,604,605],{},"Pause syncing a folder, keeping it linked.",[420,607,608,613],{},[435,609,610],{},[368,611,612],{},"treehouse resume [folder]",[435,614,615],{},"Resume a paused folder.",[420,617,618,623],{},[435,619,620],{},[368,621,622],{},"treehouse unlink [folder]",[435,624,625],{},"Stop syncing a folder and remove it from the daemon's list.",[420,627,628,633],{},[435,629,630],{},[368,631,632],{},"treehouse relocate \u003Cfolder> \u003Cnew-path>",[435,634,635],{},"Move a synced folder to a new location, keeping its connection and sync state.",[420,637,638,643],{},[435,639,640],{},[368,641,642],{},"treehouse update [--check]",[435,644,645,646,649],{},"Download, verify and install the latest version, then restart the daemon. ",[368,647,648],{},"--check"," only reports.",[420,651,652,657],{},[435,653,654],{},[368,655,656],{},"treehouse version",[435,658,659,660,663,664,667],{},"Print the installed version. ",[368,661,662],{},"--version"," and ",[368,665,666],{},"-v"," work too.",[420,669,670,675],{},[435,671,672],{},[368,673,674],{},"treehouse help",[435,676,677,678,681],{},"List commands. ",[368,679,680],{},"treehouse \u003Ccommand> --help"," describes one.",[364,683,684,687],{},[368,685,686],{},"[folder]"," defaults to the current directory.",[689,690,692],"h3",{"id":691},"flags","Flags",[414,694,695,707],{},[417,696,697],{},[420,698,699,701,704],{},[423,700,487],{},[423,702,703],{},"Flag",[423,705,706],{},"Effect",[430,708,709,732,750,764,778,793,812,829,843],{},[420,710,711,716,721],{},[435,712,713],{},[368,714,715],{},"login",[435,717,718],{},[368,719,720],{},"--api-base \u003Curl>",[435,722,723,724,727,728,731],{},"API to connect to. Default ",[368,725,726],{},"https:\u002F\u002Fapi.trytree.house",", or ",[368,729,730],{},"TREEHOUSE_API_BASE",".",[420,733,734,738,743],{},[435,735,736],{},[368,737,715],{},[435,739,740],{},[368,741,742],{},"--force",[435,744,745,746,749],{},"Replace an existing ",[368,747,748],{},".treehouse\u002Fconfig.json"," in the folder",[420,751,752,756,761],{},[435,753,754],{},[368,755,715],{},[435,757,758],{},[368,759,760],{},"--no-open",[435,762,763],{},"Print the approval link instead of opening a browser",[420,765,766,770,775],{},[435,767,768],{},[368,769,715],{},[435,771,772],{},[368,773,774],{},"--no-start",[435,776,777],{},"Connect without starting to sync",[420,779,780,785,790],{},[435,781,782],{},[368,783,784],{},"sync",[435,786,787],{},[368,788,789],{},"--watch",[435,791,792],{},"Keep syncing instead of exiting after one pass",[420,794,795,800,809],{},[435,796,797],{},[368,798,799],{},"logs",[435,801,802,805,806],{},[368,803,804],{},"-f",", ",[368,807,808],{},"--follow",[435,810,811],{},"Keep printing new lines",[420,813,814,818,826],{},[435,815,816],{},[368,817,799],{},[435,819,820,805,823],{},[368,821,822],{},"-n",[368,824,825],{},"--lines \u003Cn>",[435,827,828],{},"Lines to print. Default 100.",[420,830,831,835,840],{},[435,832,833],{},[368,834,799],{},[435,836,837],{},[368,838,839],{},"--path",[435,841,842],{},"Print the log folder instead, for attaching to a bug report",[420,844,845,850,854],{},[435,846,847],{},[368,848,849],{},"update",[435,851,852],{},[368,853,648],{},[435,855,856],{},"Report whether an update is available without installing it",[689,858,860],{"id":859},"how-login-works","How login works",[364,862,863,866,867,871,872,874],{},[368,864,865],{},"treehouse login"," uses the ",[373,868,870],{"href":869},"\u002Fdocs\u002Fagents\u002Freference\u002Fauthentication#device-authorisation-flow","device authorisation flow",". It prints a link and a code, opens your browser, and waits while you sign in, pick a workspace and approve. It then saves a workspace-scoped key in the folder and starts syncing. The code is valid for 10 minutes. With ",[368,873,760],{}," you can approve from any device, which is how you connect a headless server.",[689,876,877],{"id":877},"unlink",[364,879,880,882,883,885,886,889],{},[368,881,877],{}," stops syncing but leaves your files and ",[368,884,748],{}," where they are, and doesn't revoke the key. Revoke it from ",[887,888,54],"strong",{}," in the web app if you're done with it.",[378,891,893],{"id":892},"files-the-cli-keeps","Files the CLI keeps",[689,895,897],{"id":896},"in-each-synced-folder","In each synced folder",[414,899,900,910],{},[417,901,902],{},[420,903,904,907],{},[423,905,906],{},"File",[423,908,909],{},"Contents",[430,911,912,927,937,950],{},[420,913,914,918],{},[435,915,916],{},[368,917,748],{},[435,919,920,923,924],{},[368,921,922],{},"{ apiBase, apiKey, workspaceId, keyId }",", written with mode ",[368,925,926],{},"0600",[420,928,929,934],{},[435,930,931],{},[368,932,933],{},".treehouse\u002Findex.json",[435,935,936],{},"What was last synced, used to tell local edits from remote ones",[420,938,939,944],{},[435,940,941],{},[368,942,943],{},".treehouse\u002Fcursor.json",[435,945,946,947],{},"The folder's position in the ",[373,948,949],{"href":105},"change feed",[420,951,952,957],{},[435,953,954],{},[368,955,956],{},".treehouse\u002Fstate.json",[435,958,959],{},"The folder's last reported sync state",[364,961,366,962,965],{},[368,963,964],{},".treehouse"," folder is never synced.",[689,967,969],{"id":968},"per-user","Per user",[414,971,972,985],{},[417,973,974],{},[420,975,976,979,982],{},[423,977,978],{},"Location",[423,980,981],{},"macOS",[423,983,984],{},"Linux",[430,986,987,1007],{},[420,988,989,992,997],{},[435,990,991],{},"App directory",[435,993,994],{},[368,995,996],{},"~\u002FLibrary\u002FApplication Support\u002FTreehouse",[435,998,999,1002,1003,1006],{},[368,1000,1001],{},"$XDG_CONFIG_HOME\u002Ftreehouse"," (default ",[368,1004,1005],{},"~\u002F.config\u002Ftreehouse",")",[420,1008,1009,1012,1017],{},[435,1010,1011],{},"Logs",[435,1013,1014],{},[368,1015,1016],{},"~\u002FLibrary\u002FLogs\u002FTreehouse",[435,1018,1019,1002,1022,1006],{},[368,1020,1021],{},"$XDG_STATE_HOME\u002Ftreehouse",[368,1023,1024],{},"~\u002F.local\u002Fstate\u002Ftreehouse",[364,1026,1027,1028,1031,1032,1035,1036,731],{},"The app directory holds ",[368,1029,1030],{},"links.json"," (the list of synced folders), the daemon's process id and control socket, and the daemon binary the autostart service runs. ",[368,1033,1034],{},"TREEHOUSE_HOME"," replaces both locations, with logs in ",[368,1037,1038],{},"$TREEHOUSE_HOME\u002Flogs",[364,1040,1041,1042,1045,1046,1048],{},"Autostart uses a launchd agent on macOS and a ",[368,1043,1044],{},"systemd --user"," unit on Linux (or an XDG autostart entry where ",[368,1047,1044],{}," isn't available).",[378,1050,1052],{"id":1051},"environment-variables","Environment variables",[414,1054,1055,1064],{},[417,1056,1057],{},[420,1058,1059,1062],{},[423,1060,1061],{},"Variable",[423,1063,706],{},[430,1065,1066,1081,1095,1108,1117,1127,1143,1155],{},[420,1067,1068,1072],{},[435,1069,1070],{},[368,1071,730],{},[435,1073,1074,1075,1078,1079,731],{},"API URL. Overrides ",[368,1076,1077],{},"apiBase"," in the folder's config, and is the default for ",[368,1080,715],{},[420,1082,1083,1088],{},[435,1084,1085],{},[368,1086,1087],{},"TREEHOUSE_API_KEY",[435,1089,1090,1091,1094],{},"API key. Overrides ",[368,1092,1093],{},"apiKey"," in the folder's config.",[420,1096,1097,1102],{},[435,1098,1099],{},[368,1100,1101],{},"TREEHOUSE_WORKSPACE_ID",[435,1103,1104,1105,1094],{},"Workspace id. Overrides ",[368,1106,1107],{},"workspaceId",[420,1109,1110,1114],{},[435,1111,1112],{},[368,1113,1034],{},[435,1115,1116],{},"Use this directory for all per-user state and logs",[420,1118,1119,1124],{},[435,1120,1121],{},[368,1122,1123],{},"TREEHOUSE_MAX_FILE_BYTES",[435,1125,1126],{},"Skip local files larger than this many bytes, with a warning. Default 104857600 (100 MB).",[420,1128,1129,1134],{},[435,1130,1131],{},[368,1132,1133],{},"TREEHOUSE_DL_BASE",[435,1135,1136,1137,1139,1140,731],{},"Download host for ",[368,1138,849],{}," and the install script. Default ",[368,1141,1142],{},"https:\u002F\u002Fdl.trytree.house",[420,1144,1145,1149],{},[435,1146,1147],{},[368,1148,473],{},[435,1150,1151,1152,731],{},"Where the install script puts the binary. Default ",[368,1153,1154],{},"~\u002F.local\u002Fbin",[420,1156,1157,1165],{},[435,1158,1159,805,1162],{},[368,1160,1161],{},"XDG_CONFIG_HOME",[368,1163,1164],{},"XDG_STATE_HOME",[435,1166,1167],{},"Linux app and log directory bases",[364,1169,1170,1171,805,1173,663,1175,1177,1178,1181,1182,731],{},"With ",[368,1172,730],{},[368,1174,1087],{},[368,1176,1101],{}," all set, ",[368,1179,1180],{},"treehouse sync"," works in a folder that has no config file, without ",[368,1183,715],{},[378,1185,1187],{"id":1186},"what-isnt-synced","What isn't synced",[364,1189,1190],{},"The CLI has a fixed ignore list. There is no ignore file.",[414,1192,1193,1203],{},[417,1194,1195],{},[420,1196,1197,1200],{},[423,1198,1199],{},"Pattern",[423,1201,1202],{},"Why",[430,1204,1205,1215,1237,1247,1263,1279,1295],{},[420,1206,1207,1212],{},[435,1208,1209],{},[368,1210,1211],{},".treehouse\u002F",[435,1213,1214],{},"The CLI's own state",[420,1216,1217,1234],{},[435,1218,1219,805,1222,805,1225,805,1228,805,1231],{},[368,1220,1221],{},"*.swp",[368,1223,1224],{},"*~",[368,1226,1227],{},".#*",[368,1229,1230],{},"*.tmp",[368,1232,1233],{},"4913",[435,1235,1236],{},"Editor swap, backup and temporary files",[420,1238,1239,1244],{},[435,1240,1241],{},[368,1242,1243],{},".DS_Store",[435,1245,1246],{},"macOS folder metadata",[420,1248,1249,1260],{},[435,1250,1251,805,1254,805,1257],{},[368,1252,1253],{},"node_modules\u002F",[368,1255,1256],{},"vendor\u002F",[368,1258,1259],{},"Pods\u002F",[435,1261,1262],{},"Dependencies",[420,1264,1265,1276],{},[435,1266,1267,805,1270,805,1273],{},[368,1268,1269],{},".git\u002F",[368,1271,1272],{},".hg\u002F",[368,1274,1275],{},".svn\u002F",[435,1277,1278],{},"Version control internals",[420,1280,1281,1292],{},[435,1282,1283,805,1286,805,1289],{},[368,1284,1285],{},".venv\u002F",[368,1287,1288],{},"venv\u002F",[368,1290,1291],{},"__pycache__\u002F",[435,1293,1294],{},"Python environments and caches",[420,1296,1297,1326],{},[435,1298,1299,805,1302,805,1305,805,1308,805,1311,805,1314,805,1317,805,1320,805,1323],{},[368,1300,1301],{},".next\u002F",[368,1303,1304],{},".nuxt\u002F",[368,1306,1307],{},".output\u002F",[368,1309,1310],{},".turbo\u002F",[368,1312,1313],{},".cache\u002F",[368,1315,1316],{},"dist\u002F",[368,1318,1319],{},"build\u002F",[368,1321,1322],{},"target\u002F",[368,1324,1325],{},".gradle\u002F",[435,1327,1328],{},"Build output and caches",[364,1330,1331,1332,1335],{},"Folder patterns match a folder with exactly that name at any depth, so a folder called ",[368,1333,1334],{},"build-notes"," still syncs. Files over the size limit are skipped and reported once.",[378,1337,1339],{"id":1338},"conflicts-and-safety","Conflicts and safety",[364,1341,1342,1343,1346],{},"The CLI follows the same ",[373,1344,1345],{"href":87},"versions and conflicts"," rules as every other client. It adds some guards of its own:",[1348,1349,1350,1363,1369,1378,1402,1408],"ul",{},[1351,1352,1353,1356,1357,1359,1360,731],"li",{},[887,1354,1355],{},"Both sides changed."," Your local edit is uploaded against the version it was based on. If the workspace moved on, your bytes are kept as a conflicted copy, which then syncs back to the folder. ",[368,1358,1180],{}," lists these as ",[368,1361,1362],{},"conflict(s) — both versions kept",[1351,1364,1365,1368],{},[887,1366,1367],{},"Mass delete guard."," During a full sync, if the workspace comes back empty, or 25 or more local files would be deleted in one pass, the CLI keeps the local files and uploads them again instead. This protects you from a reset or a folder pointed at the wrong workspace.",[1351,1370,1371,1374,1375,1377],{},[887,1372,1373],{},"Missing folder."," If the synced folder (its ",[368,1376,748],{},") disappears, for example mid-move in Finder, the CLI stops propagating deletes rather than deleting the team's files.",[1351,1379,1380,1383,1384,591,1387,1390,1391,1394,1395,1397,1398,1401],{},[887,1381,1382],{},"Key revoked."," If the key stops working (",[368,1385,1386],{},"401",[368,1388,1389],{},"403","), the folder shows ",[887,1392,1393],{},"sign in"," in ",[368,1396,566],{}," and the daemon retries every 30 seconds. Run ",[368,1399,1400],{},"treehouse login --force"," in the folder to reconnect.",[1351,1403,1404,1407],{},[887,1405,1406],{},"Access removed."," When someone makes a file or folder private and you lose access, the CLI deletes your local copy of it.",[1351,1409,1410,1413,1414,1416],{},[887,1411,1412],{},"One file failing"," doesn't stop the rest. A one-shot ",[368,1415,1180],{}," reports the failures and exits with status 1.",[378,1418,1420],{"id":1419},"with-the-desktop-app","With the desktop app",[364,1422,1423,1424,1426,1427,805,1430,663,1433,1436,1437,731],{},"The desktop app and the CLI share one background daemon and one list of synced folders. Folders connected in either show up in ",[368,1425,566],{},", and ",[368,1428,1429],{},"treehouse pause",[368,1431,1432],{},"resume",[368,1434,1435],{},"relocate"," work on folders the app connected. See ",[373,1438,1439],{"href":131},"how sync works",[378,1441,1443],{"id":1442},"running-an-agent-on-a-server","Running an agent on a server",[364,1445,1446],{},"The CLI is the simplest way to give an agent on a server, a VM or a CI runner a real folder to work in:",[1448,1449,1450,1453,1460],"ol",{},[1351,1451,1452],{},"Install the CLI on the server.",[1351,1454,1455,1456,1459],{},"Run ",[368,1457,1458],{},"treehouse login ~\u002Fworkspace --no-open",", and approve the printed link from your own browser.",[1351,1461,1462,1463,1466],{},"Point the agent at ",[368,1464,1465],{},"~\u002Fworkspace",". Everything it writes syncs to the workspace, and everything your team writes appears in the folder.",[364,1468,1469,1470,805,1472,663,1474,1476,1477,1480,1481,1484,1485,1488],{},"If you prefer not to use the browser flow, create a key in the web app and set ",[368,1471,730],{},[368,1473,1087],{},[368,1475,1101],{},", then run ",[368,1478,1479],{},"treehouse sync ~\u002Fworkspace --watch"," under your process manager. Changes are attributed to the key's actor type, so choose ",[887,1482,1483],{},"Agent (MCP)"," under ",[887,1486,1487],{},"Used by"," if you want the agent's edits labelled as an agent's.",[1490,1491,1492],"style",{},"html pre.shiki code .sRC7j, html code.shiki .sRC7j{--shiki-default:#A7C080}html pre.shiki code .sySyC, html code.shiki .sySyC{--shiki-default:#DBBC7F}html pre.shiki code .sDOmQ, html code.shiki .sDOmQ{--shiki-default:#E69875}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":388,"searchDepth":11,"depth":48,"links":1494},[1495,1496,1501,1505,1506,1507,1508,1509],{"id":380,"depth":11,"text":381},{"id":477,"depth":11,"text":478,"children":1497},[1498,1499,1500],{"id":691,"depth":48,"text":692},{"id":859,"depth":48,"text":860},{"id":877,"depth":48,"text":877},{"id":892,"depth":11,"text":893,"children":1502},[1503,1504],{"id":896,"depth":48,"text":897},{"id":968,"depth":48,"text":969},{"id":1051,"depth":11,"text":1052},{"id":1186,"depth":11,"text":1187},{"id":1338,"depth":11,"text":1339},{"id":1419,"depth":11,"text":1420},{"id":1442,"depth":11,"text":1443},"md",{},true,[130,131,105],{"title":125,"description":127},"docs\u002Fdesktop\u002Fcli-reference","WmlPhD261rFBFrXJYLAeG8-lliOdWzVaWIj8NB2zDCU",1790706077911]