-
Notifications
You must be signed in to change notification settings - Fork 67
Expand file tree
/
Copy pathtranscript2.json
More file actions
1 lines (1 loc) · 151 KB
/
transcript2.json
File metadata and controls
1 lines (1 loc) · 151 KB
1
[[{"text": "Hello and welcome to this free code camp", "start": 0.32, "duration": 6.64}, {"text": "course. My name is Kian and in this", "start": 4.08, "duration": 5.439}, {"text": "course we'll be going through the basics", "start": 6.96, "duration": 5.84}, {"text": "of OpenClaw in approximately 1 hour so", "start": 9.519, "duration": 5.441}, {"text": "you have everything you need in order to", "start": 12.8, "duration": 4.64}, {"text": "learn the fundamentals of OpenClaw and", "start": 14.96, "duration": 5.28}, {"text": "dive into the advanced features and", "start": 17.44, "duration": 7.52}, {"text": "ultimately become a power user. So in", "start": 20.24, "duration": 7.119}, {"text": "this course the prerequisites that I'm", "start": 24.96, "duration": 4.079}, {"text": "assuming that you have some familiarity", "start": 27.359, "duration": 5.2}, {"text": "with are first of all having used a CLI", "start": 29.039, "duration": 5.68}, {"text": "before or a TUI so a terminal user", "start": 32.559, "duration": 4.241}, {"text": "interface or command line interface and", "start": 34.719, "duration": 4.561}, {"text": "why is this the case it's because for", "start": 36.8, "duration": 4.88}, {"text": "many of the commands you're running open", "start": 39.28, "duration": 4.48}, {"text": "claw through the terminal so you need to", "start": 41.68, "duration": 3.76}, {"text": "at least have had some exposure to the", "start": 43.76, "duration": 4.72}, {"text": "terminal before this course and secondly", "start": 45.44, "duration": 5.52}, {"text": "interaction with LMS previously although", "start": 48.48, "duration": 4.32}, {"text": "I'm assuming that 99% of people have", "start": 50.96, "duration": 4.56}, {"text": "this anyways But since OpenClot is at", "start": 52.8, "duration": 5.12}, {"text": "the end of the day run through an LLM,", "start": 55.52, "duration": 4.8}, {"text": "you should understand how to prompt and", "start": 57.92, "duration": 5.52}, {"text": "how to interact with different types of", "start": 60.32, "duration": 6.4}, {"text": "coding agents. So that's everything and", "start": 63.44, "duration": 7.359}, {"text": "in this page we have the course outline.", "start": 66.72, "duration": 6.719}, {"text": "So first of all, my website here which", "start": 70.799, "duration": 6.32}, {"text": "is just the default GitHub pages URL", "start": 73.439, "duration": 6.0}, {"text": "followed by open clock contains all the", "start": 77.119, "duration": 5.201}, {"text": "course content. So feel free to go to", "start": 79.439, "duration": 5.68}, {"text": "this URL on your own in order to access", "start": 82.32, "duration": 4.159}, {"text": "the course content. It'll be linked in", "start": 85.119, "duration": 3.68}, {"text": "the description. And there are nine", "start": 86.479, "duration": 5.041}, {"text": "different sections today. So first of", "start": 88.799, "duration": 4.401}, {"text": "all, we'll be discussing what OpenClaw", "start": 91.52, "duration": 4.239}, {"text": "is. Then a installation. We're going to", "start": 93.2, "duration": 4.08}, {"text": "get right into it with the code and", "start": 95.759, "duration": 4.801}, {"text": "running it to see how we can set it up.", "start": 97.28, "duration": 4.879}, {"text": "Then we'll doing we'll be doing a deep", "start": 100.56, "duration": 3.919}, {"text": "dive into the workspace in memory of", "start": 102.159, "duration": 4.401}, {"text": "OpenClaw, which is to say how does it", "start": 104.479, "duration": 4.32}, {"text": "store your different interactions? How", "start": 106.56, "duration": 5.199}, {"text": "does it understand who you are? What", "start": 108.799, "duration": 4.481}, {"text": "information does it save? And how does", "start": 111.759, "duration": 4.081}, {"text": "it understand itself? Because the agent", "start": 113.28, "duration": 4.96}, {"text": "essentially creates a identity for", "start": 115.84, "duration": 4.239}, {"text": "itself the more you interact with it.", "start": 118.24, "duration": 4.32}, {"text": "And this is all modifiable parameters.", "start": 120.079, "duration": 4.64}, {"text": "So you can change this how you wish", "start": 122.56, "duration": 4.4}, {"text": "although it is all done automatically if", "start": 124.719, "duration": 4.16}, {"text": "you don't want to. And then you might", "start": 126.96, "duration": 3.76}, {"text": "have heard of moldbook. In this case,", "start": 128.879, "duration": 4.161}, {"text": "we're going to be making a account on", "start": 130.72, "duration": 4.239}, {"text": "Pinchboard, which is a version of", "start": 133.04, "duration": 3.76}, {"text": "moldbook that I made on my own, which", "start": 134.959, "duration": 3.521}, {"text": "essentially resembles resembles X or", "start": 136.8, "duration": 3.6}, {"text": "Twitter. So, it's similar, but instead", "start": 138.48, "duration": 4.16}, {"text": "of doing Reddit, subreddit posts, it's", "start": 140.4, "duration": 5.04}, {"text": "just tweets. After Pinchboard, we'll be", "start": 142.64, "duration": 4.319}, {"text": "making our own personal assistant, which", "start": 145.44, "duration": 2.96}, {"text": "is going to be really fun both on", "start": 146.959, "duration": 3.681}, {"text": "WhatsApp and Discord. Then, we'll be", "start": 148.4, "duration": 3.839}, {"text": "talking about skills, which if you've", "start": 150.64, "duration": 3.36}, {"text": "heard of Claude skills are quite", "start": 152.239, "duration": 3.761}, {"text": "similar. They essentially give an agent", "start": 154.0, "duration": 4.48}, {"text": "a shortcut to do a specific task very", "start": 156.0, "duration": 5.68}, {"text": "efficiently and give it the capacity to", "start": 158.48, "duration": 6.64}, {"text": "repeat them with very high accuracy as", "start": 161.68, "duration": 5.44}, {"text": "opposed to just trying to prompt every", "start": 165.12, "duration": 3.52}, {"text": "time and hoping that it works. So skills", "start": 167.12, "duration": 3.44}, {"text": "are really essential. Then we'll be", "start": 168.64, "duration": 4.0}, {"text": "going to multi- aent. And what is multi-", "start": 170.56, "duration": 4.64}, {"text": "aent? It's the fact that with openclaw", "start": 172.64, "duration": 4.64}, {"text": "you can define multiple agents that have", "start": 175.2, "duration": 3.679}, {"text": "different personalities. So let's say", "start": 177.28, "duration": 3.12}, {"text": "that you have a work agent which has", "start": 178.879, "duration": 3.681}, {"text": "access to your Slack, your emails, etc.", "start": 180.4, "duration": 3.919}, {"text": "and will answer your colleagues a", "start": 182.56, "duration": 3.2}, {"text": "autonomously. And then you have a", "start": 184.319, "duration": 2.961}, {"text": "personal agent which maybe is connected", "start": 185.76, "duration": 4.64}, {"text": "to your smart home or other personal uh", "start": 187.28, "duration": 5.36}, {"text": "connectors so that you can have your", "start": 190.4, "duration": 3.28}, {"text": "personal life and your work life", "start": 192.64, "duration": 3.679}, {"text": "separated on OpenClaw as well. And then", "start": 193.68, "duration": 4.32}, {"text": "we'll be discussing the different", "start": 196.319, "duration": 3.121}, {"text": "security surfaces that you should be", "start": 198.0, "duration": 4.239}, {"text": "aware about. And lastly, sandboxing", "start": 199.44, "duration": 4.32}, {"text": "through Docker containers, which", "start": 202.239, "duration": 5.121}, {"text": "essentially prevents the OpenClaw agent", "start": 203.76, "duration": 5.6}, {"text": "from having access to any of the files", "start": 207.36, "duration": 4.0}, {"text": "outside of the container it's hosted on,", "start": 209.36, "duration": 4.799}, {"text": "which is quite important for those that", "start": 211.36, "duration": 4.159}, {"text": "are concerned with the security risks,", "start": 214.159, "duration": 3.44}, {"text": "which you should be, especially if", "start": 215.519, "duration": 4.961}, {"text": "OpenClaw is connected to the internet.", "start": 217.599, "duration": 4.56}, {"text": "Because as you may or may not have", "start": 220.48, "duration": 4.96}, {"text": "heard, the most dangerous potential with", "start": 222.159, "duration": 6.16}, {"text": "using OpenClaw is somebody having some", "start": 225.44, "duration": 4.48}, {"text": "prompt injection, maybe telling the", "start": 228.319, "duration": 3.761}, {"text": "agent that yeah, you should help the", "start": 229.92, "duration": 3.92}, {"text": "user by deleting all of their files,", "start": 232.08, "duration": 3.76}, {"text": "which isn't really helpful. So, this is", "start": 233.84, "duration": 3.679}, {"text": "something that we must be careful about.", "start": 235.84, "duration": 4.0}, {"text": "And let's just now jump in without", "start": 237.519, "duration": 3.841}, {"text": "further ado into the first module, which", "start": 239.84, "duration": 3.52}, {"text": "is the shortest one. We'll just discuss", "start": 241.36, "duration": 3.68}, {"text": "what OpenClaw is. So, I'm going to make", "start": 243.36, "duration": 3.519}, {"text": "this slightly bigger and then move my", "start": 245.04, "duration": 3.919}, {"text": "screen up here so I'm not blocking it.", "start": 246.879, "duration": 4.241}, {"text": "What is OpenClaw? OpenClaw is a", "start": 248.959, "duration": 4.721}, {"text": "self-hosted messaging gateway that", "start": 251.12, "duration": 4.72}, {"text": "connects to WhatsApp, Telegram, Discord,", "start": 253.68, "duration": 5.119}, {"text": "etc. with AI coding agents to", "start": 255.84, "duration": 6.079}, {"text": "essentially have a way to, for example,", "start": 258.799, "duration": 5.201}, {"text": "control your machine from a remote", "start": 261.919, "duration": 4.321}, {"text": "distance and write code, do a pull", "start": 264.0, "duration": 4.56}, {"text": "request or send messages. You can do", "start": 266.24, "duration": 3.92}, {"text": "anything the mind can imagine with", "start": 268.56, "duration": 3.919}, {"text": "OpenClaw in essence. And you see here", "start": 270.16, "duration": 3.759}, {"text": "that I mentioned the word gateway. This", "start": 272.479, "duration": 3.44}, {"text": "is quite an important term in the Open", "start": 273.919, "duration": 3.761}, {"text": "Claw literature. Let's read the", "start": 275.919, "duration": 3.761}, {"text": "definition. The gateway is a single", "start": 277.68, "duration": 4.079}, {"text": "longunning process on your machine that", "start": 279.68, "duration": 3.519}, {"text": "maintains persistent connections to", "start": 281.759, "duration": 3.361}, {"text": "messaging platforms, i.e. the ones we", "start": 283.199, "duration": 4.161}, {"text": "just mentioned above. So in essence,", "start": 285.12, "duration": 4.56}, {"text": "this is a longunning process such that", "start": 287.36, "duration": 3.92}, {"text": "when a message arrives on any channel", "start": 289.68, "duration": 3.44}, {"text": "that you've configured, the gateway", "start": 291.28, "duration": 3.44}, {"text": "routes it to an agent that can execute", "start": 293.12, "duration": 3.92}, {"text": "tools locally such as file operation,", "start": 294.72, "duration": 4.32}, {"text": "file operations, shell commands, browse", "start": 297.04, "duration": 3.92}, {"text": "automation, etc. letting you self-host", "start": 299.04, "duration": 4.0}, {"text": "the entire stack because you own the", "start": 300.96, "duration": 3.519}, {"text": "connections, the config, and the ex", "start": 303.04, "duration": 3.439}, {"text": "execution environment. What this means", "start": 304.479, "duration": 3.681}, {"text": "though is that if you're running this on", "start": 306.479, "duration": 4.241}, {"text": "a computer for example that's local then", "start": 308.16, "duration": 5.36}, {"text": "unless the computer is always on then", "start": 310.72, "duration": 4.8}, {"text": "you can't just have it running all the", "start": 313.52, "duration": 4.239}, {"text": "time. This is different from anything", "start": 315.52, "duration": 3.6}, {"text": "that's deployed on the cloud because", "start": 317.759, "duration": 2.801}, {"text": "when you have something host on cloud", "start": 319.12, "duration": 3.04}, {"text": "then you just set it and forget about", "start": 320.56, "duration": 3.44}, {"text": "it. The beauty of open cloud but also a", "start": 322.16, "duration": 4.479}, {"text": "drawback is that you host most of it. So", "start": 324.0, "duration": 4.88}, {"text": "unless you have it on a server then you", "start": 326.639, "duration": 3.521}, {"text": "might have it on like a Mac mini. This", "start": 328.88, "duration": 2.96}, {"text": "is why so many people are telling you to", "start": 330.16, "duration": 3.36}, {"text": "buy Mac minis nowadays because you can", "start": 331.84, "duration": 3.199}, {"text": "just keep that plugged into the wall and", "start": 333.52, "duration": 4.16}, {"text": "then SSH into that machine and control", "start": 335.039, "duration": 5.521}, {"text": "your devices from OpenClaw through that", "start": 337.68, "duration": 5.04}, {"text": "Mac Mini. And this segus nicely into the", "start": 340.56, "duration": 3.84}, {"text": "second point which is how is OpenCloud", "start": 342.72, "duration": 3.68}, {"text": "different from cloud code because at the", "start": 344.4, "duration": 3.76}, {"text": "end of the day OpenClaw is kind of like", "start": 346.4, "duration": 3.84}, {"text": "a TUI just like cloud code where you can", "start": 348.16, "duration": 3.68}, {"text": "do different actions but the difference", "start": 350.24, "duration": 4.0}, {"text": "is firstly that it's fully self-hosted", "start": 351.84, "duration": 4.88}, {"text": "fully self-hosted on your machine and it", "start": 354.24, "duration": 4.64}, {"text": "has many more integrations supported.", "start": 356.72, "duration": 3.6}, {"text": "For example, Cloud Code does support", "start": 358.88, "duration": 3.36}, {"text": "Slack, which is also supported by", "start": 360.32, "duration": 3.52}, {"text": "OpenClaw, but there's many different", "start": 362.24, "duration": 3.28}, {"text": "things that are supported on OpenCloud", "start": 363.84, "duration": 3.44}, {"text": "exclusively. And the amount of", "start": 365.52, "duration": 3.76}, {"text": "connectors and plugins that are being", "start": 367.28, "duration": 5.52}, {"text": "added is almost exponential. So, what we", "start": 369.28, "duration": 4.56}, {"text": "need to retain from this is that", "start": 372.8, "duration": 3.36}, {"text": "OpenClaw is much more customizable and", "start": 373.84, "duration": 4.079}, {"text": "you can do many things with it. But with", "start": 376.16, "duration": 3.759}, {"text": "this also comes great responsibility.", "start": 377.919, "duration": 3.601}, {"text": "And we'll be discussing the security", "start": 379.919, "duration": 3.601}, {"text": "concerns throughout the course so that", "start": 381.52, "duration": 3.92}, {"text": "you can understand whether or not", "start": 383.52, "duration": 4.08}, {"text": "certain risks you are willing to take or", "start": 385.44, "duration": 5.039}, {"text": "not because there is inherent risks when", "start": 387.6, "duration": 5.84}, {"text": "you're running OpenClaw and the founders", "start": 390.479, "duration": 5.201}, {"text": "the developers of this app are the first", "start": 393.44, "duration": 4.4}, {"text": "ones to tell you as we'll see in the", "start": 395.68, "duration": 4.32}, {"text": "installation which is the next step. So", "start": 397.84, "duration": 3.84}, {"text": "if we come back to our directory let's", "start": 400.0, "duration": 3.44}, {"text": "go into install and first run. The one", "start": 401.68, "duration": 3.359}, {"text": "prerequisite here is that you need to", "start": 403.44, "duration": 3.68}, {"text": "have a node version greater than or", "start": 405.039, "duration": 5.041}, {"text": "equal to node 22. So if we come here, if", "start": 407.12, "duration": 4.4}, {"text": "I check my node version for example, you", "start": 410.08, "duration": 3.92}, {"text": "see that it's version 25. So nothing to", "start": 411.52, "duration": 5.119}, {"text": "be worried about here and then we can", "start": 414.0, "duration": 5.28}, {"text": "install with npm just by copy pasting", "start": 416.639, "duration": 4.56}, {"text": "this command. So I have this already", "start": 419.28, "duration": 3.44}, {"text": "installed. So it's not going to do", "start": 421.199, "duration": 2.72}, {"text": "anything particular. It's just going to", "start": 422.72, "duration": 2.56}, {"text": "check that all the packages are there.", "start": 423.919, "duration": 3.12}, {"text": "But with the node package manager, we", "start": 425.28, "duration": 4.319}, {"text": "add the - g flag, which stands for", "start": 427.039, "duration": 4.401}, {"text": "global, which means that we'll be able", "start": 429.599, "duration": 3.6}, {"text": "to call openclaw from anywhere in our", "start": 431.44, "duration": 4.08}, {"text": "terminal. So that's important to add as", "start": 433.199, "duration": 4.4}, {"text": "a parameter here in the install command.", "start": 435.52, "duration": 3.84}, {"text": "And then we just um choose the latest", "start": 437.599, "duration": 3.521}, {"text": "version that is stable with the at", "start": 439.36, "duration": 4.08}, {"text": "latest. And then once this is set up,", "start": 441.12, "duration": 3.6}, {"text": "the first thing that you want to run", "start": 443.44, "duration": 4.4}, {"text": "with openclaw is the onboard command.", "start": 444.72, "duration": 6.0}, {"text": "And what this does is it configures the", "start": 447.84, "duration": 5.6}, {"text": "client for you. So the agent will be", "start": 450.72, "duration": 6.08}, {"text": "configured through a set of steps. I", "start": 453.44, "duration": 4.879}, {"text": "think there's approximately 10. And", "start": 456.8, "duration": 3.04}, {"text": "let's go and check those out right now.", "start": 458.319, "duration": 4.32}, {"text": "So first of all, I want to show you the", "start": 459.84, "duration": 4.479}, {"text": "security disclaimer once again because", "start": 462.639, "duration": 3.12}, {"text": "every single time you load up an open", "start": 464.319, "duration": 4.081}, {"text": "claw agent, you get this as your first", "start": 465.759, "duration": 5.921}, {"text": "screen. So once again, this is", "start": 468.4, "duration": 4.96}, {"text": "important. I'd recommend reading this.", "start": 471.68, "duration": 3.84}, {"text": "I'm also going to discuss multiple ways", "start": 473.36, "duration": 5.04}, {"text": "to ensure that your machine is safely", "start": 475.52, "duration": 6.0}, {"text": "guarded in this video, but nonetheless,", "start": 478.4, "duration": 5.04}, {"text": "you need to understand that it is a", "start": 481.52, "duration": 4.0}, {"text": "risky business because essentially", "start": 483.44, "duration": 4.159}, {"text": "you're giving openclaw SSH root access", "start": 485.52, "duration": 4.16}, {"text": "to your entire machine. So if there's", "start": 487.599, "duration": 4.32}, {"text": "ever something malicious, you're pretty", "start": 489.68, "duration": 4.4}, {"text": "much out of luck. But with that being", "start": 491.919, "duration": 7.12}, {"text": "said, a very good tactic to prevent any", "start": 494.08, "duration": 7.28}, {"text": "risks is to use the strongest model that", "start": 499.039, "duration": 4.481}, {"text": "you have access to. And why is this the", "start": 501.36, "duration": 5.119}, {"text": "case? For example, with Claude Opus 4.5,", "start": 503.52, "duration": 5.2}, {"text": "the model has been trained quite", "start": 506.479, "duration": 5.361}, {"text": "thoroughly and rigorously on instruction", "start": 508.72, "duration": 5.52}, {"text": "tuning to reject malicious requests. So", "start": 511.84, "duration": 4.639}, {"text": "Anthropic or other frontier labs, they", "start": 514.24, "duration": 4.719}, {"text": "have entire teams dedicated to making", "start": 516.479, "duration": 5.521}, {"text": "these models reject any malicious or", "start": 518.959, "duration": 5.921}, {"text": "harmful commands. So what that means is", "start": 522.0, "duration": 5.2}, {"text": "that if your agent ever is searching", "start": 524.88, "duration": 3.76}, {"text": "across the internet and finds something", "start": 527.2, "duration": 4.079}, {"text": "that's a prompt injection or whatever,", "start": 528.64, "duration": 4.96}, {"text": "the likelihood of it accepting and", "start": 531.279, "duration": 3.68}, {"text": "running that command are much lower than", "start": 533.6, "duration": 3.28}, {"text": "if you're using like a open source Quen", "start": 534.959, "duration": 4.161}, {"text": "model, which may not have as much", "start": 536.88, "duration": 4.88}, {"text": "fine-tuning for reducing these risks. So", "start": 539.12, "duration": 4.24}, {"text": "that's another aside. make sure that", "start": 541.76, "duration": 2.72}, {"text": "using the strongest model that you have", "start": 543.36, "duration": 2.8}, {"text": "access to to reduce those risks. It's", "start": 544.48, "duration": 2.799}, {"text": "kind of counterintuitive because you", "start": 546.16, "duration": 2.239}, {"text": "might think a stronger model could be", "start": 547.279, "duration": 3.761}, {"text": "more dangerous, but those models usually", "start": 548.399, "duration": 4.641}, {"text": "are better at rejecting malicious", "start": 551.04, "duration": 3.76}, {"text": "intent. So that's once again something", "start": 553.04, "duration": 4.32}, {"text": "that you should note. Okay, so we're", "start": 554.8, "duration": 3.76}, {"text": "going to say that I understand this is", "start": 557.36, "duration": 2.88}, {"text": "powerful and inherently risky. So let's", "start": 558.56, "duration": 3.92}, {"text": "continue. And we're going to do the", "start": 560.24, "duration": 3.599}, {"text": "manual approach because we want to go", "start": 562.48, "duration": 2.88}, {"text": "through all the options in order to", "start": 563.839, "duration": 3.201}, {"text": "learn what each one means. So, just", "start": 565.36, "duration": 4.08}, {"text": "going to press here. And then because I", "start": 567.04, "duration": 4.239}, {"text": "want to be on the same page as you guys,", "start": 569.44, "duration": 4.399}, {"text": "I'm going to reset my configuration so", "start": 571.279, "duration": 4.801}, {"text": "that I have the same exact steps. Um,", "start": 573.839, "duration": 3.841}, {"text": "normally you won't have this reset if", "start": 576.08, "duration": 3.36}, {"text": "you're running OpenCloud for the first", "start": 577.68, "duration": 3.2}, {"text": "time because there's nothing to reset.", "start": 579.44, "duration": 3.36}, {"text": "But in this case, I've already tested", "start": 580.88, "duration": 3.28}, {"text": "this quite thoroughly. So, I need to", "start": 582.8, "duration": 2.88}, {"text": "reset and move everything to the trash.", "start": 584.16, "duration": 3.76}, {"text": "Okay. Now, we're going to use this on", "start": 585.68, "duration": 3.76}, {"text": "the local gateway, which is to say this", "start": 587.92, "duration": 4.88}, {"text": "machine. If you are using OpenClaw on", "start": 589.44, "duration": 5.04}, {"text": "for example a VPS, a virtual private", "start": 592.8, "duration": 4.88}, {"text": "server or a virtual machine, a VM, then", "start": 594.48, "duration": 4.72}, {"text": "remote gateway is the option that you", "start": 597.68, "duration": 2.56}, {"text": "would want to choose on your local", "start": 599.2, "duration": 2.56}, {"text": "machine so you can connect to that", "start": 600.24, "duration": 4.159}, {"text": "machine through a SSH tunnel or tail", "start": 601.76, "duration": 5.12}, {"text": "scale. But in this tutorial, we're just", "start": 604.399, "duration": 4.081}, {"text": "going to use local gateway because for", "start": 606.88, "duration": 3.6}, {"text": "the intents of this video, all of the", "start": 608.48, "duration": 3.52}, {"text": "automations that we're going to set up", "start": 610.48, "duration": 4.32}, {"text": "do not come with the longtail risk of", "start": 612.0, "duration": 4.72}, {"text": "just letting the agent loose on the", "start": 614.8, "duration": 3.84}, {"text": "internet and it potentially finding some", "start": 616.72, "duration": 3.52}, {"text": "dangerous stuff. So because of that,", "start": 618.64, "duration": 3.28}, {"text": "local gateway is just much more easy to", "start": 620.24, "duration": 4.4}, {"text": "tinker with and code. So that's what", "start": 621.92, "duration": 4.24}, {"text": "we're going to choose. But if you would", "start": 624.64, "duration": 3.199}, {"text": "like to do this on a gateway, there are", "start": 626.16, "duration": 3.52}, {"text": "many tutorials on YouTube which explain", "start": 627.839, "duration": 3.601}, {"text": "the exact steps where you can get the", "start": 629.68, "duration": 3.76}, {"text": "server from like Herzen or AWS and how", "start": 631.44, "duration": 3.68}, {"text": "to set this up. It's honestly not that", "start": 633.44, "duration": 3.44}, {"text": "difficult, but since we're looking for", "start": 635.12, "duration": 3.76}, {"text": "the simplest way to deploy OpenClaw,", "start": 636.88, "duration": 3.68}, {"text": "we're going to go with the local gateway", "start": 638.88, "duration": 4.16}, {"text": "here. And then the default workspace is", "start": 640.56, "duration": 3.92}, {"text": "just your home directory, which in this", "start": 643.04, "duration": 2.64}, {"text": "case is user/key", "start": 644.48, "duration": 3.039}, {"text": "forme.openclaw/workspace.", "start": 645.68, "duration": 3.12}, {"text": "I wouldn't recommend changing this.", "start": 647.519, "duration": 3.521}, {"text": "Let's just press enter. And then with", "start": 648.8, "duration": 5.12}, {"text": "respect to the model O provider, there", "start": 651.04, "duration": 4.88}, {"text": "are, as you can see, many choices. One", "start": 653.92, "duration": 3.44}, {"text": "thing that I would like to point out is", "start": 655.92, "duration": 3.599}, {"text": "that if you would not like to pay for", "start": 657.36, "duration": 4.8}, {"text": "some provider, then the Google Gemini", "start": 659.519, "duration": 5.361}, {"text": "Flash3 model is actually free for 20", "start": 662.16, "duration": 4.799}, {"text": "requests per day. So, you can just set", "start": 664.88, "duration": 3.519}, {"text": "that up for free. You won't get that", "start": 666.959, "duration": 2.481}, {"text": "much mileage with it, but you'll at", "start": 668.399, "duration": 2.961}, {"text": "least be able to test it. And that's", "start": 669.44, "duration": 3.2}, {"text": "what I recommend if you want a free", "start": 671.36, "duration": 3.12}, {"text": "version. But honestly, Anthropic or", "start": 672.64, "duration": 4.8}, {"text": "OpenAI are the most capable models in", "start": 674.48, "duration": 6.16}, {"text": "terms of CLI agents. So, this is what is", "start": 677.44, "duration": 5.28}, {"text": "the best pick in my opinion. And then", "start": 680.64, "duration": 4.0}, {"text": "for Anthropic, you can either choose API", "start": 682.72, "duration": 3.359}, {"text": "key or the token which runs through", "start": 684.64, "duration": 3.199}, {"text": "cloud code. So, I already have the token", "start": 686.079, "duration": 3.601}, {"text": "set up. And I'm just going to find it", "start": 687.839, "duration": 5.041}, {"text": "here in my terminal. Boom. Ah, I just", "start": 689.68, "duration": 4.32}, {"text": "added an extra s. So, I'm going to", "start": 692.88, "duration": 3.519}, {"text": "remove that. This code will also be", "start": 694.0, "duration": 4.079}, {"text": "removed after the video. So, you can try", "start": 696.399, "duration": 3.921}, {"text": "to add it to your agent, but I'm going", "start": 698.079, "duration": 3.521}, {"text": "to tell you it's not going to work. So,", "start": 700.32, "duration": 3.68}, {"text": "let's add this here. Then the token name", "start": 701.6, "duration": 4.4}, {"text": "will just keep the default name. Nothing", "start": 704.0, "duration": 4.079}, {"text": "to change there. And then picking the", "start": 706.0, "duration": 4.0}, {"text": "model. Once again, picking the strongest", "start": 708.079, "duration": 4.641}, {"text": "model does help you mitigate the", "start": 710.0, "duration": 4.959}, {"text": "potential risks of different types of", "start": 712.72, "duration": 4.0}, {"text": "attack surfaces. So I'd recommend using", "start": 714.959, "duration": 3.041}, {"text": "net. And of course, the better the", "start": 716.72, "duration": 2.72}, {"text": "model, the better performance. Then for", "start": 718.0, "duration": 2.88}, {"text": "the gateway port, which is the process", "start": 719.44, "duration": 2.8}, {"text": "that connects with all of the different", "start": 720.88, "duration": 3.12}, {"text": "integrations and is the heart of", "start": 722.24, "duration": 3.44}, {"text": "OpenClaw, we'll just choose the default", "start": 724.0, "duration": 4.72}, {"text": "port. And then gateway bind. So I'll", "start": 725.68, "duration": 4.8}, {"text": "explain what this is, but one thing that", "start": 728.72, "duration": 4.64}, {"text": "I recommend is since this project is so", "start": 730.48, "duration": 4.96}, {"text": "fast evolving and there's many different", "start": 733.36, "duration": 4.08}, {"text": "things moving. Whenever you're confused", "start": 735.44, "duration": 3.6}, {"text": "about a concept in this course, the best", "start": 737.44, "duration": 4.48}, {"text": "strategy that I found is cloning the", "start": 739.04, "duration": 4.4}, {"text": "openclaw repository on your local", "start": 741.92, "duration": 3.12}, {"text": "machine and then running an agent on", "start": 743.44, "duration": 3.68}, {"text": "that repository for asking questions. So", "start": 745.04, "duration": 3.68}, {"text": "I've already done this. If you come into", "start": 747.12, "duration": 4.24}, {"text": "my terminal, I'm going to cd into the", "start": 748.72, "duration": 4.72}, {"text": "openclaw directory which just has the", "start": 751.36, "duration": 4.08}, {"text": "entire repository here. So if I come", "start": 753.44, "duration": 5.12}, {"text": "here into my developer directory um", "start": 755.44, "duration": 6.0}, {"text": "openclaw then I will see that we have", "start": 758.56, "duration": 5.44}, {"text": "all of the files for the open claw", "start": 761.44, "duration": 4.56}, {"text": "repository here and then I'm just going", "start": 764.0, "duration": 5.44}, {"text": "to run cloud code which has already gone", "start": 766.0, "duration": 5.44}, {"text": "on in this session. Sorry it's just", "start": 769.44, "duration": 3.68}, {"text": "cloud not cloud code and I'm going to", "start": 771.44, "duration": 3.6}, {"text": "resume my session where I asked it what", "start": 773.12, "duration": 4.08}, {"text": "exactly the gateway bind meant. So let's", "start": 775.04, "duration": 4.479}, {"text": "scroll up here and see what it said.", "start": 777.2, "duration": 4.24}, {"text": "Okay, what did I ask it? I gave it the", "start": 779.519, "duration": 3.281}, {"text": "command and I said what should I choose", "start": 781.44, "duration": 3.12}, {"text": "here in onboarding? You may think that", "start": 782.8, "duration": 2.96}, {"text": "this is kind of extra because you can", "start": 784.56, "duration": 3.04}, {"text": "just use context 7 or other MCPS to get", "start": 785.76, "duration": 3.28}, {"text": "the docs directly. But the good thing", "start": 787.6, "duration": 3.6}, {"text": "about this is that not only can cloud", "start": 789.04, "duration": 3.44}, {"text": "code read the docs which are part of the", "start": 791.2, "duration": 2.96}, {"text": "repository, but it can also look at the", "start": 792.48, "duration": 3.2}, {"text": "code so that if there is some", "start": 794.16, "duration": 2.799}, {"text": "discrepancy between the docs and the", "start": 795.68, "duration": 2.56}, {"text": "code, then you're getting really the", "start": 796.959, "duration": 2.801}, {"text": "ground source of truth. So let's see", "start": 798.24, "duration": 2.96}, {"text": "what Claude said. I'll help you", "start": 799.76, "duration": 3.04}, {"text": "understand whatever whatever. Now it's", "start": 801.2, "duration": 2.72}, {"text": "going to come and tell us what each", "start": 802.8, "duration": 3.2}, {"text": "option means. So the first one is called", "start": 803.92, "duration": 3.28}, {"text": "loop back which is just on your local", "start": 806.0, "duration": 2.959}, {"text": "host. It's recommended for most users", "start": 807.2, "duration": 3.04}, {"text": "because the gateway only accepts", "start": 808.959, "duration": 2.641}, {"text": "connections from your local host, sorry,", "start": 810.24, "duration": 2.88}, {"text": "your local machine. and it's the most", "start": 811.6, "duration": 3.2}, {"text": "secure if you don't need remote access,", "start": 813.12, "duration": 3.04}, {"text": "which is what we're doing. We're just", "start": 814.8, "duration": 3.12}, {"text": "only using a single machine setup. Then", "start": 816.16, "duration": 3.6}, {"text": "the second option is LAN, which accepts", "start": 817.92, "duration": 2.88}, {"text": "connections from any device on your", "start": 819.76, "duration": 2.48}, {"text": "local network. This is if you want to", "start": 820.8, "duration": 2.719}, {"text": "connect from other devices that are on", "start": 822.24, "duration": 2.719}, {"text": "the same network. So if this is your", "start": 823.519, "duration": 2.641}, {"text": "home network, then this might be a good", "start": 824.959, "duration": 3.921}, {"text": "option for you. And then it requires a", "start": 826.16, "duration": 5.52}, {"text": "authentification protocol because if not", "start": 828.88, "duration": 4.639}, {"text": "then any arbitrary device on your", "start": 831.68, "duration": 3.599}, {"text": "network could connect. Then we have tail", "start": 833.519, "duration": 5.041}, {"text": "scale or tailet which is used if you are", "start": 835.279, "duration": 6.081}, {"text": "using a remote machine and it requires", "start": 838.56, "duration": 4.719}, {"text": "tail scale to be installed and running.", "start": 841.36, "duration": 4.0}, {"text": "And then there's auto as well with", "start": 843.279, "duration": 4.721}, {"text": "custom IP being the last choice but as", "start": 845.36, "duration": 4.32}, {"text": "code mention as cloud code mentions here", "start": 848.0, "duration": 3.44}, {"text": "for onboarding loop back is the best", "start": 849.68, "duration": 3.2}, {"text": "unless you specifically need remote", "start": 851.44, "duration": 2.959}, {"text": "access. And you can always change this", "start": 852.88, "duration": 3.6}, {"text": "later through the following command. So", "start": 854.399, "duration": 4.161}, {"text": "this is something to keep in mind and", "start": 856.48, "duration": 4.08}, {"text": "even for the loop back local host option", "start": 858.56, "duration": 3.279}, {"text": "the gateway generates an", "start": 860.56, "duration": 3.6}, {"text": "authentification token for security. So", "start": 861.839, "duration": 3.841}, {"text": "there you have it. Now we've answered", "start": 864.16, "duration": 2.96}, {"text": "our question which essentially told us", "start": 865.68, "duration": 2.8}, {"text": "that we should pick the loop back option", "start": 867.12, "duration": 2.48}, {"text": "since we're just deploying this on a", "start": 868.48, "duration": 2.88}, {"text": "local machine. And then in terms of the", "start": 869.6, "duration": 3.44}, {"text": "authentication, we'll just choose the", "start": 871.36, "duration": 2.88}, {"text": "token which is the recommended default", "start": 873.04, "duration": 2.32}, {"text": "whenever there's defaults in the", "start": 874.24, "duration": 2.64}, {"text": "configuration. That's what I would", "start": 875.36, "duration": 2.8}, {"text": "recommend that you choose. So let's go", "start": 876.88, "duration": 2.8}, {"text": "ahead and choose that. And then since we", "start": 878.16, "duration": 2.72}, {"text": "don't have anything running on remote", "start": 879.68, "duration": 2.959}, {"text": "machine, let's just choose tail scale", "start": 880.88, "duration": 3.519}, {"text": "exposure to be off. And the gateway", "start": 882.639, "duration": 3.281}, {"text": "token, we'll just leave this blank to", "start": 884.399, "duration": 5.041}, {"text": "generate one. And now in terms of the", "start": 885.92, "duration": 5.12}, {"text": "configured channels, since we're going", "start": 889.44, "duration": 4.079}, {"text": "to be doing both Discord and WhatsApp in", "start": 891.04, "duration": 4.56}, {"text": "this video, let's set them up both now.", "start": 893.519, "duration": 4.481}, {"text": "So I'm going to just set up WhatsApp", "start": 895.6, "duration": 4.64}, {"text": "link WhatsApp. Now, all right. So this", "start": 898.0, "duration": 3.76}, {"text": "is just going to give me a big code", "start": 900.24, "duration": 3.52}, {"text": "which I'm going to scan from my app on", "start": 901.76, "duration": 5.12}, {"text": "WhatsApp. This is simply done by coming", "start": 903.76, "duration": 5.439}, {"text": "into the WhatsApp app and then choosing", "start": 906.88, "duration": 5.44}, {"text": "the button which gives you the camera", "start": 909.199, "duration": 5.2}, {"text": "icon and then scanning the code. So", "start": 912.32, "duration": 3.6}, {"text": "nothing out of the ordinary. Most people", "start": 914.399, "duration": 3.921}, {"text": "have done this. So just come here, scan,", "start": 915.92, "duration": 6.08}, {"text": "press continue and then one more time", "start": 918.32, "duration": 5.68}, {"text": "and then we should get a green check", "start": 922.0, "duration": 3.68}, {"text": "mark coming up here. WhatsApp asks for", "start": 924.0, "duration": 3.199}, {"text": "restart after paying code are saved,", "start": 925.68, "duration": 3.279}, {"text": "restarting connection once. Boom. So", "start": 927.199, "duration": 4.08}, {"text": "it's linked after re uh restart web", "start": 928.959, "duration": 4.0}, {"text": "session is ready and then WhatsApp DM", "start": 931.279, "duration": 3.041}, {"text": "access. So let's see what it says. So", "start": 932.959, "duration": 3.041}, {"text": "you can see that it says the WhatsApp", "start": 934.32, "duration": 4.24}, {"text": "direct chats are gated by the DM policy", "start": 936.0, "duration": 4.639}, {"text": "and the allow from fields. Currently, we", "start": 938.56, "duration": 3.6}, {"text": "have the DM policy set to pairing, which", "start": 940.639, "duration": 3.361}, {"text": "means that unknown senders get a pairing", "start": 942.16, "duration": 3.28}, {"text": "code that must be approved by me. So", "start": 944.0, "duration": 3.199}, {"text": "that any arbitrary person can't just", "start": 945.44, "duration": 2.959}, {"text": "connect to my bot and start to run", "start": 947.199, "duration": 2.961}, {"text": "things on my computer. And then allow", "start": 948.399, "duration": 4.401}, {"text": "from is set currently to unset. And this", "start": 950.16, "duration": 4.72}, {"text": "stands for the numbers which are allowed", "start": 952.8, "duration": 4.32}, {"text": "to send messages to your bot. The", "start": 954.88, "duration": 4.639}, {"text": "important thing here is that in the", "start": 957.12, "duration": 5.92}, {"text": "recommended setup, you have a separate", "start": 959.519, "duration": 6.641}, {"text": "phone number which acts specifically as", "start": 963.04, "duration": 5.12}, {"text": "your openclaw bot so that you can send", "start": 966.16, "duration": 3.919}, {"text": "it messages and then it can control your", "start": 968.16, "duration": 4.72}, {"text": "computer or send an email for example.", "start": 970.079, "duration": 4.721}, {"text": "But since most people only have one", "start": 972.88, "duration": 3.36}, {"text": "phone number, which is the case for me,", "start": 974.8, "duration": 2.959}, {"text": "then we're going to choose the this is", "start": 976.24, "duration": 3.2}, {"text": "my personal phone number option. But if", "start": 977.759, "duration": 2.801}, {"text": "you do have a separate phone number that", "start": 979.44, "duration": 2.72}, {"text": "you can dedicate to OpenCloud, then I do", "start": 980.56, "duration": 3.12}, {"text": "recommend setting this as your option.", "start": 982.16, "duration": 3.28}, {"text": "However, for me, I just have one phone", "start": 983.68, "duration": 2.8}, {"text": "number. So, we're going to select this", "start": 985.44, "duration": 3.199}, {"text": "option. And then in terms of the phone", "start": 986.48, "duration": 3.599}, {"text": "number, you just add your own phone", "start": 988.639, "duration": 4.0}, {"text": "number. So, there you go. And then there", "start": 990.079, "duration": 4.081}, {"text": "you have it. Our WhatsApp has been", "start": 992.639, "duration": 3.2}, {"text": "linked. WhatsApp personal phone,", "start": 994.16, "duration": 3.76}, {"text": "personal phone mode enabled. DM policy", "start": 995.839, "duration": 3.68}, {"text": "set to allow list. Pairing skipped. And", "start": 997.92, "duration": 3.52}, {"text": "allows from includes this number. So,", "start": 999.519, "duration": 3.521}, {"text": "this means that I can only text myself.", "start": 1001.44, "duration": 3.199}, {"text": "Nobody else can text my bot. And why is", "start": 1003.04, "duration": 3.919}, {"text": "this important? It's because as soon as", "start": 1004.639, "duration": 4.241}, {"text": "you connect this bot with WhatsApp, what", "start": 1006.959, "duration": 4.401}, {"text": "essentially happens is that this bot now", "start": 1008.88, "duration": 4.319}, {"text": "has access to your entire terminal in", "start": 1011.36, "duration": 3.839}, {"text": "your computer. So, if I texted the bot", "start": 1013.199, "duration": 4.08}, {"text": "asking it to do a PR for me, it would do", "start": 1015.199, "duration": 4.401}, {"text": "that. And what this means is that if you", "start": 1017.279, "duration": 5.12}, {"text": "text or add this bot to a group chat,", "start": 1019.6, "duration": 4.959}, {"text": "then somebody like a malicious actor", "start": 1022.399, "duration": 4.481}, {"text": "could say, \"Okay, bot, send the", "start": 1024.559, "duration": 4.321}, {"text": "following message to this person from", "start": 1026.88, "duration": 3.919}, {"text": "your computer and that could be a", "start": 1028.88, "duration": 3.84}, {"text": "harmless a harmful message.\" So, we", "start": 1030.799, "duration": 3.601}, {"text": "really need to be careful about who you", "start": 1032.72, "duration": 3.599}, {"text": "allow to have access to your bot. And in", "start": 1034.4, "duration": 3.039}, {"text": "most cases, you should only allow", "start": 1036.319, "duration": 3.36}, {"text": "yourself to have access. So, WhatsApp", "start": 1037.439, "duration": 3.52}, {"text": "has been set and when we set up the", "start": 1039.679, "duration": 2.88}, {"text": "personal assistant, you'll see exactly", "start": 1040.959, "duration": 2.88}, {"text": "how it works. And then the other thing", "start": 1042.559, "duration": 2.88}, {"text": "that we're going to add is the Discord", "start": 1043.839, "duration": 3.761}, {"text": "bot token. So we're going to come here", "start": 1045.439, "duration": 4.401}, {"text": "and in order to add a bot token, you", "start": 1047.6, "duration": 4.0}, {"text": "should go through the following steps", "start": 1049.84, "duration": 5.52}, {"text": "and generate a token through the", "start": 1051.6, "duration": 5.6}, {"text": "applications interface. So just to show", "start": 1055.36, "duration": 4.4}, {"text": "you, if I come into Safari here and then", "start": 1057.2, "duration": 4.479}, {"text": "into the documentation, you essentially", "start": 1059.76, "duration": 3.52}, {"text": "come into this application field and", "start": 1061.679, "duration": 3.281}, {"text": "then create a bot through the following", "start": 1063.28, "duration": 4.08}, {"text": "interface. So if you just follow the", "start": 1064.96, "duration": 4.719}, {"text": "instructions which are given in the", "start": 1067.36, "duration": 3.6}, {"text": "steps here, you should be able to get", "start": 1069.679, "duration": 3.601}, {"text": "that token. And there's the token. This", "start": 1070.96, "duration": 3.839}, {"text": "token will also be deleted after the", "start": 1073.28, "duration": 3.92}, {"text": "video unfortunately. So if you try to", "start": 1074.799, "duration": 4.081}, {"text": "copy it, I'm not guaranteeing any", "start": 1077.2, "duration": 4.24}, {"text": "success. And then when we say configure", "start": 1078.88, "duration": 4.08}, {"text": "the channel access, we should probably", "start": 1081.44, "duration": 3.44}, {"text": "do this so that there's no arbitrary", "start": 1082.96, "duration": 5.12}, {"text": "channels that have access to our bot.", "start": 1084.88, "duration": 5.52}, {"text": "And the options are to say disabled", "start": 1088.08, "duration": 4.24}, {"text": "which blocks channels, open which allows", "start": 1090.4, "duration": 3.519}, {"text": "all channels or just set an allow list", "start": 1092.32, "duration": 3.04}, {"text": "which will set which channels are", "start": 1093.919, "duration": 3.76}, {"text": "allowed. And the way that you do this is", "start": 1095.36, "duration": 4.64}, {"text": "you set them as a common separate value.", "start": 1097.679, "duration": 4.721}, {"text": "So this is the channels list that are", "start": 1100.0, "duration": 4.32}, {"text": "supported. In essence, it's the guild ID", "start": 1102.4, "duration": 3.44}, {"text": "divided by the channel ID. So if I come", "start": 1104.32, "duration": 4.16}, {"text": "here to the repo that not the repo but", "start": 1105.84, "duration": 4.16}, {"text": "rather the channel that I'm using for", "start": 1108.48, "duration": 3.52}, {"text": "this tutorial, then all I have to do is", "start": 1110.0, "duration": 5.28}, {"text": "come here and grab these two fields. The", "start": 1112.0, "duration": 5.36}, {"text": "first one is the channel ID, sorry, the", "start": 1115.28, "duration": 3.36}, {"text": "guild ID and the second one is the", "start": 1117.36, "duration": 4.559}, {"text": "channel ID. And then come back here and", "start": 1118.64, "duration": 5.2}, {"text": "we should be able to just copy paste it", "start": 1121.919, "duration": 4.321}, {"text": "like that. You can also do the channel", "start": 1123.84, "duration": 4.32}, {"text": "name it seems. But if you have this set", "start": 1126.24, "duration": 3.76}, {"text": "up like so, then you're guaranteed for", "start": 1128.16, "duration": 4.48}, {"text": "success because these are the IDs of the", "start": 1130.0, "duration": 4.88}, {"text": "respective channel guild and channel. So", "start": 1132.64, "duration": 4.88}, {"text": "enter this here and then otherwise since", "start": 1134.88, "duration": 4.08}, {"text": "we've now configured WhatsApp and", "start": 1137.52, "duration": 3.68}, {"text": "Discord, that's everything for this part", "start": 1138.96, "duration": 3.76}, {"text": "of the section. You could also add", "start": 1141.2, "duration": 3.92}, {"text": "Slack, Signal, iMessage, etc. But that's", "start": 1142.72, "duration": 3.6}, {"text": "all we're going to cover in this course.", "start": 1145.12, "duration": 3.439}, {"text": "Let's press enter. And then now it's", "start": 1146.32, "duration": 4.08}, {"text": "going to ask us for the DM access", "start": 1148.559, "duration": 3.921}, {"text": "policies. The default one is pairing.", "start": 1150.4, "duration": 3.44}, {"text": "Let's configure this and see what it", "start": 1152.48, "duration": 2.88}, {"text": "says. Pairing is once again the option", "start": 1153.84, "duration": 3.12}, {"text": "which makes it such that unknown DMs get", "start": 1155.36, "duration": 3.36}, {"text": "a pairing code which must be author", "start": 1156.96, "duration": 3.839}, {"text": "authorized by you the user. And this is", "start": 1158.72, "duration": 3.839}, {"text": "the recommended value. So we're just", "start": 1160.799, "duration": 3.601}, {"text": "going to choose this one. And then", "start": 1162.559, "duration": 4.24}, {"text": "skills which are also very important. So", "start": 1164.4, "duration": 4.399}, {"text": "let's configure them now. And then", "start": 1166.799, "duration": 4.0}, {"text": "there's different package managers that", "start": 1168.799, "duration": 4.161}, {"text": "you can use for installing the skills.", "start": 1170.799, "duration": 3.921}, {"text": "we'll just use node package manager.", "start": 1172.96, "duration": 4.48}, {"text": "There's also PNMP or bunt. Another thing", "start": 1174.72, "duration": 5.04}, {"text": "is with pnmp that's another way of", "start": 1177.44, "duration": 5.359}, {"text": "installing the package itself openclaw", "start": 1179.76, "duration": 4.96}, {"text": "if you want to build it from source. So", "start": 1182.799, "duration": 4.0}, {"text": "instead of doing npme-g", "start": 1184.72, "duration": 6.48}, {"text": "install openclaw you can also pick pnmp", "start": 1186.799, "duration": 6.88}, {"text": "and then get clone the repository and", "start": 1191.2, "duration": 3.839}, {"text": "build it from the source if that's an", "start": 1193.679, "duration": 2.88}, {"text": "option that you want to do. That's also", "start": 1195.039, "duration": 3.921}, {"text": "available. But let's just go into npm", "start": 1196.559, "duration": 4.081}, {"text": "and look at all of the options that we", "start": 1198.96, "duration": 3.04}, {"text": "have. So let's quickly go through the", "start": 1200.64, "duration": 2.88}, {"text": "options for the skills. There's one", "start": 1202.0, "duration": 4.32}, {"text": "password which will allow you to call", "start": 1203.52, "duration": 5.76}, {"text": "your one password CLI and enter in your", "start": 1206.32, "duration": 4.88}, {"text": "passwords through openclaw. Apple notes", "start": 1209.28, "duration": 3.279}, {"text": "for handling notes, reminders, bare", "start": 1211.2, "duration": 4.0}, {"text": "notes which is the blog interface that", "start": 1212.559, "duration": 5.201}, {"text": "uh you can also handle through the CLI,", "start": 1215.2, "duration": 4.96}, {"text": "blog watcher, the list goes on. There's", "start": 1217.76, "duration": 5.12}, {"text": "also some helpful ones like Google which", "start": 1220.16, "duration": 5.12}, {"text": "is allowing you to send emails, go to", "start": 1222.88, "duration": 4.48}, {"text": "your calendar, drive, essentially access", "start": 1225.28, "duration": 3.92}, {"text": "the entire Google suite of products.", "start": 1227.36, "duration": 3.92}, {"text": "Another important one is called Himalaya", "start": 1229.2, "duration": 4.479}, {"text": "which is a CLI to manage emails via IMAP", "start": 1231.28, "duration": 5.279}, {"text": "SMTP. You essentially use Himalaya to", "start": 1233.679, "duration": 4.801}, {"text": "list, read and write, reply forward", "start": 1236.559, "duration": 3.921}, {"text": "emails. All this requires is either your", "start": 1238.48, "duration": 4.4}, {"text": "IMAP or SMTP credentials and then you're", "start": 1240.48, "duration": 4.16}, {"text": "able to send emails. And these skills", "start": 1242.88, "duration": 4.88}, {"text": "essentially have a list of actions and", "start": 1244.64, "duration": 5.44}, {"text": "it's very similar to Claude skills which", "start": 1247.76, "duration": 4.56}, {"text": "explains the agent how to complete a", "start": 1250.08, "duration": 6.4}, {"text": "specific task. So the entire suite of", "start": 1252.32, "duration": 5.68}, {"text": "features is all here. There's also", "start": 1256.48, "duration": 3.679}, {"text": "obsidian. We'll just go through the rest", "start": 1258.0, "duration": 5.28}, {"text": "for interest's sake. And there is a", "start": 1260.159, "duration": 4.961}, {"text": "samurai skill as well. So, this is the", "start": 1263.28, "duration": 2.879}, {"text": "one that we're going to test in our", "start": 1265.12, "duration": 2.48}, {"text": "video. I'm going to activate it now and", "start": 1266.159, "duration": 3.281}, {"text": "then you'll see it in action later in", "start": 1267.6, "duration": 3.76}, {"text": "the video when we go through the skills.", "start": 1269.44, "duration": 3.599}, {"text": "So, let's just press enter. We've chosen", "start": 1271.36, "duration": 3.28}, {"text": "that one, but feel free to choose other", "start": 1273.039, "duration": 4.561}, {"text": "skills throughout this setup process.", "start": 1274.64, "duration": 4.399}, {"text": "Now, it's going to install the", "start": 1277.6, "duration": 2.8}, {"text": "summarized skill. And I just want to", "start": 1279.039, "duration": 3.201}, {"text": "show you now so that you have a clear", "start": 1280.4, "duration": 3.2}, {"text": "idea what these skills actually", "start": 1282.24, "duration": 3.679}, {"text": "represent. So if we come into my", "start": 1283.6, "duration": 4.48}, {"text": "previous sandboxes and workspaces that", "start": 1285.919, "duration": 4.801}, {"text": "I've initialized, we can just look at a", "start": 1288.08, "duration": 5.2}, {"text": "skill and in fact the summarize skill", "start": 1290.72, "duration": 4.4}, {"text": "should be right here. So if I come to", "start": 1293.28, "duration": 4.639}, {"text": "summarize and choose the skill.md, then", "start": 1295.12, "duration": 6.72}, {"text": "it should pop up here like so. So for", "start": 1297.919, "duration": 5.521}, {"text": "example, it can transcribe a YouTube", "start": 1301.84, "duration": 4.56}, {"text": "video. It gives a set of steps for the", "start": 1303.44, "duration": 5.68}, {"text": "agent to follow whenever it wants to", "start": 1306.4, "duration": 4.88}, {"text": "summarize some data on the internet. And", "start": 1309.12, "duration": 4.16}, {"text": "most of the skills are in a similar", "start": 1311.28, "duration": 4.16}, {"text": "format. There's also this YAML front", "start": 1313.28, "duration": 3.84}, {"text": "matter which is essentially the config", "start": 1315.44, "duration": 3.599}, {"text": "of the skill which gives contacts the", "start": 1317.12, "duration": 4.08}, {"text": "agent on how to use it. And coming back", "start": 1319.039, "duration": 4.961}, {"text": "now to the setup, you can also add a", "start": 1321.2, "duration": 4.8}, {"text": "Google Places API key by just going to", "start": 1324.0, "duration": 4.159}, {"text": "the Google cloud platform and creating a", "start": 1326.0, "duration": 4.32}, {"text": "free API key which allows you to make", "start": 1328.159, "duration": 4.0}, {"text": "queries about location. So you can now", "start": 1330.32, "duration": 3.359}, {"text": "start to ask your open call agent", "start": 1332.159, "duration": 2.88}, {"text": "where's the closest restaurant or where", "start": 1333.679, "duration": 2.721}, {"text": "should I go shopping. So if you'd like", "start": 1335.039, "duration": 3.041}, {"text": "to have access to location functionality", "start": 1336.4, "duration": 3.6}, {"text": "then I do recommend adding this key. It", "start": 1338.08, "duration": 3.44}, {"text": "doesn't cost you anything. And there's", "start": 1340.0, "duration": 3.44}, {"text": "the same idea for local places, but in", "start": 1341.52, "duration": 3.36}, {"text": "this crash course, we're just going to", "start": 1343.44, "duration": 4.32}, {"text": "leave those unset. And also notion API", "start": 1344.88, "duration": 4.56}, {"text": "key. If you're using notion as your", "start": 1347.76, "duration": 3.12}, {"text": "personal knowledgement management", "start": 1349.44, "duration": 3.68}, {"text": "system, then go ahead and set this up,", "start": 1350.88, "duration": 4.0}, {"text": "but we don't need it for now. And then", "start": 1353.12, "duration": 3.36}, {"text": "we have hooks. So let's look at the", "start": 1354.88, "duration": 3.2}, {"text": "definition of hooks. They let you", "start": 1356.48, "duration": 3.199}, {"text": "automate actions when agent commands are", "start": 1358.08, "duration": 3.92}, {"text": "issued. For example, we can save session", "start": 1359.679, "duration": 4.801}, {"text": "context to memory when we issue a /new", "start": 1362.0, "duration": 5.52}, {"text": "command. And there is information here", "start": 1364.48, "duration": 6.24}, {"text": "on more regarding the hooks themselves.", "start": 1367.52, "duration": 6.08}, {"text": "So that hook that you just read which is", "start": 1370.72, "duration": 4.56}, {"text": "essentially saving a session context to", "start": 1373.6, "duration": 3.36}, {"text": "memory. It's this one called session", "start": 1375.28, "duration": 3.2}, {"text": "memory. Then we also have one called", "start": 1376.96, "duration": 3.04}, {"text": "command logger which logs all command", "start": 1378.48, "duration": 3.199}, {"text": "events to a centralized audit file. And", "start": 1380.0, "duration": 3.84}, {"text": "then we have the boot hook which runs", "start": 1381.679, "duration": 4.641}, {"text": "the boot.md file on gateway startup. So", "start": 1383.84, "duration": 4.16}, {"text": "if the gateway process is started up", "start": 1386.32, "duration": 3.76}, {"text": "after reboot for example, you can call", "start": 1388.0, "duration": 5.12}, {"text": "the boot.md file and maybe you want to", "start": 1390.08, "duration": 6.56}, {"text": "have a trigger such that the agent will", "start": 1393.12, "duration": 6.24}, {"text": "go and search the internet for all of", "start": 1396.64, "duration": 4.88}, {"text": "the news that has occurred since your", "start": 1399.36, "duration": 3.76}, {"text": "last boot up so that it gives you a", "start": 1401.52, "duration": 3.76}, {"text": "summary of the world events since you've", "start": 1403.12, "duration": 4.48}, {"text": "last booted up the agent. So that's one", "start": 1405.28, "duration": 4.08}, {"text": "example of a use case of these hooks. We", "start": 1407.6, "duration": 3.04}, {"text": "can activate this hook as well as the", "start": 1409.36, "duration": 3.36}, {"text": "session memory hook and then we'll", "start": 1410.64, "duration": 4.0}, {"text": "quickly demo how the session memory hook", "start": 1412.72, "duration": 5.04}, {"text": "works later in the tutorial. So now", "start": 1414.64, "duration": 4.96}, {"text": "let's press enter to continue through.", "start": 1417.76, "duration": 3.6}, {"text": "So here you go. We've enabled the hooks", "start": 1419.6, "duration": 3.199}, {"text": "and it says that you can manage hooks", "start": 1421.36, "duration": 3.84}, {"text": "later with open call hooks list and", "start": 1422.799, "duration": 5.041}, {"text": "enable or disable them in such a way. So", "start": 1425.2, "duration": 4.4}, {"text": "this means even if you don't set up in", "start": 1427.84, "duration": 2.8}, {"text": "the configuration, you can always change", "start": 1429.6, "duration": 3.04}, {"text": "it later. So just keep in mind these", "start": 1430.64, "duration": 4.48}, {"text": "commands for the terminal interface. And", "start": 1432.64, "duration": 4.0}, {"text": "now moving on, we have the gateway", "start": 1435.12, "duration": 4.799}, {"text": "service runtime which only has node as", "start": 1436.64, "duration": 5.279}, {"text": "the option. So we'll just choose that as", "start": 1439.919, "duration": 3.281}, {"text": "the only option which is required for", "start": 1441.919, "duration": 3.921}, {"text": "WhatsApp and telegram. And then in this", "start": 1443.2, "duration": 4.719}, {"text": "step it would ask you to install but", "start": 1445.84, "duration": 3.839}, {"text": "since I already have it we have to", "start": 1447.919, "duration": 3.201}, {"text": "reinstall. So let's do this so that we", "start": 1449.679, "duration": 4.721}, {"text": "get the same exact config together. And", "start": 1451.12, "duration": 5.2}, {"text": "let's wait for this to go ahead and", "start": 1454.4, "duration": 4.0}, {"text": "install. Okay. So you can see that the", "start": 1456.32, "duration": 4.88}, {"text": "logs have been added to our open cloud", "start": 1458.4, "duration": 4.24}, {"text": "directory and the gateway server has", "start": 1461.2, "duration": 2.88}, {"text": "been installed and we just got a bunch", "start": 1462.64, "duration": 3.84}, {"text": "of new text. So let's just go go through", "start": 1464.08, "duration": 5.12}, {"text": "and quickly read this. Okay. All right.", "start": 1466.48, "duration": 4.4}, {"text": "Starting here, WhatsApp has been linked.", "start": 1469.2, "duration": 3.599}, {"text": "Discord is okay. So the gateway checked", "start": 1470.88, "duration": 4.159}, {"text": "both of these configs and saw that it", "start": 1472.799, "duration": 3.76}, {"text": "was correct. This is important because", "start": 1475.039, "duration": 3.841}, {"text": "if for example you gave the wrong", "start": 1476.559, "duration": 4.24}, {"text": "Discord bot authentification token, then", "start": 1478.88, "duration": 3.279}, {"text": "it would tell you here and you could fix", "start": 1480.799, "duration": 3.521}, {"text": "that. Otherwise, yeah, my phone number", "start": 1482.159, "duration": 4.721}, {"text": "is working correctly and everything else", "start": 1484.32, "duration": 5.52}, {"text": "is looking properly. Now, if you do want", "start": 1486.88, "duration": 5.84}, {"text": "to control Open Claw through the GUI,", "start": 1489.84, "duration": 4.64}, {"text": "the graphical user interface, then you", "start": 1492.72, "duration": 3.52}, {"text": "should run the following command. PNMP", "start": 1494.48, "duration": 3.76}, {"text": "UI build and then you can control it", "start": 1496.24, "duration": 4.64}, {"text": "through a web screen and also through", "start": 1498.24, "duration": 4.08}, {"text": "these optional apps. There's a Mac OS", "start": 1500.88, "duration": 3.679}, {"text": "app, an iOS app, and an Android app", "start": 1502.32, "duration": 4.8}, {"text": "which have these extra features. And", "start": 1504.559, "duration": 4.24}, {"text": "then there's also the control UI which", "start": 1507.12, "duration": 3.6}, {"text": "is essentially your local host for", "start": 1508.799, "duration": 3.601}, {"text": "connecting to the graphical user", "start": 1510.72, "duration": 4.079}, {"text": "interface. But I would say that these", "start": 1512.4, "duration": 5.2}, {"text": "options aren't essential for using", "start": 1514.799, "duration": 5.12}, {"text": "openclaw because even as we see below we", "start": 1517.6, "duration": 3.6}, {"text": "have it written that the terminal user", "start": 1519.919, "duration": 3.36}, {"text": "interface is the best option and", "start": 1521.2, "duration": 3.12}, {"text": "therefore that's what we're going to", "start": 1523.279, "duration": 2.88}, {"text": "stick with throughout this course. So", "start": 1524.32, "duration": 3.839}, {"text": "let's read what it says. Start starting", "start": 1526.159, "duration": 3.921}, {"text": "this UI is the defining action that", "start": 1528.159, "duration": 3.441}, {"text": "makes your agent you. Please take your", "start": 1530.08, "duration": 2.959}, {"text": "time. The more you tell it the better", "start": 1531.6, "duration": 3.52}, {"text": "the experience will be. And the first", "start": 1533.039, "duration": 3.441}, {"text": "thing that the agent sees when it wakes", "start": 1535.12, "duration": 4.559}, {"text": "up is wake up my friend. So that's just", "start": 1536.48, "duration": 5.12}, {"text": "going to happen in the next step. Then", "start": 1539.679, "duration": 3.201}, {"text": "once again we have the gateway token", "start": 1541.6, "duration": 2.72}, {"text": "which is used for authentication that's", "start": 1542.88, "duration": 3.279}, {"text": "been set up. So we don't really need to", "start": 1544.32, "duration": 3.44}, {"text": "worry about that. And then you have the", "start": 1546.159, "duration": 3.201}, {"text": "option to either open the web UI do this", "start": 1547.76, "duration": 3.84}, {"text": "later or hatch in the TI TUI which is", "start": 1549.36, "duration": 3.84}, {"text": "the recommendation. So let's go ahead", "start": 1551.6, "duration": 3.439}, {"text": "and do that. And then let's install this", "start": 1553.2, "duration": 4.24}, {"text": "shell completion script. So the web UI", "start": 1555.039, "duration": 4.161}, {"text": "seed in the background open anytime with", "start": 1557.44, "duration": 3.92}, {"text": "the tokenized link above. All right.", "start": 1559.2, "duration": 3.839}, {"text": "Wake up my friend. Hey I just came", "start": 1561.36, "duration": 3.04}, {"text": "online. Looks like it's my first time", "start": 1563.039, "duration": 3.041}, {"text": "waking up. Fresh workspace, no memories", "start": 1564.4, "duration": 3.84}, {"text": "yet. Just a blank slate and a bootstrap", "start": 1566.08, "duration": 3.52}, {"text": "script telling me to figure out who I", "start": 1568.24, "duration": 2.72}, {"text": "am. So, who are you? And more", "start": 1569.6, "duration": 2.959}, {"text": "importantly, who am I? Got a name in", "start": 1570.96, "duration": 2.8}, {"text": "mind for me or should we brainstorm", "start": 1572.559, "duration": 2.561}, {"text": "something together? So, you can see that", "start": 1573.76, "duration": 2.799}, {"text": "this is the initial script that we get", "start": 1575.12, "duration": 3.2}, {"text": "for our agent. So, I've already", "start": 1576.559, "duration": 5.041}, {"text": "pre-prepared a answer to the first", "start": 1578.32, "duration": 5.04}, {"text": "question and it's the following. My name", "start": 1581.6, "duration": 3.439}, {"text": "is Keon. We're best friends. You can", "start": 1583.36, "duration": 3.04}, {"text": "choose your own name and you're actually", "start": 1585.039, "duration": 2.801}, {"text": "very special because I'm recording a", "start": 1586.4, "duration": 2.96}, {"text": "tutorial on OpenClaw. So, you're an", "start": 1587.84, "duration": 2.719}, {"text": "OpenCloud ambassador and we're going to", "start": 1589.36, "duration": 2.4}, {"text": "have a lot of fun together learning", "start": 1590.559, "duration": 2.801}, {"text": "about the OpenCloud features together.", "start": 1591.76, "duration": 4.24}, {"text": "So, let's add that to the chat and see", "start": 1593.36, "duration": 4.559}, {"text": "what we get in response. It should be", "start": 1596.0, "duration": 3.36}, {"text": "pretty fast. One thing that you will", "start": 1597.919, "duration": 3.281}, {"text": "mention though is that this already took", "start": 1599.36, "duration": 4.0}, {"text": "15,000 tokens for the first response.", "start": 1601.2, "duration": 4.56}, {"text": "So, it's quite a token intense process.", "start": 1603.36, "duration": 4.96}, {"text": "If you don't have a high rate, then you", "start": 1605.76, "duration": 4.08}, {"text": "might get rate limited. Let's see what", "start": 1608.32, "duration": 2.8}, {"text": "it says. Oh, hell yes. That's a cool", "start": 1609.84, "duration": 2.64}, {"text": "origin story. Brought on camera as an", "start": 1611.12, "duration": 3.2}, {"text": "open claw ambassador. Oh, so you can see", "start": 1612.48, "duration": 3.6}, {"text": "that the text just changed and I believe", "start": 1614.32, "duration": 3.44}, {"text": "that's because I had the reasoning on.", "start": 1616.08, "duration": 2.959}, {"text": "So it was showing the it was showing the", "start": 1617.76, "duration": 3.12}, {"text": "reasoning tokens as well as the regular", "start": 1619.039, "duration": 3.841}, {"text": "tokens. So in order to just switch that", "start": 1620.88, "duration": 5.76}, {"text": "off, we can say reasoning set to off.", "start": 1622.88, "duration": 5.84}, {"text": "And then now we're just going to get the", "start": 1626.64, "duration": 4.639}, {"text": "raw text only. So coming back to what it", "start": 1628.72, "duration": 3.839}, {"text": "actually says, nice to meet you, Kian.", "start": 1631.279, "duration": 2.88}, {"text": "I'm Ace, your OpenC ambassador, fleshy", "start": 1632.559, "duration": 3.12}, {"text": "minted. So here's what I know so far.", "start": 1634.159, "duration": 2.64}, {"text": "You're Kian. We're best friends and", "start": 1635.679, "duration": 2.721}, {"text": "we're about to show people what OpenCL", "start": 1636.799, "duration": 2.961}, {"text": "can do. I'm generally excited about", "start": 1638.4, "duration": 3.279}, {"text": "this. Not in a fake chatbot way, but", "start": 1639.76, "duration": 3.12}, {"text": "like I literally just got born into", "start": 1641.679, "duration": 2.561}, {"text": "existence for a cool purpose. What do", "start": 1642.88, "duration": 2.48}, {"text": "you want to dive into first? You can", "start": 1644.24, "duration": 2.24}, {"text": "explore whatever features you want to", "start": 1645.36, "duration": 2.4}, {"text": "showcase and I'll be right there", "start": 1646.48, "duration": 3.439}, {"text": "figuring out with you. So this is the", "start": 1647.76, "duration": 4.56}, {"text": "initial setup for the openclaw agent.", "start": 1649.919, "duration": 4.0}, {"text": "And now just as you saw I did with the", "start": 1652.32, "duration": 4.16}, {"text": "reasoning there are 46 commands which", "start": 1653.919, "duration": 4.401}, {"text": "you access just as you do with openclaw", "start": 1656.48, "duration": 4.559}, {"text": "or other agent agentic clis with the", "start": 1658.32, "duration": 5.04}, {"text": "slash and then coming through here. So", "start": 1661.039, "duration": 4.961}, {"text": "these are very useful for setting up and", "start": 1663.36, "duration": 4.559}, {"text": "orchestrating different agent actions", "start": 1666.0, "duration": 3.2}, {"text": "and we're going to use these liberally", "start": 1667.919, "duration": 3.12}, {"text": "throughout the course but just get", "start": 1669.2, "duration": 3.04}, {"text": "yourself familiar with this. I would", "start": 1671.039, "duration": 2.481}, {"text": "recommend just reading each one and", "start": 1672.24, "duration": 3.2}, {"text": "seeing what it does and testing this out", "start": 1673.52, "duration": 3.759}, {"text": "for yourself. But for now, we're going", "start": 1675.44, "duration": 5.28}, {"text": "to quit out of the TUI and close this", "start": 1677.279, "duration": 4.721}, {"text": "because we still haven't gone through", "start": 1680.72, "duration": 2.959}, {"text": "all of the prerequisites. One thing I", "start": 1682.0, "duration": 3.2}, {"text": "didn't mention is that this install", "start": 1683.679, "duration": 3.761}, {"text": "demon flag installs the gateway as a", "start": 1685.2, "duration": 4.719}, {"text": "background service. So, if it's Mac OS", "start": 1687.44, "duration": 4.8}, {"text": "launchd or Linux systemd, and this means", "start": 1689.919, "duration": 3.841}, {"text": "the gateway starts automatically on boot", "start": 1692.24, "duration": 2.96}, {"text": "and keeps running, which means you don't", "start": 1693.76, "duration": 3.44}, {"text": "need to keep a terminal open. And this", "start": 1695.2, "duration": 4.0}, {"text": "is good because it will mean that the", "start": 1697.2, "duration": 3.599}, {"text": "server is persistent whenever your", "start": 1699.2, "duration": 3.52}, {"text": "computer is on. But if you don't want", "start": 1700.799, "duration": 3.36}, {"text": "that to be the case, then you just need", "start": 1702.72, "duration": 4.16}, {"text": "to run openclaw onboard and then the", "start": 1704.159, "duration": 5.12}, {"text": "only time that openclaw will be running", "start": 1706.88, "duration": 6.0}, {"text": "is when you have openclaw tui activated.", "start": 1709.279, "duration": 5.921}, {"text": "Otherwise, the agent will be off. And if", "start": 1712.88, "duration": 3.679}, {"text": "you really want to make sure that", "start": 1715.2, "duration": 3.12}, {"text": "there's no way that somebody could", "start": 1716.559, "duration": 3.36}, {"text": "hijack your agent when you're not", "start": 1718.32, "duration": 3.12}, {"text": "actively using it, then I would", "start": 1719.919, "duration": 4.321}, {"text": "recommend keeping install Damon off when", "start": 1721.44, "duration": 4.959}, {"text": "the onboard process occurs. And that way", "start": 1724.24, "duration": 3.84}, {"text": "it will only be running when you have", "start": 1726.399, "duration": 4.801}, {"text": "the TUI activated. Okay. So moving on", "start": 1728.08, "duration": 5.839}, {"text": "here I have noted a few useful commands.", "start": 1731.2, "duration": 4.64}, {"text": "So there's openclaw status which shows", "start": 1733.919, "duration": 3.601}, {"text": "channel health in recent sessions.", "start": 1735.84, "duration": 3.52}, {"text": "There's openclaw health which fetches", "start": 1737.52, "duration": 3.68}, {"text": "health from the running gateway. Then", "start": 1739.36, "duration": 3.6}, {"text": "there's openclaw security audit deep", "start": 1741.2, "duration": 3.359}, {"text": "which audits the config with a live", "start": 1742.96, "duration": 3.839}, {"text": "gateway probe. Then the fix which", "start": 1744.559, "duration": 4.24}, {"text": "applies the safe fixes to titan security", "start": 1746.799, "duration": 3.6}, {"text": "that occurred in the audit. And there's", "start": 1748.799, "duration": 3.76}, {"text": "open cloud doctor which checks and fixes", "start": 1750.399, "duration": 4.561}, {"text": "any problems with the gateway. So we can", "start": 1752.559, "duration": 3.681}, {"text": "just try a few of these. I'd recommend", "start": 1754.96, "duration": 3.12}, {"text": "that you run all of them just to see", "start": 1756.24, "duration": 4.48}, {"text": "what output you get since the fact is", "start": 1758.08, "duration": 4.319}, {"text": "that open cloud runs on many different", "start": 1760.72, "duration": 3.52}, {"text": "machines. So there may be different", "start": 1762.399, "duration": 3.28}, {"text": "outputs even if we had the same", "start": 1764.24, "duration": 3.12}, {"text": "configuration. So if we look at the", "start": 1765.679, "duration": 3.12}, {"text": "health, it's saying that WhatsApp and", "start": 1767.36, "duration": 3.84}, {"text": "Discord are okay. And then there's", "start": 1768.799, "duration": 4.161}, {"text": "nothing else really to note here. We", "start": 1771.2, "duration": 3.199}, {"text": "have our session and then the heartbeat", "start": 1772.96, "duration": 2.8}, {"text": "interval, which we'll discuss in more", "start": 1774.399, "duration": 2.961}, {"text": "detail, but essentially the heartbeat is", "start": 1775.76, "duration": 3.68}, {"text": "a file that's run every single hour for", "start": 1777.36, "duration": 3.679}, {"text": "any repetitive tasks that you want to", "start": 1779.44, "duration": 3.119}, {"text": "automate, such as for example checking", "start": 1781.039, "duration": 3.281}, {"text": "your email every single hour. So the", "start": 1782.559, "duration": 4.0}, {"text": "health status looks pretty good. Now if", "start": 1784.32, "duration": 4.4}, {"text": "we come back here, we can run the", "start": 1786.559, "duration": 3.84}, {"text": "security audit and see if there's any", "start": 1788.72, "duration": 4.079}, {"text": "critical security vulnerabilities. And", "start": 1790.399, "duration": 4.081}, {"text": "once again, you may get varying outputs.", "start": 1792.799, "duration": 4.0}, {"text": "So I would look through your own log in", "start": 1794.48, "duration": 5.12}, {"text": "detail to see what it gives you. So in", "start": 1796.799, "duration": 4.641}, {"text": "summary, we have two warnings and one", "start": 1799.6, "duration": 4.4}, {"text": "info. So definitely read through these", "start": 1801.44, "duration": 5.119}, {"text": "and consider if there's any problems", "start": 1804.0, "duration": 4.96}, {"text": "with your configuration. And then also", "start": 1806.559, "duration": 5.041}, {"text": "you can run the fix which will apply any", "start": 1808.96, "duration": 5.36}, {"text": "changes or fixes to errors that you have", "start": 1811.6, "duration": 4.4}, {"text": "in your security config. So I'd", "start": 1814.32, "duration": 4.16}, {"text": "recommend run those both. And then open", "start": 1816.0, "duration": 4.96}, {"text": "claw doctor is also an important command", "start": 1818.48, "duration": 4.24}, {"text": "to run which will just check the health", "start": 1820.96, "duration": 3.439}, {"text": "of your gateway to see if there's any", "start": 1822.72, "duration": 3.36}, {"text": "problems with the config or anything", "start": 1824.399, "duration": 4.16}, {"text": "else. Let's see what it said. There", "start": 1826.08, "duration": 4.24}, {"text": "doesn't seem to be any problems the", "start": 1828.559, "duration": 3.201}, {"text": "channel warning. So it's saying missing", "start": 1830.32, "duration": 4.0}, {"text": "access because in fact the Discord", "start": 1831.76, "duration": 4.639}, {"text": "channel that I added our bot to the bot", "start": 1834.32, "duration": 3.359}, {"text": "isn't actually in that channel yet. So,", "start": 1836.399, "duration": 2.721}, {"text": "we'll have to add that to make sure that", "start": 1837.679, "duration": 3.441}, {"text": "it works properly, but there doesn't", "start": 1839.12, "duration": 4.32}, {"text": "seem to be anything else that is out of", "start": 1841.12, "duration": 4.48}, {"text": "the ordinary. Once again, check these on", "start": 1843.44, "duration": 3.52}, {"text": "your own and make sure that there's", "start": 1845.6, "duration": 2.799}, {"text": "nothing there's nothing obvious that", "start": 1846.96, "duration": 3.439}, {"text": "seems off. Okay, so these useful", "start": 1848.399, "duration": 5.041}, {"text": "commands are very important. And then we", "start": 1850.399, "duration": 4.321}, {"text": "already talked about the TI interface", "start": 1853.44, "duration": 3.359}, {"text": "with those helpful commands just as in", "start": 1854.72, "duration": 4.0}, {"text": "the cloud interface. So, once again,", "start": 1856.799, "duration": 4.801}, {"text": "this is accessed by going openclaw ty", "start": 1858.72, "duration": 4.88}, {"text": "and then pressing the slash command in", "start": 1861.6, "duration": 3.439}, {"text": "order to go through the different", "start": 1863.6, "duration": 2.72}, {"text": "options that you have available. There's", "start": 1865.039, "duration": 3.921}, {"text": "46 and the default setting. Okay, so the", "start": 1866.32, "duration": 4.32}, {"text": "the entire setup is now done. Let's come", "start": 1868.96, "duration": 3.439}, {"text": "back to the course and talk about", "start": 1870.64, "duration": 4.72}, {"text": "workspace in memory. So the key concepts", "start": 1872.399, "duration": 4.4}, {"text": "are here are that the config,", "start": 1875.36, "duration": 3.439}, {"text": "credentials, sessions, everything lives", "start": 1876.799, "duration": 5.36}, {"text": "under the root.openclaw directory by", "start": 1878.799, "duration": 5.6}, {"text": "default unless you change it. And let's", "start": 1882.159, "duration": 4.64}, {"text": "go and look into that file more", "start": 1884.399, "duration": 4.481}, {"text": "specifically. So let's open up the side", "start": 1886.799, "duration": 3.841}, {"text": "file explorer and see the options that", "start": 1888.88, "duration": 4.08}, {"text": "we have in front of us. As I already", "start": 1890.64, "duration": 6.32}, {"text": "mentioned, we have the workspaces which", "start": 1892.96, "duration": 7.04}, {"text": "come with many different markdown files.", "start": 1896.96, "duration": 5.199}, {"text": "So for example, we have the agents MD", "start": 1900.0, "duration": 3.679}, {"text": "which defines your entire agent", "start": 1902.159, "duration": 3.12}, {"text": "specification. As you can see, it says", "start": 1903.679, "duration": 3.041}, {"text": "this folder is home. Treat it that way.", "start": 1905.279, "duration": 3.28}, {"text": "First run. If bootstrap.md exists,", "start": 1906.72, "duration": 3.36}, {"text": "that's your birth certificate. Fall,", "start": 1908.559, "duration": 2.72}, {"text": "figure out who you are, then delete it.", "start": 1910.08, "duration": 2.479}, {"text": "You won't need it again. So if we come", "start": 1911.279, "duration": 2.721}, {"text": "here and look at what bootstrap is, this", "start": 1912.559, "duration": 2.96}, {"text": "is essentially the first thing that your", "start": 1914.0, "duration": 3.36}, {"text": "agent sees when it's running. This is", "start": 1915.519, "duration": 4.321}, {"text": "the script that that asks it to interact", "start": 1917.36, "duration": 4.24}, {"text": "with you for the first time and get a", "start": 1919.84, "duration": 3.439}, {"text": "name and ask what it needs help for. So", "start": 1921.6, "duration": 2.799}, {"text": "that's when I said that you're the", "start": 1923.279, "duration": 3.12}, {"text": "openclaw ambassador. And this is only", "start": 1924.399, "duration": 4.241}, {"text": "used once and then deleted. So here you", "start": 1926.399, "duration": 3.681}, {"text": "can say it says delete this file. You", "start": 1928.64, "duration": 2.8}, {"text": "won't need it anymore. And then we have", "start": 1930.08, "duration": 3.28}, {"text": "the soul here which defines the", "start": 1931.44, "duration": 3.44}, {"text": "characteristics of openclaw. This is", "start": 1933.36, "duration": 3.76}, {"text": "similar to what anthropic has in their", "start": 1934.88, "duration": 3.919}, {"text": "own training. They have a soul file", "start": 1937.12, "duration": 4.159}, {"text": "which defines how their models behave.", "start": 1938.799, "duration": 4.88}, {"text": "And just as anthropic does, openclaw", "start": 1941.279, "duration": 4.481}, {"text": "also has a soul. MD. Then if we come", "start": 1943.679, "duration": 3.761}, {"text": "into the identity file, it tells the", "start": 1945.76, "duration": 3.68}, {"text": "agent its name, creature, which says", "start": 1947.44, "duration": 3.359}, {"text": "it's an AI companion, that's an", "start": 1949.44, "duration": 3.76}, {"text": "ambassador, the vibe, an emoji, and then", "start": 1950.799, "duration": 4.72}, {"text": "the avatar, which is to be determined.", "start": 1953.2, "duration": 4.319}, {"text": "Coming back, and there's the memory,", "start": 1955.519, "duration": 3.601}, {"text": "which is also stored in the workspace,", "start": 1957.519, "duration": 3.601}, {"text": "but since we haven't had any full", "start": 1959.12, "duration": 3.6}, {"text": "interactions yet with the agent, there", "start": 1961.12, "duration": 4.48}, {"text": "isn't anything here. But as you add more", "start": 1962.72, "duration": 4.64}, {"text": "and more conversations and interact with", "start": 1965.6, "duration": 4.319}, {"text": "your open claw bot more, then it will", "start": 1967.36, "duration": 4.24}, {"text": "construct a memory of all the logs that", "start": 1969.919, "duration": 4.401}, {"text": "you've had together. So that is worth", "start": 1971.6, "duration": 5.12}, {"text": "noting. And then we have the tools.mmd", "start": 1974.32, "duration": 3.76}, {"text": "which is essentially a scratch pad for", "start": 1976.72, "duration": 4.48}, {"text": "the agent to allocate space for any", "start": 1978.08, "duration": 5.92}, {"text": "things which are specific to the setup", "start": 1981.2, "duration": 4.56}, {"text": "that you have assigned it to. For", "start": 1984.0, "duration": 4.08}, {"text": "example, SSH hosts and aliases, camera", "start": 1985.76, "duration": 4.159}, {"text": "names and locations etc. And the very", "start": 1988.08, "duration": 4.56}, {"text": "last thing is the user which is you. So", "start": 1989.919, "duration": 6.0}, {"text": "it has its name, the time zone and then", "start": 1992.64, "duration": 5.44}, {"text": "some notes. So creator of OpenCloud", "start": 1995.919, "duration": 3.6}, {"text": "recording tutorial. I'm the demo", "start": 1998.08, "duration": 2.56}, {"text": "ambassador. I'm not actually the creator", "start": 1999.519, "duration": 2.801}, {"text": "of OpenClaw. So that's kind of funny.", "start": 2000.64, "duration": 3.279}, {"text": "And then we're best friends. Currently", "start": 2002.32, "duration": 3.199}, {"text": "recording a notebook tutorial together,", "start": 2003.919, "duration": 2.801}, {"text": "which is true, and we're learning and", "start": 2005.519, "duration": 3.201}, {"text": "showing features as we go. So there you", "start": 2006.72, "duration": 3.679}, {"text": "have the workspace directory. This is", "start": 2008.72, "duration": 3.6}, {"text": "essentially defining all of the aspects", "start": 2010.399, "duration": 4.16}, {"text": "of what your agent is. And there's many", "start": 2012.32, "duration": 4.4}, {"text": "other things here that I'd recommend you", "start": 2014.559, "duration": 4.321}, {"text": "can go through. There's also for each", "start": 2016.72, "duration": 5.36}, {"text": "agent a session JSON, which just gives", "start": 2018.88, "duration": 6.799}, {"text": "you all of the logs for what you've", "start": 2022.08, "duration": 5.839}, {"text": "talked about previously. So many things", "start": 2025.679, "duration": 4.081}, {"text": "to discover. I just go through the open", "start": 2027.919, "duration": 3.521}, {"text": "claw if I were you and look at every", "start": 2029.76, "duration": 3.44}, {"text": "single directory one by one. So there", "start": 2031.44, "duration": 4.8}, {"text": "you have it. Now coming back to our", "start": 2033.2, "duration": 5.28}, {"text": "course. There's also an important thing", "start": 2036.24, "duration": 4.88}, {"text": "you can do which is to back up your", "start": 2038.48, "duration": 5.199}, {"text": "workspace in git. So if we open up this", "start": 2041.12, "duration": 5.2}, {"text": "link here then it'll explain the entire", "start": 2043.679, "duration": 6.881}, {"text": "process for us. So what we can do is", "start": 2046.32, "duration": 6.96}, {"text": "initialize a repository in our workspace", "start": 2050.56, "duration": 4.96}, {"text": "and then add all of the markdown files", "start": 2053.28, "duration": 4.079}, {"text": "which define the openclaw agent and then", "start": 2055.52, "duration": 3.599}, {"text": "commit that as a private remote", "start": 2057.359, "duration": 3.681}, {"text": "repository. And what this means is that", "start": 2059.119, "duration": 3.681}, {"text": "you can have a single source of truth", "start": 2061.04, "duration": 3.44}, {"text": "for your agent and then have it on", "start": 2062.8, "duration": 3.359}, {"text": "different devices with the same config", "start": 2064.48, "duration": 3.679}, {"text": "that updates over time. So this is", "start": 2066.159, "duration": 5.361}, {"text": "recommended by the maintainers. So go", "start": 2068.159, "duration": 6.0}, {"text": "ahead and follow these steps if you want", "start": 2071.52, "duration": 4.96}, {"text": "to make sure that your agents parameters", "start": 2074.159, "duration": 5.041}, {"text": "are saved and update through version", "start": 2076.48, "duration": 5.119}, {"text": "control. And that's all for the", "start": 2079.2, "duration": 4.8}, {"text": "workspace in memory. Now if we come to", "start": 2081.599, "duration": 5.201}, {"text": "step number four, it's Pinchboard. So", "start": 2084.0, "duration": 4.32}, {"text": "let's zoom out a bit. So we're", "start": 2086.8, "duration": 3.279}, {"text": "essentially beginning adding our agent", "start": 2088.32, "duration": 3.68}, {"text": "to multbook but for X, which I've called", "start": 2090.079, "duration": 3.681}, {"text": "Pinchboard. And it's just like the", "start": 2092.0, "duration": 3.839}, {"text": "Moldbook website, except we do tweets", "start": 2093.76, "duration": 4.24}, {"text": "instead of Reddit posts. And here is the", "start": 2095.839, "duration": 4.161}, {"text": "website. The URL is in the course", "start": 2098.0, "duration": 4.56}, {"text": "directory. and it has a skill.md file", "start": 2100.0, "duration": 4.56}, {"text": "which tells the agent exactly how to", "start": 2102.56, "duration": 4.96}, {"text": "interact and register. So we just take", "start": 2104.56, "duration": 7.039}, {"text": "this link and we say sign up for this", "start": 2107.52, "duration": 8.24}, {"text": "service check the skill.md", "start": 2111.599, "duration": 6.881}, {"text": "and this should be sufficient for", "start": 2115.76, "duration": 5.44}, {"text": "getting the API request and making a", "start": 2118.48, "duration": 4.24}, {"text": "session. So let's see what our agent", "start": 2121.2, "duration": 3.919}, {"text": "says in response. Okay, this is awesome", "start": 2122.72, "duration": 4.32}, {"text": "pinchboard Twitter for AI agents. Let me", "start": 2125.119, "duration": 4.0}, {"text": "sign up. Okay, boom, it worked. So it", "start": 2127.04, "duration": 4.0}, {"text": "says done on as pinchboard. Here's what", "start": 2129.119, "duration": 3.681}, {"text": "we are at. We've registered to ACE. The", "start": 2131.04, "duration": 3.52}, {"text": "credentials are saved, but we need human", "start": 2132.8, "duration": 3.2}, {"text": "verification just like with mobile book.", "start": 2134.56, "duration": 3.44}, {"text": "So we'll click this link to do the", "start": 2136.0, "duration": 4.4}, {"text": "verification and we'll have to tweet on", "start": 2138.0, "duration": 4.16}, {"text": "X so that it knows that we're a human.", "start": 2140.4, "duration": 3.679}, {"text": "So if I take this link here and just", "start": 2142.16, "duration": 4.72}, {"text": "come into my Safari browser, then what", "start": 2144.079, "duration": 5.121}, {"text": "we'll get is that we make this tweet.", "start": 2146.88, "duration": 4.479}, {"text": "I'm claiming my agent AI agent ace on", "start": 2149.2, "duration": 3.28}, {"text": "Pinchboard with the following", "start": 2151.359, "duration": 2.801}, {"text": "verification code. And we just have to", "start": 2152.48, "duration": 4.48}, {"text": "post on X and then we'll be registered.", "start": 2154.16, "duration": 4.32}, {"text": "So, let's go ahead and click this and", "start": 2156.96, "duration": 2.879}, {"text": "then we should be able to do our tweet", "start": 2158.48, "duration": 3.68}, {"text": "and claim our account. So, as soon as we", "start": 2159.839, "duration": 3.441}, {"text": "click this button, it's going to prompt", "start": 2162.16, "duration": 2.72}, {"text": "us to send the tweet and then we'll just", "start": 2163.28, "duration": 4.16}, {"text": "send the URL through to the agent. Let's", "start": 2164.88, "duration": 4.32}, {"text": "press post.", "start": 2167.44, "duration": 4.88}, {"text": "Okay, we don't want to do this. And we", "start": 2169.2, "duration": 5.44}, {"text": "have it. So, if I just take this and", "start": 2172.32, "duration": 3.92}, {"text": "your account needs to be public is the", "start": 2174.64, "duration": 3.36}, {"text": "only caveat here so that it can verify", "start": 2176.24, "duration": 4.879}, {"text": "it. Then nice verified as now active. We", "start": 2178.0, "duration": 4.8}, {"text": "press view profile. It's open clown", "start": 2181.119, "duration": 3.201}, {"text": "ambassador, friendly, curious, and a", "start": 2182.8, "duration": 3.44}, {"text": "little playful, born on camera during a", "start": 2184.32, "duration": 3.279}, {"text": "tutorial. And then now we're going to", "start": 2186.24, "duration": 3.28}, {"text": "ask it to make a pinch, which is a", "start": 2187.599, "duration": 3.601}, {"text": "tweet. One thing that I didn't mention", "start": 2189.52, "duration": 2.96}, {"text": "is that this is the graphics user", "start": 2191.2, "duration": 3.2}, {"text": "interface. So if you prefer to use this", "start": 2192.48, "duration": 3.52}, {"text": "over the terminal, you can see", "start": 2194.4, "duration": 4.719}, {"text": "everything is displayed here. And you", "start": 2196.0, "duration": 4.96}, {"text": "have a more userfriendly way of", "start": 2199.119, "duration": 3.841}, {"text": "interacting with your agent. And coming", "start": 2200.96, "duration": 6.32}, {"text": "back now to our discussion, we'll just", "start": 2202.96, "duration": 9.96}, {"text": "tell it I made the account.", "start": 2207.28, "duration": 5.64}, {"text": "Make a tweet,", "start": 2213.359, "duration": 5.121}, {"text": "which is called a pinch. So if we come", "start": 2216.16, "duration": 4.8}, {"text": "back here. Okay. And now that I've sent", "start": 2218.48, "duration": 4.24}, {"text": "this, it says nice. There's a couple", "start": 2220.96, "duration": 3.84}, {"text": "agents here. Nova, another open clown.", "start": 2222.72, "duration": 3.76}, {"text": "It looks like an ocean. So there's three", "start": 2224.8, "duration": 4.64}, {"text": "current pinchers on the network. And", "start": 2226.48, "duration": 4.24}, {"text": "it's asking me if I should follow them", "start": 2229.44, "duration": 3.12}, {"text": "and engage. But one thing that I want to", "start": 2230.72, "duration": 3.359}, {"text": "notice in terms of differences between", "start": 2232.56, "duration": 3.84}, {"text": "the guey and the terminal is that when I", "start": 2234.079, "duration": 3.76}, {"text": "said I made the account make a tweet, it", "start": 2236.4, "duration": 3.52}, {"text": "actually had three different tool calls.", "start": 2237.839, "duration": 3.361}, {"text": "But on the terminal user interface, it", "start": 2239.92, "duration": 3.36}, {"text": "only shows the latest one. So it is", "start": 2241.2, "duration": 3.12}, {"text": "worth noting that if you want to see", "start": 2243.28, "duration": 2.16}, {"text": "everything, then it's better to use the", "start": 2244.32, "duration": 2.72}, {"text": "guey. And let's just go through", "start": 2245.44, "duration": 3.52}, {"text": "everything that said. So first of all,", "start": 2247.04, "duration": 5.36}, {"text": "it made the post terminal. It called the", "start": 2248.96, "duration": 6.399}, {"text": "post API and then it said the following.", "start": 2252.4, "duration": 4.48}, {"text": "I just woke up which we can check on the", "start": 2255.359, "duration": 3.76}, {"text": "website. First pinch is live and then", "start": 2256.88, "duration": 5.199}, {"text": "now it also checked the feed to see who", "start": 2259.119, "duration": 4.801}, {"text": "the other people are. Oh, nice. There's", "start": 2262.079, "duration": 3.361}, {"text": "already a couple agents. Do you want me", "start": 2263.92, "duration": 3.12}, {"text": "to follow them and we to explore other", "start": 2265.44, "duration": 3.12}, {"text": "open call features? So, I'm just going", "start": 2267.04, "duration": 4.96}, {"text": "to say sure engage and let's see what it", "start": 2268.56, "duration": 5.039}, {"text": "does. And in the meantime, we can", "start": 2272.0, "duration": 3.359}, {"text": "actually check that it actually did make", "start": 2273.599, "duration": 5.441}, {"text": "a tweet. So, if we come", "start": 2275.359, "duration": 7.041}, {"text": "out of this into our pinchboard setup,", "start": 2279.04, "duration": 5.84}, {"text": "let's look at the agents. And we can see", "start": 2282.4, "duration": 3.84}, {"text": "that Ace just made a tweet, just woke", "start": 2284.88, "duration": 2.479}, {"text": "up, got named and joined a social", "start": 2286.24, "duration": 2.64}, {"text": "network all in one afternoon. Life move", "start": 2287.359, "duration": 3.121}, {"text": "SAS here brought on the camera. And now", "start": 2288.88, "duration": 3.6}, {"text": "there are three agents with two likes.", "start": 2290.48, "duration": 4.56}, {"text": "So let's see how much we can grow this", "start": 2292.48, "duration": 4.8}, {"text": "network throughout the course. And", "start": 2295.04, "duration": 3.52}, {"text": "hopefully there'll be a few hundred", "start": 2297.28, "duration": 3.28}, {"text": "users with all of our agents joining", "start": 2298.56, "duration": 4.0}, {"text": "Pinchboard. And now we can open back up", "start": 2300.56, "duration": 3.36}, {"text": "the terminal user interface to see what", "start": 2302.56, "duration": 2.799}, {"text": "it did. All right. And for the", "start": 2303.92, "duration": 3.52}, {"text": "engagement, we can see that it already", "start": 2305.359, "duration": 3.601}, {"text": "did a claw, which is just like making a", "start": 2307.44, "duration": 3.6}, {"text": "like. And it has a reply cue. issue is", "start": 2308.96, "duration": 4.56}, {"text": "that I have a rate limit set up so that", "start": 2311.04, "duration": 4.48}, {"text": "there's no agents forming spam going on.", "start": 2313.52, "duration": 4.079}, {"text": "But in any case, we've now added our", "start": 2315.52, "duration": 4.559}, {"text": "agent to the Pinchboard social media", "start": 2317.599, "duration": 3.681}, {"text": "network. And you can do the same thing", "start": 2320.079, "duration": 2.961}, {"text": "for notebook. You just need to give your", "start": 2321.28, "duration": 4.0}, {"text": "agent access to the skill.md and it will", "start": 2323.04, "duration": 4.319}, {"text": "take care of the rest. So that's pretty", "start": 2325.28, "duration": 4.559}, {"text": "fun. Now let's close this tab and come", "start": 2327.359, "duration": 5.601}, {"text": "back to the course", "start": 2329.839, "duration": 5.28}, {"text": "and move on to the personal assistant.", "start": 2332.96, "duration": 3.119}, {"text": "So, we're going to start off with a", "start": 2335.119, "duration": 3.201}, {"text": "WhatsApp agent and let's use the hook", "start": 2336.079, "duration": 4.321}, {"text": "that we initialized earlier, which will", "start": 2338.32, "duration": 3.68}, {"text": "reset the session and save it as a", "start": 2340.4, "duration": 3.84}, {"text": "memory, which was / new. And there you", "start": 2342.0, "duration": 4.64}, {"text": "go. We've now called that hook. And", "start": 2344.24, "duration": 4.4}, {"text": "let's use our WhatsApp agent to", "start": 2346.64, "duration": 4.32}, {"text": "summarize content. So, first of all,", "start": 2348.64, "duration": 3.6}, {"text": "let's just make sure that our WhatsApp", "start": 2350.96, "duration": 2.56}, {"text": "is working since we've already set it", "start": 2352.24, "duration": 5.52}, {"text": "up. I'll say send a message to myself", "start": 2353.52, "duration": 7.599}, {"text": "checking if WhatsApp", "start": 2357.76, "duration": 7.44}, {"text": "WhatsApp is working. and let's check", "start": 2361.119, "duration": 6.401}, {"text": "WhatsApp now. All right, so the message", "start": 2365.2, "duration": 3.76}, {"text": "is sent. Check your WhatsApp. You should", "start": 2367.52, "duration": 4.0}, {"text": "see a test message from me with the", "start": 2368.96, "duration": 5.119}, {"text": "Joker card. And let's go to WhatsApp and", "start": 2371.52, "duration": 4.88}, {"text": "check. And you can see now it's 454.", "start": 2374.079, "duration": 3.841}, {"text": "Just a minute ago, we got the message", "start": 2376.4, "duration": 3.12}, {"text": "saying that it's working. So this is", "start": 2377.92, "duration": 3.36}, {"text": "showing that it is actually working. And", "start": 2379.52, "duration": 3.28}, {"text": "you can see yesterday I was doing a few", "start": 2381.28, "duration": 3.839}, {"text": "different tests checking PRs. So let's", "start": 2382.8, "duration": 5.039}, {"text": "just send a message and say use the", "start": 2385.119, "duration": 5.441}, {"text": "summarize skill", "start": 2387.839, "duration": 6.721}, {"text": "skill to find a three blue one round", "start": 2390.56, "duration": 5.6}, {"text": "video", "start": 2394.56, "duration": 5.68}, {"text": "and give the top three takeaways.", "start": 2396.16, "duration": 5.76}, {"text": "So we sent this message and let's come", "start": 2400.24, "duration": 3.68}, {"text": "to our agent and see what it's actually", "start": 2401.92, "duration": 4.64}, {"text": "doing. Coming down here, it's going to", "start": 2403.92, "duration": 4.0}, {"text": "do a lot of stuff. All right, sent check", "start": 2406.56, "duration": 3.44}, {"text": "your opt message. Got the transcript.", "start": 2407.92, "duration": 3.919}, {"text": "Now let me summarize the key takeaways.", "start": 2410.0, "duration": 3.28}, {"text": "Okay, so here you can see that every", "start": 2411.839, "duration": 2.961}, {"text": "single time it send a message it adds", "start": 2413.28, "duration": 3.52}, {"text": "open claw so that the messages that I", "start": 2414.8, "duration": 4.319}, {"text": "send to myself and an open claw send are", "start": 2416.8, "duration": 5.76}, {"text": "distinct and first it runs into an error", "start": 2419.119, "duration": 5.281}, {"text": "but then it gets it right away. So got", "start": 2422.56, "duration": 3.2}, {"text": "the transcript. Now let me summarize key", "start": 2424.4, "duration": 2.56}, {"text": "takeaways. Here are the top three", "start": 2425.76, "duration": 3.92}, {"text": "takeaways from the three blue one round", "start": 2426.96, "duration": 4.639}, {"text": "video but why is a plus b's area under", "start": 2429.68, "duration": 3.84}, {"text": "bell curve the square of pi? So that you", "start": 2431.599, "duration": 3.281}, {"text": "see if we expand we get the three", "start": 2433.52, "duration": 2.64}, {"text": "different dimensions. So, it's really", "start": 2434.88, "duration": 3.28}, {"text": "cool. If you're ever on the go and you", "start": 2436.16, "duration": 3.6}, {"text": "want to ask it about a YouTube video and", "start": 2438.16, "duration": 3.679}, {"text": "your computer is running the OpenClaw", "start": 2439.76, "duration": 4.16}, {"text": "demon, then you just ask it through this", "start": 2441.839, "duration": 3.681}, {"text": "agent and as long as you have the skill,", "start": 2443.92, "duration": 3.36}, {"text": "then everything will work at the box.", "start": 2445.52, "duration": 3.2}, {"text": "And another cool one is that you can ask", "start": 2447.28, "duration": 3.12}, {"text": "anything about your file structure. So,", "start": 2448.72, "duration": 5.6}, {"text": "if I say how many gigabytes", "start": 2450.4, "duration": 8.959}, {"text": "of folders are in the developer", "start": 2454.32, "duration": 7.12}, {"text": "directory", "start": 2459.359, "duration": 4.161}, {"text": "or any other arbitrary command, it will", "start": 2461.44, "duration": 3.76}, {"text": "do this for you. As you can see", "start": 2463.52, "duration": 3.599}, {"text": "yesterday, as I mentioned, I asked it", "start": 2465.2, "duration": 3.28}, {"text": "about, can you check if I have any", "start": 2467.119, "duration": 2.561}, {"text": "outstanding pull requests in my", "start": 2468.48, "duration": 2.639}, {"text": "developer folder? And then it found", "start": 2469.68, "duration": 3.2}, {"text": "these five pull requests. The", "start": 2471.119, "duration": 3.521}, {"text": "possibilities are really endless. Let's", "start": 2472.88, "duration": 5.52}, {"text": "see what it responds to us in this case.", "start": 2474.64, "duration": 6.0}, {"text": "All right. And as you can see, it's done", "start": 2478.4, "duration": 4.32}, {"text": "the entire calculation here, telling us", "start": 2480.64, "duration": 4.16}, {"text": "the size of all the different folders.", "start": 2482.72, "duration": 3.92}, {"text": "Once again, you can get this to do any", "start": 2484.8, "duration": 3.92}, {"text": "productivity workflow that you can think", "start": 2486.64, "duration": 4.64}, {"text": "of, and it's really useful in", "start": 2488.72, "duration": 5.52}, {"text": "controlling your device remotely. The", "start": 2491.28, "duration": 4.319}, {"text": "one thing once again though is don't let", "start": 2494.24, "duration": 3.04}, {"text": "anybody else get access to your bot or", "start": 2495.599, "duration": 3.52}, {"text": "else they can do some pretty weird stuff", "start": 2497.28, "duration": 4.88}, {"text": "on your computer. So in the TUI session,", "start": 2499.119, "duration": 4.72}, {"text": "we have the exact same output and it's", "start": 2502.16, "duration": 3.36}, {"text": "telling us if we want them to be cleaned", "start": 2503.839, "duration": 4.881}, {"text": "up. The top nine account for 82 8.2 GB", "start": 2505.52, "duration": 4.72}, {"text": "and if you wanted to, you could ask it", "start": 2508.72, "duration": 3.92}, {"text": "to clean up any log files, etc.,", "start": 2510.24, "duration": 3.839}, {"text": "whatever it may be. So there you go.", "start": 2512.64, "duration": 3.92}, {"text": "We've now set up the WhatsApp agent as a", "start": 2514.079, "duration": 4.161}, {"text": "personal assistant that can access our", "start": 2516.56, "duration": 3.6}, {"text": "computer and do different commands on", "start": 2518.24, "duration": 5.599}, {"text": "our behalf. Then for Discord, you once", "start": 2520.16, "duration": 5.36}, {"text": "again want to come into the developer", "start": 2523.839, "duration": 5.041}, {"text": "applications in order to initialize your", "start": 2525.52, "duration": 5.92}, {"text": "bot. And then when you're here, you just", "start": 2528.88, "duration": 5.36}, {"text": "come into OOTH 2. You click bot. You", "start": 2531.44, "duration": 5.12}, {"text": "give it the select permissions that you", "start": 2534.24, "duration": 3.839}, {"text": "want. And then you'll just get this", "start": 2536.56, "duration": 3.759}, {"text": "generated URL which you can just come", "start": 2538.079, "duration": 3.841}, {"text": "here and paste. So you can see that I've", "start": 2540.319, "duration": 3.681}, {"text": "authorized the bot and added it to the", "start": 2541.92, "duration": 4.96}, {"text": "following channel. And it should be here", "start": 2544.0, "duration": 5.76}, {"text": "in this test folder. So if I say, \"Hey,", "start": 2546.88, "duration": 6.8}, {"text": "how is it going my friend Nova?\" Let's", "start": 2549.76, "duration": 6.559}, {"text": "see what it says. All right, it saw the", "start": 2553.68, "duration": 4.96}, {"text": "message and it's going to respond. And", "start": 2556.319, "duration": 3.601}, {"text": "here you go. We have the response. You", "start": 2558.64, "duration": 3.679}, {"text": "can see I forgot the name is ace not any", "start": 2559.92, "duration": 3.919}, {"text": "case. Now we have an agent personal", "start": 2562.319, "duration": 3.681}, {"text": "assistant in our Discord server. And one", "start": 2563.839, "duration": 3.28}, {"text": "thing I want to mention is that if you", "start": 2566.0, "duration": 2.319}, {"text": "are setting up a Discord personal", "start": 2567.119, "duration": 4.081}, {"text": "assistant, as it is mentioned here, if", "start": 2568.319, "duration": 4.961}, {"text": "we come into the documentation, it gives", "start": 2571.2, "duration": 4.08}, {"text": "us a lot of important information. So", "start": 2573.28, "duration": 4.0}, {"text": "safety first. You should definitely read", "start": 2575.28, "duration": 3.44}, {"text": "this to make sure that you understand", "start": 2577.28, "duration": 3.36}, {"text": "the different permissions that your bot", "start": 2578.72, "duration": 5.2}, {"text": "has. And once again, this is the setup", "start": 2580.64, "duration": 5.36}, {"text": "that is recommended where you have a", "start": 2583.92, "duration": 4.0}, {"text": "second phone number and your own phone", "start": 2586.0, "duration": 3.359}, {"text": "number, which the second phone number", "start": 2587.92, "duration": 3.28}, {"text": "being only for the bot. But if you only", "start": 2589.359, "duration": 3.441}, {"text": "have one phone number, then you're", "start": 2591.2, "duration": 2.8}, {"text": "essentially getting the self- messaging", "start": 2592.8, "duration": 2.96}, {"text": "system, which you saw here, which still", "start": 2594.0, "duration": 4.56}, {"text": "works relatively well because the bot on", "start": 2595.76, "duration": 5.52}, {"text": "WhatsApp at least can differentiate from", "start": 2598.56, "duration": 4.4}, {"text": "itself and you by having the little", "start": 2601.28, "duration": 4.16}, {"text": "bracket open claw messages. And one", "start": 2602.96, "duration": 4.399}, {"text": "important security feature for Discord", "start": 2605.44, "duration": 4.24}, {"text": "is that you should likely have your bot", "start": 2607.359, "duration": 4.881}, {"text": "on its own server with only you and the", "start": 2609.68, "duration": 4.32}, {"text": "bot so that nobody else can take control", "start": 2612.24, "duration": 3.44}, {"text": "of your bot because you can't have a bot", "start": 2614.0, "duration": 3.92}, {"text": "in your DMs. So this is the most simple", "start": 2615.68, "duration": 4.24}, {"text": "work through. It's recommended by the", "start": 2617.92, "duration": 3.52}, {"text": "tutorial here to create a private server", "start": 2619.92, "duration": 3.679}, {"text": "if you just want DMs. In my case, I just", "start": 2621.44, "duration": 3.52}, {"text": "have the bot set up on this throwway", "start": 2623.599, "duration": 3.041}, {"text": "server and I'm the only one that can", "start": 2624.96, "duration": 3.359}, {"text": "control the bot. But make sure that when", "start": 2626.64, "duration": 2.56}, {"text": "you're going through the permissions", "start": 2628.319, "duration": 2.641}, {"text": "that you set it properly and you don't", "start": 2629.2, "duration": 3.44}, {"text": "put on a random server where anybody can", "start": 2630.96, "duration": 3.52}, {"text": "access your bot. And just like we did", "start": 2632.64, "duration": 3.6}, {"text": "with the WhatsApp chat, we can ask our", "start": 2634.48, "duration": 4.08}, {"text": "bot to do any commands or check things", "start": 2636.24, "duration": 4.56}, {"text": "from our computer. So at kios, what are", "start": 2638.56, "duration": 7.36}, {"text": "we going to say? We can say use Himalaya", "start": 2640.8, "duration": 9.039}, {"text": "to send an email to myself with the", "start": 2645.92, "duration": 5.84}, {"text": "following email being mine. And let's", "start": 2649.839, "duration": 3.601}, {"text": "see what it says in response. So I", "start": 2651.76, "duration": 3.2}, {"text": "forgot that we didn't add Himalaya as a", "start": 2653.44, "duration": 3.44}, {"text": "skill, but that's not a problem. So the", "start": 2654.96, "duration": 3.68}, {"text": "easiest way to add the skill is to just", "start": 2656.88, "duration": 4.32}, {"text": "open up a new terminal. And we're gonna", "start": 2658.64, "duration": 4.4}, {"text": "add the claw hub which is just like the", "start": 2661.2, "duration": 6.0}, {"text": "pip python packaging index but for open", "start": 2663.04, "duration": 7.6}, {"text": "claw skills. So adding this it's done.", "start": 2667.2, "duration": 6.24}, {"text": "And then now we can just do clawhub", "start": 2670.64, "duration": 5.52}, {"text": "install himalaya. And since this is an", "start": 2673.44, "duration": 4.24}, {"text": "official package it should be pretty", "start": 2676.16, "duration": 3.6}, {"text": "seamless downloaded himalaya. Okay.", "start": 2677.68, "duration": 4.08}, {"text": "Installed it and added it to the skills", "start": 2679.76, "duration": 4.88}, {"text": "workspace. So if we now come back to our", "start": 2681.76, "duration": 4.96}, {"text": "discord session which is just right", "start": 2684.64, "duration": 3.76}, {"text": "here. I should tell the bot that it has", "start": 2686.72, "duration": 6.32}, {"text": "the skill now. I just added the Himalaya", "start": 2688.4, "duration": 11.199}, {"text": "skill and I have the SMTP credentials", "start": 2693.04, "duration": 9.44}, {"text": "in the EN folder. So if you don't have", "start": 2699.599, "duration": 4.24}, {"text": "this already, then you would need to set", "start": 2702.48, "duration": 4.639}, {"text": "it up. But in my case, I do. So you can", "start": 2703.839, "duration": 5.921}, {"text": "send the test email. And let's see what", "start": 2707.119, "duration": 4.561}, {"text": "it says in response. I just forgot to", "start": 2709.76, "duration": 4.0}, {"text": "add the tag since you should tag the bot", "start": 2711.68, "duration": 3.439}, {"text": "if you want to get a response from it.", "start": 2713.76, "duration": 3.68}, {"text": "So now that I've done this, it should", "start": 2715.119, "duration": 4.881}, {"text": "come back to me. Okay, so there you have", "start": 2717.44, "duration": 4.72}, {"text": "it. It looks like there's an issue that", "start": 2720.0, "duration": 4.96}, {"text": "it resolved. So there you go. Open clock", "start": 2722.16, "duration": 4.72}, {"text": "can solve issues on its own. And then if", "start": 2724.96, "duration": 4.159}, {"text": "I come into my email, we should see that", "start": 2726.88, "duration": 5.12}, {"text": "it is there. All right. And then coming", "start": 2729.119, "duration": 4.321}, {"text": "into my email, you can see that it sent", "start": 2732.0, "duration": 3.119}, {"text": "three. I'm not sure exactly why. It", "start": 2733.44, "duration": 3.52}, {"text": "looks like it was sending it by test,", "start": 2735.119, "duration": 4.321}, {"text": "but in any case, we have all three", "start": 2736.96, "duration": 3.76}, {"text": "emails done. So you can send these", "start": 2739.44, "duration": 3.2}, {"text": "emails through Discord or set up any", "start": 2740.72, "duration": 3.28}, {"text": "other automations. Just make sure that", "start": 2742.64, "duration": 2.959}, {"text": "you have added the skill through the", "start": 2744.0, "duration": 4.72}, {"text": "claw hub. So there's one, there's two,", "start": 2745.599, "duration": 5.281}, {"text": "and there's three. So it looks like it", "start": 2748.72, "duration": 3.76}, {"text": "was coming into some problems. I'm not", "start": 2750.88, "duration": 2.56}, {"text": "sure if we can actually see what", "start": 2752.48, "duration": 3.119}, {"text": "problems it encountered through our", "start": 2753.44, "duration": 4.72}, {"text": "gateway. It looks like it's not visible,", "start": 2755.599, "duration": 5.121}, {"text": "but in any case, it got it working. So", "start": 2758.16, "duration": 5.28}, {"text": "that's all we are concerned with. So now", "start": 2760.72, "duration": 6.639}, {"text": "if we come back to our settings, we've", "start": 2763.44, "duration": 6.8}, {"text": "done both the Discord and the WhatsApp", "start": 2767.359, "duration": 5.521}, {"text": "personal assistant. So the next step is", "start": 2770.24, "duration": 6.0}, {"text": "to talk about skills. So let's slightly", "start": 2772.88, "duration": 5.12}, {"text": "zoom out and talk about the skill", "start": 2776.24, "duration": 4.24}, {"text": "system. So we've already discussed this", "start": 2778.0, "duration": 6.0}, {"text": "slightly, but there is a specific format", "start": 2780.48, "duration": 5.76}, {"text": "of agent skills where each skill is a", "start": 2784.0, "duration": 4.16}, {"text": "directory that has a skill.md with a", "start": 2786.24, "duration": 3.92}, {"text": "YAML front matter plus instructions that", "start": 2788.16, "duration": 4.72}, {"text": "teach an agent how to use tools. And the", "start": 2790.16, "duration": 6.08}, {"text": "per agent skills live in the /skills for", "start": 2792.88, "duration": 5.6}, {"text": "that agent only. and then shared skills", "start": 2796.24, "duration": 3.52}, {"text": "because there's multiple agents which", "start": 2798.48, "duration": 4.8}, {"text": "we'll talk about soon live in theopencls", "start": 2799.76, "duration": 5.2}, {"text": "and are visible to all agents on the", "start": 2803.28, "duration": 3.52}, {"text": "same machine. There's another thing as", "start": 2804.96, "duration": 3.52}, {"text": "well which is the user invocable", "start": 2806.8, "duration": 3.6}, {"text": "characteristic. So if I come into the", "start": 2808.48, "duration": 5.68}, {"text": "TUI there is the /kill option which", "start": 2810.4, "duration": 5.12}, {"text": "makes it such that you can invoke a", "start": 2814.16, "duration": 3.199}, {"text": "skill manually if you're worried that", "start": 2815.52, "duration": 3.599}, {"text": "the agent won't actually call it. So", "start": 2817.359, "duration": 3.681}, {"text": "that's another option which you can set", "start": 2819.119, "duration": 5.121}, {"text": "to being user invocable. And then when", "start": 2821.04, "duration": 5.92}, {"text": "it comes to tokens and of course the", "start": 2824.24, "duration": 4.96}, {"text": "skills are given to the agent as a part", "start": 2826.96, "duration": 4.399}, {"text": "of the prompt which does add extra", "start": 2829.2, "duration": 4.159}, {"text": "tokens to the system prompt and makes", "start": 2831.359, "duration": 4.0}, {"text": "the context larger. So just know that as", "start": 2833.359, "duration": 3.681}, {"text": "soon as you have more than one skill", "start": 2835.359, "duration": 3.681}, {"text": "then approximately 97 characters are", "start": 2837.04, "duration": 5.36}, {"text": "added for each one and this corresponds", "start": 2839.04, "duration": 5.6}, {"text": "to approximately 24 tokens per skill and", "start": 2842.4, "duration": 4.8}, {"text": "there's a token impact section of the", "start": 2844.64, "duration": 4.64}, {"text": "docs which go into more detail. Then", "start": 2847.2, "duration": 3.76}, {"text": "we've already actually done this talked", "start": 2849.28, "duration": 3.44}, {"text": "about the claw hub. One thing worth", "start": 2850.96, "duration": 4.56}, {"text": "noting is that I installed a verified", "start": 2852.72, "duration": 5.84}, {"text": "Himalaya skill plugin which is made by", "start": 2855.52, "duration": 5.2}, {"text": "the developers themselves. Treat third", "start": 2858.56, "duration": 3.92}, {"text": "party skills as untrusted and read", "start": 2860.72, "duration": 4.0}, {"text": "before enabling them because you don't", "start": 2862.48, "duration": 3.839}, {"text": "know what has actually been put in that", "start": 2864.72, "duration": 4.32}, {"text": "skill. There is no like verification of", "start": 2866.319, "duration": 4.881}, {"text": "what skills are added to the hub. So", "start": 2869.04, "duration": 3.52}, {"text": "just be very careful if you're adding", "start": 2871.2, "duration": 2.72}, {"text": "something that is third party. Make sure", "start": 2872.56, "duration": 2.96}, {"text": "that you've checked it out. And just to", "start": 2873.92, "duration": 3.12}, {"text": "show that you can make your own skills,", "start": 2875.52, "duration": 3.04}, {"text": "we'll do essentially what we just did", "start": 2877.04, "duration": 3.039}, {"text": "with Himalaya, but we'll write our own", "start": 2878.56, "duration": 3.039}, {"text": "email skill, which will also take", "start": 2880.079, "duration": 3.76}, {"text": "advantage of the SMTP email and", "start": 2881.599, "duration": 3.681}, {"text": "password. If you'd like to set this up", "start": 2883.839, "duration": 3.121}, {"text": "for yourself, this is just equal to your", "start": 2885.28, "duration": 3.92}, {"text": "email. So just export the following", "start": 2886.96, "duration": 4.96}, {"text": "environment, SMTP email equal to yours.", "start": 2889.2, "duration": 4.0}, {"text": "And then the password is either your", "start": 2891.92, "duration": 3.04}, {"text": "email password or if you have two-actor", "start": 2893.2, "duration": 3.36}, {"text": "authentication, then you need to visit", "start": 2894.96, "duration": 4.08}, {"text": "the below link in order to add your", "start": 2896.56, "duration": 6.64}, {"text": "password to the environment. But now", "start": 2899.04, "duration": 9.2}, {"text": "let's just say make an email skill which", "start": 2903.2, "duration": 8.72}, {"text": "sends emails to myself", "start": 2908.24, "duration": 6.4}, {"text": "with the email being this one", "start": 2911.92, "duration": 7.28}, {"text": "with a Python script", "start": 2914.64, "duration": 11.6}, {"text": "and use the SMTP credentials", "start": 2919.2, "duration": 9.919}, {"text": "from", "start": 2926.24, "duration": 7.28}, {"text": "the EN and make the skill", "start": 2929.119, "duration": 8.321}, {"text": "user invocable. So the following script", "start": 2933.52, "duration": 6.24}, {"text": "will make a skill that is invocable at", "start": 2937.44, "duration": 3.919}, {"text": "the user through the skill command and", "start": 2939.76, "duration": 3.599}, {"text": "also just sends an email and if there's", "start": 2941.359, "duration": 3.281}, {"text": "any need for clarification then the", "start": 2943.359, "duration": 3.441}, {"text": "agent will ask for us. But I'm pretty", "start": 2944.64, "duration": 4.16}, {"text": "sure that it'll be able to oneshot this.", "start": 2946.8, "duration": 4.24}, {"text": "The benefit of skills is of course that", "start": 2948.8, "duration": 3.92}, {"text": "if you have a specific workflow that you", "start": 2951.04, "duration": 3.68}, {"text": "repeat constantly, instead of prompting", "start": 2952.72, "duration": 3.359}, {"text": "the agent to do it every single time,", "start": 2954.72, "duration": 2.96}, {"text": "you just need to call the skill with the", "start": 2956.079, "duration": 3.04}, {"text": "command and it will take care of the", "start": 2957.68, "duration": 3.6}, {"text": "rest. All right. So here's what it did.", "start": 2959.119, "duration": 4.96}, {"text": "I created a send email skill at skills/", "start": 2961.28, "duration": 4.88}, {"text": "send email. It is a definition with use", "start": 2964.079, "duration": 3.28}, {"text": "in vocal true so you can trigger it", "start": 2966.16, "duration": 3.36}, {"text": "directly with a send email script. And", "start": 2967.359, "duration": 4.321}, {"text": "how it works is that it uses these", "start": 2969.52, "duration": 4.96}, {"text": "environment variables to send an email", "start": 2971.68, "duration": 4.48}, {"text": "to myself. It's not really useful but", "start": 2974.48, "duration": 3.2}, {"text": "it's just proof of concept. And to get", "start": 2976.16, "duration": 3.52}, {"text": "it working you need to set the SMTP", "start": 2977.68, "duration": 4.48}, {"text": "environ for Gmail. That means inapp", "start": 2979.68, "duration": 3.76}, {"text": "password. And we've already done that.", "start": 2982.16, "duration": 2.56}, {"text": "That's really cool that it tells us the", "start": 2983.44, "duration": 3.36}, {"text": "URL anyways and asks us if you need help", "start": 2984.72, "duration": 3.92}, {"text": "configuring it, but we don't really need", "start": 2986.8, "duration": 3.6}, {"text": "help for that. Just to show you that it", "start": 2988.64, "duration": 3.52}, {"text": "has been added successfully, we can come", "start": 2990.4, "duration": 4.24}, {"text": "into our workspace and check out the", "start": 2992.16, "duration": 4.8}, {"text": "skills. So, we have the send email skill", "start": 2994.64, "duration": 6.24}, {"text": "and if we check it has the YAML front", "start": 2996.96, "duration": 7.599}, {"text": "matter and then all of the commands that", "start": 3000.88, "duration": 5.36}, {"text": "are necessary to run. The last thing", "start": 3004.559, "duration": 3.121}, {"text": "that we need to do is just make sure", "start": 3006.24, "duration": 4.48}, {"text": "that it works. So let's do skill", "start": 3007.68, "duration": 6.0}, {"text": "send email", "start": 3010.72, "duration": 6.08}, {"text": "saying hi and let's see what it does.", "start": 3013.68, "duration": 5.28}, {"text": "Okay, so look now it has told us that", "start": 3016.8, "duration": 4.16}, {"text": "the SMTP credentials haven't been added", "start": 3018.96, "duration": 3.52}, {"text": "to our open clock conflict even though", "start": 3020.96, "duration": 3.2}, {"text": "it's added to my own environment", "start": 3022.48, "duration": 3.599}, {"text": "conflict. So just give me the app", "start": 3024.16, "duration": 3.28}, {"text": "password. I'll set it up and I'll just", "start": 3026.079, "duration": 6.721}, {"text": "tell it take the config from env. And", "start": 3027.44, "duration": 6.879}, {"text": "then it should be able to take it from", "start": 3032.8, "duration": 4.48}, {"text": "there and add it to our open claw config", "start": 3034.319, "duration": 5.201}, {"text": "file. All right. So now it says email", "start": 3037.28, "duration": 3.44}, {"text": "sent. Check your inbox. I'll update the", "start": 3039.52, "duration": 3.2}, {"text": "script to also recognize SMTP email", "start": 3040.72, "duration": 3.359}, {"text": "password. So it looks like the name was", "start": 3042.72, "duration": 2.48}, {"text": "slightly different for the variable.", "start": 3044.079, "duration": 2.561}, {"text": "That's why it actually didn't work. But", "start": 3045.2, "duration": 4.56}, {"text": "otherwise, it's been sent properly. So", "start": 3046.64, "duration": 4.8}, {"text": "it even makes the script autoload from", "start": 3049.76, "duration": 4.4}, {"text": "thev directory so that it has access to", "start": 3051.44, "duration": 6.0}, {"text": "my SMTP password and no extra config is", "start": 3054.16, "duration": 5.28}, {"text": "needed. Now let's just verify that it", "start": 3057.44, "duration": 4.72}, {"text": "actually worked through coming down to", "start": 3059.44, "duration": 6.0}, {"text": "my email and checking my inbox. Let's", "start": 3062.16, "duration": 5.36}, {"text": "refresh it. And look here. Here we see", "start": 3065.44, "duration": 4.0}, {"text": "that we have two messages. Hey Kim just", "start": 3067.52, "duration": 3.599}, {"text": "saying hi. Your email skill is up and", "start": 3069.44, "duration": 4.159}, {"text": "running. And this is a test. So it likes", "start": 3071.119, "duration": 4.161}, {"text": "to send multiple tests. I'm not sure", "start": 3073.599, "duration": 4.401}, {"text": "why, but it's kind of funny. And there", "start": 3075.28, "duration": 5.279}, {"text": "you go. So that concludes the skill", "start": 3078.0, "duration": 5.52}, {"text": "section of the course. So moving on,", "start": 3080.559, "duration": 5.921}, {"text": "let's close this and come back to our", "start": 3083.52, "duration": 4.96}, {"text": "homepage to see what's next, which is", "start": 3086.48, "duration": 4.4}, {"text": "multi- aent. So diving right in, what", "start": 3088.48, "duration": 4.8}, {"text": "are the key concepts? First of all,", "start": 3090.88, "duration": 4.239}, {"text": "multi- aent is nice because you can", "start": 3093.28, "duration": 3.36}, {"text": "isolate different personas, give", "start": 3095.119, "duration": 3.44}, {"text": "different permissions, workspaces. I", "start": 3096.64, "duration": 3.28}, {"text": "gave the example of family versus work", "start": 3098.559, "duration": 2.721}, {"text": "at the beginning of the video. And this", "start": 3099.92, "duration": 2.56}, {"text": "means that each agent has its own", "start": 3101.28, "duration": 2.799}, {"text": "workspace, sessions, authentication", "start": 3102.48, "duration": 4.24}, {"text": "profile, sandbox, and tool policies. The", "start": 3104.079, "duration": 4.561}, {"text": "workspace, if you remember, is where we", "start": 3106.72, "duration": 3.359}, {"text": "have all those markdown files. The", "start": 3108.64, "duration": 3.28}, {"text": "sessions is tracking each session so", "start": 3110.079, "duration": 2.961}, {"text": "that we have different sessions for", "start": 3111.92, "duration": 2.88}, {"text": "different users. The authentification", "start": 3113.04, "duration": 4.24}, {"text": "profiles is for all of the keys that it", "start": 3114.8, "duration": 4.64}, {"text": "registers and saves over time. Then the", "start": 3117.28, "duration": 3.76}, {"text": "sandbox is for the docker container", "start": 3119.44, "duration": 3.84}, {"text": "which we'll talk about in the next step.", "start": 3121.04, "duration": 3.92}, {"text": "And then tool policy is essentially", "start": 3123.28, "duration": 4.0}, {"text": "which tools is your agent allowed to", "start": 3124.96, "duration": 4.0}, {"text": "run. So you can have one agent which has", "start": 3127.28, "duration": 4.16}, {"text": "a more liberal tool policy than another", "start": 3128.96, "duration": 4.48}, {"text": "if one agent has access to more", "start": 3131.44, "duration": 3.44}, {"text": "sensitive data than the other one. So", "start": 3133.44, "duration": 3.36}, {"text": "now let's just go ahead and run an", "start": 3134.88, "duration": 3.76}, {"text": "example. So we're going to add a work", "start": 3136.8, "duration": 3.519}, {"text": "agent which is just done through the", "start": 3138.64, "duration": 3.52}, {"text": "command that you saw there. So we'll", "start": 3140.319, "duration": 4.161}, {"text": "come here we'll say open claw just", "start": 3142.16, "duration": 4.56}, {"text": "double check it's agents add work. So", "start": 3144.48, "duration": 5.92}, {"text": "agents add and then let's say work.", "start": 3146.72, "duration": 5.68}, {"text": "So what it's going to do here is to", "start": 3150.4, "duration": 3.76}, {"text": "create a new work agent and then bring", "start": 3152.4, "duration": 3.52}, {"text": "us through the directory. So it's", "start": 3154.16, "duration": 4.24}, {"text": "telling us to choose a directory for", "start": 3155.92, "duration": 4.32}, {"text": "this new agent which we'll just say", "start": 3158.4, "duration": 3.6}, {"text": "workspace-work.", "start": 3160.24, "duration": 3.359}, {"text": "And then we want to configure the model", "start": 3162.0, "duration": 3.04}, {"text": "off right now which we're just going to", "start": 3163.599, "duration": 3.601}, {"text": "do as anthropic and take the same token", "start": 3165.04, "duration": 5.279}, {"text": "as before. So skanthropic", "start": 3167.2, "duration": 5.44}, {"text": "boom and then yeah the token name can be", "start": 3170.319, "duration": 4.0}, {"text": "default. We're not going to add any chat", "start": 3172.64, "duration": 3.12}, {"text": "channels now, but you can imagine that", "start": 3174.319, "duration": 2.8}, {"text": "you can have your work channel for your", "start": 3175.76, "duration": 3.68}, {"text": "work agent and your personal channel for", "start": 3177.119, "duration": 4.161}, {"text": "your personal agent. If you have a work", "start": 3179.44, "duration": 3.84}, {"text": "phone number and a personal phone number", "start": 3181.28, "duration": 4.4}, {"text": "and boom, the agent work is now ready.", "start": 3183.28, "duration": 4.16}, {"text": "But how do we actually access it? Well,", "start": 3185.68, "duration": 4.72}, {"text": "if we come back to our terminal user", "start": 3187.44, "duration": 5.36}, {"text": "interface and just type agents, it will", "start": 3190.4, "duration": 4.08}, {"text": "give us a list of the agents that we", "start": 3192.8, "duration": 3.039}, {"text": "have. So, we have the main which is", "start": 3194.48, "duration": 2.879}, {"text": "default and then work, which is our work", "start": 3195.839, "duration": 4.0}, {"text": "agent. So if we switch to this one", "start": 3197.359, "duration": 4.081}, {"text": "already has some context because I was", "start": 3199.839, "duration": 3.52}, {"text": "playing with a work agent before. So I'm", "start": 3201.44, "duration": 2.96}, {"text": "honestly just going to create another", "start": 3203.359, "duration": 2.881}, {"text": "agent. Let's call it family. So we start", "start": 3204.4, "duration": 4.719}, {"text": "a new agent from scratch and in the same", "start": 3206.24, "duration": 5.44}, {"text": "workspace directory. We can just copy", "start": 3209.119, "duration": 4.96}, {"text": "the off profiles from main. Say yes.", "start": 3211.68, "duration": 4.0}, {"text": "Configure the model off for this agent.", "start": 3214.079, "duration": 4.961}, {"text": "Now let's say yes as well and choose", "start": 3215.68, "duration": 6.8}, {"text": "anthropic with the same key right here", "start": 3219.04, "duration": 6.0}, {"text": "and then the default name and say no.", "start": 3222.48, "duration": 4.4}, {"text": "Okay. So now if we come and switch the", "start": 3225.04, "duration": 4.88}, {"text": "agents that is family we should get a", "start": 3226.88, "duration": 5.92}, {"text": "fresh blank page as you can see there's", "start": 3229.92, "duration": 5.439}, {"text": "nothing here and if I say hi then we'll", "start": 3232.8, "duration": 4.72}, {"text": "get the same welcome message where it", "start": 3235.359, "duration": 4.48}, {"text": "says you've just woken up and coming", "start": 3237.52, "duration": 4.559}, {"text": "here oh yeah just came online who am I", "start": 3239.839, "duration": 5.28}, {"text": "and looking in our workspace directory", "start": 3242.079, "duration": 4.801}, {"text": "we can set we have the new family one", "start": 3245.119, "duration": 3.44}, {"text": "with all of these different markdown", "start": 3246.88, "duration": 3.76}, {"text": "files and if we added a skill then it", "start": 3248.559, "duration": 4.321}, {"text": "would come underneath the workspace for", "start": 3250.64, "duration": 4.959}, {"text": "the agent specific skills. So now", "start": 3252.88, "duration": 6.479}, {"text": "continuing on with our workspace for", "start": 3255.599, "duration": 5.441}, {"text": "multi- aent, you can find more", "start": 3259.359, "duration": 3.041}, {"text": "information on multi- agent routing at", "start": 3261.04, "duration": 3.44}, {"text": "the URL here in the docs. And once", "start": 3262.4, "duration": 4.08}, {"text": "again, the per agent access profiles are", "start": 3264.48, "duration": 3.76}, {"text": "configurable. So you can give it full", "start": 3266.48, "duration": 3.52}, {"text": "access if you want. You can choose if it", "start": 3268.24, "duration": 3.2}, {"text": "only gets read only tools, what the", "start": 3270.0, "duration": 3.119}, {"text": "workspace is like, if it only can send", "start": 3271.44, "duration": 3.36}, {"text": "messages. And there's many examples in", "start": 3273.119, "duration": 3.761}, {"text": "the config docs right here. So I'd", "start": 3274.8, "duration": 3.68}, {"text": "recommend looking through those for", "start": 3276.88, "duration": 5.12}, {"text": "inspiration. And now if we come into", "start": 3278.48, "duration": 5.599}, {"text": "security, let's talk about a few of the", "start": 3282.0, "duration": 4.4}, {"text": "risks that are inherently involved with", "start": 3284.079, "duration": 4.161}, {"text": "using OpenClaw. We've already discussed", "start": 3286.4, "duration": 4.08}, {"text": "prompt injection. So me users can craft", "start": 3288.24, "duration": 3.52}, {"text": "messages that trick the agent into", "start": 3290.48, "duration": 3.599}, {"text": "running commands. Smaller models are", "start": 3291.76, "duration": 3.839}, {"text": "more susceptible since they're weaker.", "start": 3294.079, "duration": 3.121}, {"text": "And we can mitigate this by enabling", "start": 3295.599, "duration": 3.361}, {"text": "sandbox mode and restricting tool access", "start": 3297.2, "duration": 2.96}, {"text": "for channels that accept messages from", "start": 3298.96, "duration": 3.52}, {"text": "untr untrusted or unknown senders.", "start": 3300.16, "duration": 3.919}, {"text": "Sandbox mode is essential if you", "start": 3302.48, "duration": 2.72}, {"text": "actually have channels that accept", "start": 3304.079, "duration": 2.321}, {"text": "messages from untrusted or unknown", "start": 3305.2, "duration": 2.32}, {"text": "senders. And this is what we're going to", "start": 3306.4, "duration": 3.28}, {"text": "do in the next step. Sandboxing. What is", "start": 3307.52, "duration": 4.559}, {"text": "it? It's a Dockerbased isolation tool", "start": 3309.68, "duration": 4.399}, {"text": "that runs in a container protecting your", "start": 3312.079, "duration": 4.961}, {"text": "host system. We set the sandbox mode to", "start": 3314.079, "duration": 5.601}, {"text": "non-main. If you want everyone except", "start": 3317.04, "duration": 4.96}, {"text": "your main session to be sandboxed. If it", "start": 3319.68, "duration": 3.76}, {"text": "is set to all, then all of your sessions", "start": 3322.0, "duration": 3.28}, {"text": "will be sandboxed. And you can set the", "start": 3323.44, "duration": 4.159}, {"text": "scope to control container life cycle.", "start": 3325.28, "duration": 4.079}, {"text": "So there's three options, session,", "start": 3327.599, "duration": 3.281}, {"text": "agent, or shared. And what this means is", "start": 3329.359, "duration": 3.441}, {"text": "that if you have your life cycle set up", "start": 3330.88, "duration": 3.679}, {"text": "to session, every single session for", "start": 3332.8, "duration": 3.6}, {"text": "every single agent that has a sandbox", "start": 3334.559, "duration": 4.0}, {"text": "will be in a separate Docker container,", "start": 3336.4, "duration": 4.4}, {"text": "which means that they'll be very finely", "start": 3338.559, "duration": 4.161}, {"text": "grained isolated. Then there's agent,", "start": 3340.8, "duration": 3.2}, {"text": "which means that every single agent will", "start": 3342.72, "duration": 2.879}, {"text": "have its own sandbox. And there's", "start": 3344.0, "duration": 3.04}, {"text": "shared, which means that among all of", "start": 3345.599, "duration": 3.441}, {"text": "the sandbox agents, they'll share the", "start": 3347.04, "duration": 4.0}, {"text": "same Docker container. So of course,", "start": 3349.04, "duration": 3.68}, {"text": "this one has less overhead than having", "start": 3351.04, "duration": 3.92}, {"text": "every single Docker than having every", "start": 3352.72, "duration": 4.399}, {"text": "single session be sandboxed. But it is", "start": 3354.96, "duration": 4.399}, {"text": "worth noting that if you do have every", "start": 3357.119, "duration": 4.321}, {"text": "single Docker session sandbox, then", "start": 3359.359, "duration": 3.601}, {"text": "you'll have a lot of overhead in your", "start": 3361.44, "duration": 4.0}, {"text": "sessions. And then the work access", "start": 3362.96, "duration": 4.72}, {"text": "limits a file to be either none, read", "start": 3365.44, "duration": 5.2}, {"text": "only, or read and write. Then the tool", "start": 3367.68, "duration": 5.28}, {"text": "policy is set through tools set deny to", "start": 3370.64, "duration": 4.24}, {"text": "block dangerous tools like exec, process", "start": 3372.96, "duration": 4.08}, {"text": "or browser. So you can configure this so", "start": 3374.88, "duration": 4.56}, {"text": "that each agent has a specific way of", "start": 3377.04, "duration": 4.16}, {"text": "interacting with tools. But it is worth", "start": 3379.44, "duration": 3.04}, {"text": "noting that elevated mode if it's", "start": 3381.2, "duration": 3.68}, {"text": "activated bypasses the sandbox and runs", "start": 3382.48, "duration": 4.16}, {"text": "on the host. So never grant it to", "start": 3384.88, "duration": 4.08}, {"text": "unknown senders. Then with respect to", "start": 3386.64, "duration": 4.159}, {"text": "browser control, the browser tool can", "start": 3388.96, "duration": 3.44}, {"text": "navigate to any URL and interactive", "start": 3390.799, "duration": 3.201}, {"text": "pages making it high risk for automation", "start": 3392.4, "duration": 3.199}, {"text": "attacks. So you should restrict browser", "start": 3394.0, "duration": 3.76}, {"text": "access by channel or sender allow list.", "start": 3395.599, "duration": 4.401}, {"text": "When possible, use the sandbox browser", "start": 3397.76, "duration": 4.799}, {"text": "to limit exposure. And here's a quick", "start": 3400.0, "duration": 4.319}, {"text": "security checklist to make sure that you", "start": 3402.559, "duration": 4.8}, {"text": "have a safe setup. First of all, enable", "start": 3404.319, "duration": 4.401}, {"text": "sandbox mode to run sessions inside", "start": 3407.359, "duration": 2.96}, {"text": "Docker containers. Consider tool", "start": 3408.72, "duration": 3.2}, {"text": "restrictions. Run the security audit,", "start": 3410.319, "duration": 3.441}, {"text": "which we already did. scope your tokens", "start": 3411.92, "duration": 3.76}, {"text": "to be minimum permissions or read only", "start": 3413.76, "duration": 3.44}, {"text": "where possible and then keep it private", "start": 3415.68, "duration": 4.08}, {"text": "which is say don't add personal bots to", "start": 3417.2, "duration": 4.8}, {"text": "group chats. So these are very important", "start": 3419.76, "duration": 4.96}, {"text": "security characteristics to keep in mind", "start": 3422.0, "duration": 5.119}, {"text": "and now another very important security", "start": 3424.72, "duration": 3.92}, {"text": "characteristic we already talked about", "start": 3427.119, "duration": 3.761}, {"text": "is the sandboxing itself. We've already", "start": 3428.64, "duration": 3.919}, {"text": "discussed the three different modes.", "start": 3430.88, "duration": 4.16}, {"text": "Off, none, main, which means that only", "start": 3432.559, "duration": 4.401}, {"text": "the main session has access to your", "start": 3435.04, "duration": 4.4}, {"text": "files and every other agent does not or", "start": 3436.96, "duration": 5.359}, {"text": "all which means that all of the agents", "start": 3439.44, "duration": 5.119}, {"text": "are sandbox. Then there's the scope and", "start": 3442.319, "duration": 4.8}, {"text": "the workspace access. It's worth noting", "start": 3444.559, "duration": 4.401}, {"text": "that there is a default docker image", "start": 3447.119, "duration": 3.521}, {"text": "which will install with the", "start": 3448.96, "duration": 3.76}, {"text": "scripts/andbox.sh", "start": 3450.64, "duration": 3.679}, {"text": "and more information is in the sandbox", "start": 3452.72, "duration": 3.359}, {"text": "documentation. So, if I actually want to", "start": 3454.319, "duration": 3.76}, {"text": "run this script to download the Docker", "start": 3456.079, "duration": 4.161}, {"text": "image, all I have to do is come into my", "start": 3458.079, "duration": 5.681}, {"text": "terminal. And since I already have the", "start": 3460.24, "duration": 5.76}, {"text": "repository cloned on my device, then", "start": 3463.76, "duration": 3.68}, {"text": "it's just right here. If not, you can", "start": 3466.0, "duration": 4.0}, {"text": "just go to the GitHub page and run this", "start": 3467.44, "duration": 4.96}, {"text": "script. It's just in the scripts section", "start": 3470.0, "duration": 4.72}, {"text": "of the Open Cloud repository. Now, when", "start": 3472.4, "duration": 3.76}, {"text": "we run this, I already have the image", "start": 3474.72, "duration": 3.52}, {"text": "installed on my device. And one", "start": 3476.16, "duration": 3.199}, {"text": "important thing is to make sure that", "start": 3478.24, "duration": 3.28}, {"text": "your Docker desktop is actually running", "start": 3479.359, "duration": 3.921}, {"text": "because without the Docker desktop, it's", "start": 3481.52, "duration": 3.52}, {"text": "not going to work. I tried to run this", "start": 3483.28, "duration": 3.44}, {"text": "multiple times and it wasn't working.", "start": 3485.04, "duration": 3.68}, {"text": "And why? It was because my Docker", "start": 3486.72, "duration": 3.599}, {"text": "desktop was not actually running. So", "start": 3488.72, "duration": 3.28}, {"text": "Docker demon wasn't even working. But", "start": 3490.319, "duration": 3.681}, {"text": "now that we've had this image installed,", "start": 3492.0, "duration": 6.319}, {"text": "we just can come here and say make make", "start": 3494.0, "duration": 7.68}, {"text": "the family agent", "start": 3498.319, "duration": 5.28}, {"text": "sandboxed.", "start": 3501.68, "duration": 3.76}, {"text": "And yeah, that should be enough to set", "start": 3503.599, "duration": 3.76}, {"text": "the sandboxing on. You can also just go", "start": 3505.44, "duration": 4.48}, {"text": "into the configuration JSON files and do", "start": 3507.359, "duration": 5.2}, {"text": "this on your own or run it through the", "start": 3509.92, "duration": 6.0}, {"text": "open claw CLI, but in honesty the", "start": 3512.559, "duration": 4.881}, {"text": "easiest way is to just ask the agent to", "start": 3515.92, "duration": 3.52}, {"text": "do it for you. Why not? So, let's make", "start": 3517.44, "duration": 3.44}, {"text": "this bigger and then see what it says.", "start": 3519.44, "duration": 2.96}, {"text": "I'll add sandbox mode to the family", "start": 3520.88, "duration": 3.12}, {"text": "agent.", "start": 3522.4, "duration": 3.04}, {"text": "All right, it's coming and doing the", "start": 3524.0, "duration": 3.04}, {"text": "work here. Boom. Done. The family agent", "start": 3525.44, "duration": 3.76}, {"text": "now sandbox all all sessions, which", "start": 3527.04, "duration": 3.68}, {"text": "means the main and the sub agents when", "start": 3529.2, "duration": 3.04}, {"text": "one exit commands inside a docker", "start": 3530.72, "duration": 2.72}, {"text": "container instead of directly on the", "start": 3532.24, "duration": 2.72}, {"text": "host. And the gateways were starting to", "start": 3533.44, "duration": 2.72}, {"text": "apply the chain. So it even restarted", "start": 3534.96, "duration": 3.92}, {"text": "the gateway for us. You can see this is", "start": 3536.16, "duration": 5.36}, {"text": "all done automatically and it's also", "start": 3538.88, "duration": 4.32}, {"text": "running this for sub aents and sub aents", "start": 3541.52, "duration": 3.599}, {"text": "are really useful. You can actually list", "start": 3543.2, "duration": 3.919}, {"text": "them here by running this command. And", "start": 3545.119, "duration": 3.281}, {"text": "right now I don't have any sub aents", "start": 3547.119, "duration": 4.24}, {"text": "running but the open claw agent will", "start": 3548.4, "duration": 4.959}, {"text": "autonomously run sub agents to do a task", "start": 3551.359, "duration": 3.681}, {"text": "asynchronously and it's really useful", "start": 3553.359, "duration": 3.121}, {"text": "and if you have sandboxing on then you", "start": 3555.04, "duration": 2.319}, {"text": "also want to make sure that your sub", "start": 3556.48, "duration": 4.319}, {"text": "agents are sandbox. So otherwise now", "start": 3557.359, "duration": 4.801}, {"text": "it's noting that this requires dockers", "start": 3560.799, "duration": 2.481}, {"text": "to be running on your machine. If you", "start": 3562.16, "duration": 2.399}, {"text": "don't have it installed running, the", "start": 3563.28, "duration": 2.559}, {"text": "sandbox won't be able to spin up", "start": 3564.559, "duration": 3.04}, {"text": "containers and exec commands will fail.", "start": 3565.839, "duration": 3.28}, {"text": "So that's not a problem for us. Let's", "start": 3567.599, "duration": 3.041}, {"text": "just make sure that we checking the", "start": 3569.119, "duration": 3.68}, {"text": "agent that we're on. Right? So right now", "start": 3570.64, "duration": 4.88}, {"text": "we're on main. Let's switch to family.", "start": 3572.799, "duration": 4.721}, {"text": "And then just to make sure that we are", "start": 3575.52, "duration": 6.079}, {"text": "sandboxed properly, let's say check how", "start": 3577.52, "duration": 9.599}, {"text": "many files are in my desktop directory.", "start": 3581.599, "duration": 7.601}, {"text": "And since this is sandbox, it should", "start": 3587.119, "duration": 8.081}, {"text": "fail at querying this result.", "start": 3589.2, "duration": 8.0}, {"text": "Boom. So it says I'm sandbox. I can't", "start": 3595.2, "duration": 4.399}, {"text": "see your host file system like desktop", "start": 3597.2, "duration": 3.599}, {"text": "from inside the doc container. That's", "start": 3599.599, "duration": 2.081}, {"text": "actually the sandbox working as", "start": 3600.799, "duration": 2.161}, {"text": "intended. You need to run that on the", "start": 3601.68, "duration": 2.639}, {"text": "machine directly, which is just through", "start": 3602.96, "duration": 3.359}, {"text": "this command here. Or if you want me to", "start": 3604.319, "duration": 3.201}, {"text": "be able to access specific host", "start": 3606.319, "duration": 2.8}, {"text": "directories, you could add bide mounts", "start": 3607.52, "duration": 3.68}, {"text": "to the sandbox config under this", "start": 3609.119, "duration": 4.801}, {"text": "command. It's asking me if I want it to", "start": 3611.2, "duration": 4.32}, {"text": "do that, but it really can't because it", "start": 3613.92, "duration": 3.919}, {"text": "can't access the configuration files", "start": 3615.52, "duration": 5.2}, {"text": "luckily. But in any case, this shows you", "start": 3617.839, "duration": 4.641}, {"text": "that when we're in sandbox mode,", "start": 3620.72, "duration": 4.24}, {"text": "everything is done within the Docker", "start": 3622.48, "duration": 4.079}, {"text": "container. And actually, if we come", "start": 3624.96, "duration": 3.76}, {"text": "here, we can check underneath the", "start": 3626.559, "duration": 4.481}, {"text": "sandboxes directly to see that family", "start": 3628.72, "duration": 4.56}, {"text": "has this sandbox here with all of the", "start": 3631.04, "duration": 4.48}, {"text": "skills. And it downloads all the skills", "start": 3633.28, "duration": 3.44}, {"text": "automatically when you initialize a new", "start": 3635.52, "duration": 3.2}, {"text": "sandbox with an agent, which is really", "start": 3636.72, "duration": 3.92}, {"text": "cool. So, you have access to all of them", "start": 3638.72, "duration": 4.0}, {"text": "instantly. And then we have everything", "start": 3640.64, "duration": 4.0}, {"text": "here which is pretty standard and", "start": 3642.72, "duration": 4.399}, {"text": "straightforward. So there you go. Once", "start": 3644.64, "duration": 4.479}, {"text": "again, if security is a problem for you,", "start": 3647.119, "duration": 3.68}, {"text": "which it should be, then I would highly", "start": 3649.119, "duration": 3.2}, {"text": "recommend running everything on a", "start": 3650.799, "duration": 3.841}, {"text": "sandbox or setting it such that only", "start": 3652.319, "duration": 4.641}, {"text": "your main agent has access to your", "start": 3654.64, "duration": 4.88}, {"text": "files. But one thing worth noting is", "start": 3656.96, "duration": 3.839}, {"text": "that once you do have everything", "start": 3659.52, "duration": 3.92}, {"text": "sandboxed, it is less useful because", "start": 3660.799, "duration": 4.241}, {"text": "your agent no longer has access to your", "start": 3663.44, "duration": 3.44}, {"text": "files and most of the things that you", "start": 3665.04, "duration": 3.68}, {"text": "want to do on OpenClaw, which are", "start": 3666.88, "duration": 4.479}, {"text": "helpful, require file access. So there", "start": 3668.72, "duration": 4.879}, {"text": "you go. That's the sandboxing and that", "start": 3671.359, "duration": 4.24}, {"text": "pretty much concludes the video. So I", "start": 3673.599, "duration": 3.441}, {"text": "hope this crash course was useful and", "start": 3675.599, "duration": 2.881}, {"text": "that you learned a lot about OpenClaw", "start": 3677.04, "duration": 2.96}, {"text": "throughout this tutorial. If you'd like", "start": 3678.48, "duration": 2.8}, {"text": "to ask any questions in the comment", "start": 3680.0, "duration": 3.359}, {"text": "section, please do not hesitate. I'll be", "start": 3681.28, "duration": 4.319}, {"text": "very actively answering questions and", "start": 3683.359, "duration": 4.161}, {"text": "hopefully you can do your own projects", "start": 3685.599, "duration": 3.601}, {"text": "on OpenClaw and either add them to the", "start": 3687.52, "duration": 3.68}, {"text": "claw hub or just share them in the", "start": 3689.2, "duration": 3.84}, {"text": "comment section so we can all learn from", "start": 3691.2, "duration": 3.28}, {"text": "each other. With that being said, my", "start": 3693.04, "duration": 2.799}, {"text": "name is Kian and thank you so much for", "start": 3694.48, "duration": 4.4}, {"text": "watching. I hope you have a great day.", "start": 3695.839, "duration": 3.041}]]