[{"data":1,"prerenderedAt":525},["ShallowReactive",2],{"navigation_docs":3,"-quickstart":139,"-quickstart-surround":520},[4,8,12,16,20,24,28,32,59,63,117,121,135],{"title":5,"path":6,"stem":7},"Introduction","\u002Fintroduction","1.introduction",{"title":9,"path":10,"stem":11},"Memory","\u002Fmemory","10.memory",{"title":13,"path":14,"stem":15},"Customization","\u002Fcustomization","11.customization",{"title":17,"path":18,"stem":19},"Deployment","\u002Fdeployment","12.deployment",{"title":21,"path":22,"stem":23},"Reference","\u002Freference","13.reference",{"title":25,"path":26,"stem":27},"Quickstart","\u002Fquickstart","2.quickstart",{"title":29,"path":30,"stem":31},"Installation","\u002Finstallation","3.installation",{"title":33,"icon":34,"path":35,"stem":36,"children":37,"page":58},"Connectors","i-lucide-cable","\u002Fconnectors","4.connectors",[38,42,46,50,54],{"title":39,"path":40,"stem":41},"Telegram","\u002Fconnectors\u002Ftelegram","4.connectors\u002F1.telegram",{"title":43,"path":44,"stem":45},"Slack","\u002Fconnectors\u002Fslack","4.connectors\u002F2.slack",{"title":47,"path":48,"stem":49},"Email","\u002Fconnectors\u002Femail","4.connectors\u002F3.email",{"title":51,"path":52,"stem":53},"API","\u002Fconnectors\u002Fapi","4.connectors\u002F4.api",{"title":55,"path":56,"stem":57},"Terminal","\u002Fconnectors\u002Fterminal","4.connectors\u002F5.terminal",false,{"title":60,"path":61,"stem":62},"Attachments","\u002Fattachments","5.attachments",{"title":64,"icon":65,"path":66,"stem":67,"children":68,"page":58},"Tools","i-lucide-wrench","\u002Ftools","6.tools",[69,73,77,81,85,89,93,97,101,105,109,113],{"title":70,"path":71,"stem":72},"File Manager","\u002Ftools\u002Ffile-manager","6.tools\u002F1.file-manager",{"title":74,"path":75,"stem":76},"Text-to-Speech","\u002Ftools\u002Ftext-to-speech","6.tools\u002F10.text-to-speech",{"title":78,"path":79,"stem":80},"Confirmations","\u002Ftools\u002Fconfirmations","6.tools\u002F11.confirmations",{"title":82,"path":83,"stem":84},"Adding Custom Tools","\u002Ftools\u002Fadding-custom-tools","6.tools\u002F12.adding-custom-tools",{"title":86,"path":87,"stem":88},"Image Manager","\u002Ftools\u002Fimage-manager","6.tools\u002F2.image-manager",{"title":90,"path":91,"stem":92},"Web Request","\u002Ftools\u002Fweb-request","6.tools\u002F3.web-request",{"title":94,"path":95,"stem":96},"Reminders","\u002Ftools\u002Freminders","6.tools\u002F4.reminders",{"title":98,"path":99,"stem":100},"Heartbeats","\u002Ftools\u002Fheartbeats","6.tools\u002F5.heartbeats",{"title":102,"path":103,"stem":104},"Email Manager","\u002Ftools\u002Femail-manager","6.tools\u002F6.email-manager",{"title":106,"path":107,"stem":108},"Calendar","\u002Ftools\u002Fcalendar","6.tools\u002F7.calendar",{"title":110,"path":111,"stem":112},"Read Database","\u002Ftools\u002Fread-database","6.tools\u002F8.read-database",{"title":114,"path":115,"stem":116},"Headless Browser","\u002Ftools\u002Fbrowser","6.tools\u002F9.browser",{"title":118,"path":119,"stem":120},"Tinker","\u002Ftinker","7.tinker",{"title":122,"icon":123,"path":124,"stem":125,"children":126,"page":58},"Skills","i-lucide-sparkles","\u002Fskills","8.skills",[127,131],{"title":128,"path":129,"stem":130},"Overview","\u002Fskills\u002Foverview","8.skills\u002F1.overview",{"title":132,"path":133,"stem":134},"Adding Custom Skills","\u002Fskills\u002Fadding-custom-skills","8.skills\u002F2.adding-custom-skills",{"title":136,"path":137,"stem":138},"Personas","\u002Fpersonas","9.personas",{"id":140,"title":25,"body":141,"description":513,"extension":514,"links":515,"meta":516,"navigation":517,"path":26,"seo":518,"stem":27,"__hash__":519},"docs\u002F2.quickstart.md",{"type":142,"value":143,"toc":503},"minimark",[144,148,157,160,163,167,170,174,177,218,229,233,236,250,253,296,303,307,310,324,327,348,352,355,369,372,380,383,386,392,395,399,402,438,442,445,496,499],[145,146,5],"h2",{"id":147},"introduction",[149,150,151,152,156],"p",{},"You just heard about Laraclaw and you want to see it actually ",[153,154,155],"em",{},"do"," something. No webhooks, no Redis-required-yet, no production setup — just the smallest loop you can iterate from.",[149,158,159],{},"In this guide, we'll install the package, run the setup wizard, and have the agent reply to you in your terminal. Five minutes from now, you'll be talking to your Laravel app.",[149,161,162],{},"Ready? Let's go!",[145,164,166],{"id":165},"what-youll-have-at-the-end","What You'll Have at the End",[149,168,169],{},"A working Laraclaw install with one connector (the terminal) talking to your AI provider of choice. From here, every other connector is just plumbing on top of the same loop — once this works, the rest is configuration.",[145,171,173],{"id":172},"_1-install-the-package","1. Install the Package",[149,175,176],{},"Drop into your Laravel project and pull the package in via Composer:",[178,179,184],"pre",{"className":180,"code":181,"language":182,"meta":183,"style":183},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","composer require laraclaw\u002Flaraclaw\nphp artisan vendor:publish --tag=laraclaw\n","bash","",[185,186,187,203],"code",{"__ignoreMap":183},[188,189,192,196,200],"span",{"class":190,"line":191},"line",1,[188,193,195],{"class":194},"sBMFI","composer",[188,197,199],{"class":198},"sfazB"," require",[188,201,202],{"class":198}," laraclaw\u002Flaraclaw\n",[188,204,206,209,212,215],{"class":190,"line":205},2,[188,207,208],{"class":194},"php",[188,210,211],{"class":198}," artisan",[188,213,214],{"class":198}," vendor:publish",[188,216,217],{"class":198}," --tag=laraclaw\n",[149,219,220,221,224,225,228],{},"This drops ",[185,222,223],{},"config\u002Flaraclaw.php",", the migrations, and the agent folder (",[185,226,227],{},"laraclaw\u002Finstructions.md",", a starter persona, and an example skill). We'll touch a few of them later.",[145,230,232],{"id":231},"_2-run-the-wizard","2. Run the Wizard",[149,234,235],{},"Now for the fun part:",[178,237,239],{"className":180,"code":238,"language":182,"meta":183,"style":183},"php artisan laraclaw:setup\n",[185,240,241],{"__ignoreMap":183},[188,242,243,245,247],{"class":190,"line":191},[188,244,208],{"class":194},[188,246,211],{"class":198},[188,248,249],{"class":198}," laraclaw:setup\n",[149,251,252],{},"The wizard walks you through everything. When it asks:",[254,255,256,275,285,290],"ul",{},[257,258,259,263,264,267,268,271,272,274],"li",{},[260,261,262],"strong",{},"Owner user"," — pick any user in your ",[185,265,266],{},"users"," table. This becomes your ",[185,269,270],{},"LARACLAW_ADMIN_USER_ID",". (No ",[185,273,266],{}," table yet? Make sure you've run your app's own migrations first.)",[257,276,277,280,281,284],{},[260,278,279],{},"AI provider"," — pick whichever ",[185,282,283],{},"laravel\u002Fai"," driver you have credentials for. The wizard prompts for the API key inline.",[257,286,287,289],{},[260,288,33],{}," — skip them all for now. We can wire them up after the loop is working.",[257,291,292,295],{},[260,293,294],{},"Memory, Files, Calendar, Read Database, Headless Browser, Tinker"," — skip them all too. You don't need them yet.",[149,297,298,299,302],{},"The wizard writes everything to your ",[185,300,301],{},".env",", runs the migrations, and exits. Pretty smooth, right?",[145,304,306],{"id":305},"_3-start-a-queue-worker","3. Start a Queue Worker",[149,308,309],{},"The terminal connector dispatches the agent invocation to a job, so without a worker the loop never closes. In a second terminal, run:",[178,311,313],{"className":180,"code":312,"language":182,"meta":183,"style":183},"php artisan queue:work\n",[185,314,315],{"__ignoreMap":183},[188,316,317,319,321],{"class":190,"line":191},[188,318,208],{"class":194},[188,320,211],{"class":198},[188,322,323],{"class":198}," queue:work\n",[149,325,326],{},"Leave it running. You'll see jobs fly through it once you start chatting.",[328,329,330],"blockquote",{},[149,331,332,335,336,339,340,343,344,347],{},[188,333,334],{},"!TIP","\nIf you've never used Laravel queues before, the default ",[185,337,338],{},"QUEUE_CONNECTION=sync"," would also work for the terminal connector — but switching to ",[185,341,342],{},"database"," or ",[185,345,346],{},"redis"," matches what you'll need in production. The wizard does this for you.",[145,349,351],{"id":350},"_4-talk-to-the-agent","4. Talk to the Agent",[149,353,354],{},"In a third terminal:",[178,356,358],{"className":180,"code":357,"language":182,"meta":183,"style":183},"php artisan laraclaw:chat\n",[185,359,360],{"__ignoreMap":183},[188,361,362,364,366],{"class":190,"line":191},[188,363,208],{"class":194},[188,365,211],{"class":198},[188,367,368],{"class":198}," laraclaw:chat\n",[149,370,371],{},"You're now in a REPL talking to the agent as the owner. Send a message:",[178,373,378],{"className":374,"code":376,"language":377},[375],"language-text","> Hi, what tools do you have access to?\n","text",[185,379,376],{"__ignoreMap":183},[149,381,382],{},"The agent should reply within a few seconds. If it does, your install is working end-to-end and every other connector is just plumbing on top of this same loop. Awesome!",[149,384,385],{},"Try a couple more:",[178,387,390],{"className":388,"code":389,"language":377},[375],"> What time is it?\n> Set a reminder for 5 minutes from now to drink water.\n",[185,391,389],{"__ignoreMap":183},[149,393,394],{},"If reminders aren't enabled yet (we skipped them in step 2), the agent will tell you so. That's fine — the point is to confirm the loop is alive.",[145,396,398],{"id":397},"troubleshooting","Troubleshooting",[149,400,401],{},"A few things that trip people up the first time:",[254,403,404,414,428],{},[257,405,406,409,410,413],{},[260,407,408],{},"\"No reply at all.\""," Check that ",[185,411,412],{},"php artisan queue:work"," is actually running and look at its output for stack traces. Most failures land there.",[257,415,416,419,420,423,424,427],{},[260,417,418],{},"\"401 \u002F authentication error.\""," Your ",[185,421,422],{},"AI_DEFAULT"," provider's API key is wrong or missing. Re-run ",[185,425,426],{},"php artisan laraclaw:setup-agent"," to fix it without re-doing the whole wizard.",[257,429,430,433,434,437],{},[260,431,432],{},"\"Agent says it has no tools.\""," That's expected with the minimal quickstart config. We disabled them all in step 2 — head to ",[435,436,64],"a",{"href":71}," to enable some.",[145,439,441],{"id":440},"what-to-do-next","What to Do Next",[149,443,444],{},"Now that the loop works, here's where we'd go:",[254,446,447,464,480,488],{},[257,448,449,452,453,456,457,463],{},[260,450,451],{},"Wire up a real chat surface."," Pick a ",[435,454,455],{"href":40},"connector"," and run its setup wizard. Telegram is the fastest to get a webhook for — five minutes with ",[435,458,462],{"href":459,"rel":460},"https:\u002F\u002Ft.me\u002FBotFather",[461],"nofollow","@BotFather"," and you're done.",[257,465,466,469,470,473,474,476,477,479],{},[260,467,468],{},"Give the agent capabilities."," Browse the ",[435,471,472],{"href":71},"tools",". The ",[435,475,70],{"href":71}," and ",[435,478,106],{"href":107}," are the most commonly enabled.",[257,481,482,487],{},[260,483,484,485],{},"Read the ",[435,486,5],{"href":6}," for the mental model — what tools, skills, personas, commands, and superpowers are, and when to pick which.",[257,489,490,495],{},[260,491,492,493],{},"Read ",[435,494,17],{"href":18}," before you put this in front of users. The terminal loop has different requirements than a webhook-driven install.",[149,497,498],{},"Until next time!",[500,501,502],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":183,"searchDepth":205,"depth":205,"links":504},[505,506,507,508,509,510,511,512],{"id":147,"depth":205,"text":5},{"id":165,"depth":205,"text":166},{"id":172,"depth":205,"text":173},{"id":231,"depth":205,"text":232},{"id":305,"depth":205,"text":306},{"id":350,"depth":205,"text":351},{"id":397,"depth":205,"text":398},{"id":440,"depth":205,"text":441},"Install Laraclaw and have the agent reply to you in the terminal in under five minutes.","md",null,{},true,{"title":25,"description":513},"2nCoxjc2acTUoV8-2Tpxa7VpZdA6aMWRMPAPrEY7j0c",[521,523],{"title":21,"path":22,"stem":23,"description":522,"children":-1},"Every environment variable Laraclaw reads, with its default and what it controls.",{"title":29,"path":30,"stem":31,"description":524,"children":-1},"Install Laraclaw, publish its config, and walk through the setup wizard.",1786661906119]