WEBVTT

00:00:00.000 --> 00:00:09.200
What if I told you that you can now let Cloud automate any application out there even if that tool doesn't have a public API? Well, I just did that. Skull.com

00:00:09.200 --> 00:00:25.775
doesn't have a public API, and yet I connected Cloud Code to it. And here you can see I am querying some of the posts by our members right from within Cloud Code. MyFitnessPal also doesn't have a public API, and yet here, my Cloud Agent on Telegram just added the meal I had straight to the MyFitnessPal

00:00:25.775 --> 00:00:30.840
app. And this is now possible because I just made custom CLIs or command line interfaces

00:00:30.840 --> 00:00:34.760
for these apps that I use. And with this new tool called PrintingPress,

00:00:34.920 --> 00:00:59.340
those CLIs are now so easy to create. In fact, it's so easy that someone created a CLI for Google Photos, for Google Ads if you want your agent to connect to Google Ads. There's one for Mercury. There's one for Kalshi, and there's even one for Domino's. So if you wanna order pizza using your Cloud Code agent, that is now possible too with the CLI. So if you want to create CLIs of your own, I think this tool will change the way you use Cloud Code if you use it correctly. So let's dive into it.

00:01:02.540 --> 00:01:36.620
So just to set the scene on why this tool that I'm about to show you is quite important, you know when you're working with agentic harnesses like Cloud Code, you need to connect them to external tools in order to do real work. And the reason why that is is because a lot of the information and the work that we actually do live in the tools that we use every day. And if you don't have a way for your agent like Cloud Code to connect to these tools, then you also won't be able to automate a lot of the work that you do in these platforms. Now as it stands, there are mainly three avenues by which we connect our agents to these tools. There is the command line interface or CLIs,

00:01:36.875 --> 00:01:44.235
application programming interfaces or APIs, and the one that is newest among them which are MCPs or model context protocols.

00:01:44.315 --> 00:01:55.190
Now this tool that we're about to go through today called PrintingPress basically lets you create a command line interface for any external tool out there. Now that's a lot of technical terms and abbreviations,

00:01:55.190 --> 00:02:13.975
so let me just differentiate what each of them actually entail. APIs, which are probably the most popular amongst these three, the way that works is quite simple. Let's say your agent asks for some information. The tool basically responds back with this structured output. Basically, a wall of text usually in a JSON format that gives you a lot of information.

00:02:14.295 --> 00:02:50.100
And often, it is quite verbose, which means that apart from giving your agent exactly what it needs, it also gives it a bit more information that it didn't really ask for. And it depends on the way that this API is structured from the external tool side, but most often, the output that the agent gets is quite verbose. And because there's a lot of words in here, that also means that it uses quite a lot of tokens. Now since then, Entropic actually invented this model context protocol. But the problem with this option is that if you have too many MCPs loaded within your cloud code, for example, what usually happens there is that in every session that you open, the descriptions

00:02:50.100 --> 00:02:53.140
of these MCP tools and these connectors

00:02:53.140 --> 00:03:18.335
get preloaded into the context window even before you type or prompt anything. And so if you were to imagine how that connection happens, basically, the external tool is giving the agent the whole menu of actions first even before the agent connects with that tool, which has its drawback as well because then it fills up the context window. And so this is mainly why when I'm trying to connect to an external tool, the first thing that I ask my Cloud Code to look for is to see if there is a CLI interface

00:03:18.560 --> 00:03:38.855
for that particular external third party tool. The reason why that is is because amongst these three, CLIs have the most potential to be the most lightweight. Because the way they can work is that if the agent asks for something, then the tool will give only that specific ask. And so if you think about the context used between the three of these, then the CLI tool would be the most minimal,

00:03:38.935 --> 00:03:41.015
while API and MCP connections

00:03:41.095 --> 00:04:12.355
usually have drawbacks when it comes to token usage. And just to show how that looks like under the hood, if in case you are curious, let's say if you're using a CLI tool to get the last three YouTube videos of my particular channel, for example, literally what the agent will do is to just type out a command like this, and then it will get the result back. If this API is designed to be verbose with its output, it will get not just the request that it's asking for, but also a lot of other attributes and parameters in here, which you might not necessarily need. And then if you go to the MCP,

00:04:12.355 --> 00:05:03.835
that has a similar problem because if you have the MCP, let's say, for YouTube installed on your agentic platform, what's going to happen there is that these tools like search videos, get video details, get channel info, these tools and their descriptions will be loaded into your context. And even before you type any prompt into any particular cloud code session, then these words and tokens will be using up your context already even before you interface with your agent. And so that is why, at least for broad general use cases, I think CLI wins amongst these connection types. Now there is one problem with CLIs and that is the fact that they have to exist first. And for a lot of tools, they actually don't exist unless a developer made them in the first place. But lucky for us, we are living in the future and we can now build them ourselves using this open source project called the printing press. And if we go to printingpress.dev,

00:05:03.835 --> 00:05:21.920
is their website, it's basically a toolkit and you can think of it as a set of skills for your agent where if you invoke this printing press toolkit and skill that will allow your Cloud Code to print the best agent design CLI of all time from anything. So let's say a website doesn't have a public facing API.

00:05:22.000 --> 00:05:44.170
If you use PrintingPress and I was able to go through the process that they have earlier, your Cloud Code will basically guide you on how to create a best in class CLI for whatever tool it is that you want to create a connection for. And it will not only print you a token efficient Go CLI, so Go is this coding language by Google. And apart from that, it will also give you a Cloud Code skill, an Open Claw skill,

00:05:44.330 --> 00:06:47.420
and even an MCP server if you wish. And to get started with it, I actually recommend for you to check out these two links that they have here. One is their official GitHub repository where that toolkit lives, and this library where they already have CLIs for new tools that their community has already developed. So I'll link to their GitHub repo below. And to install this in Cloud Code, as usual, you can just send the link to this repository to your Cloud Code. But instead of just asking Cloud Code to install it for you, what I usually advise for you to do is to actually let Cloud Code personalize it for your setup. So you can see the prompt that I gave it. Very simple. I ask using this, what are the top three CLIs that I can print based on all you know about me? And that is pretty useful because you can see here that it's recommending to me to create a YouTube analytics CLI because I do YouTube content. I also send stuff on Substack. So if that's a CLI that I want to print, I can do that as well. And also because I used Todoist for a lot of my personal to dos, then it knows that that might be a CLI interface that would be useful to me. In fact, here you can see that it also taught about MyFitnessPal,

00:06:47.420 --> 00:07:08.180
but since we created that earlier together, that is now available to me. So try out a simple prompt like that. And for sure, since all of us have different use cases for Cloud Code and the work that we do, it might suggest different things for you. Now in case you want to just browse the official library or the current library of CLIs that have already been printed by their community,

00:07:08.260 --> 00:07:49.165
then you can just go to this other repo called the printing press library. Now do note that I think this toolkit was only launched like maybe a day or two ago. So for sure, the library here is not yet that big. So instead of browsing this library yourself, my advice is to just have Cloud Code do it for you. So you can see here, I gave it that link and I ask it what are the top CLIs here that might be useful to me given all you know about me. And it tells me here there is already a CLI for Notion. So if I want to automate Notion, that is something I can do. Slack is there as well. Linear for project management. If you're using fireflies.ai for meeting transcripts, that would be one as well. And you can see because this printing press toolkit made it now so easy to create these CLIs,

00:07:49.165 --> 00:08:00.925
there's already quite a few in there that may be useful to you. So there, with just those two repos, you are pretty well set to get started really. And if you want a bit more visual view, you can also browse the different printing press

00:08:01.180 --> 00:08:42.120
CLIs that they created here right in their website. There's even one that lets you order pizza from Domino's, which is quite interesting. I haven't tried that out yet, but, like, with the theme of this video, you can basically do a CLI for everything now apparently. But, of course, the real power of this tool is when you create the CLI yourself. So how do we do that? And by the way, if you're interested in going from just using AI to getting paid for it, then check out the RoboNuggets community down in the description. We've got founders in there who landed their first client in weeks, live build sessions where we create this stuff together, and the actual templates behind what I just showed in this video. The community is also the reason these lessons get made, so see that below if that's for you. So from within this Claude code session, that is actually how I created that MyFitnessPal

00:08:42.120 --> 00:09:01.370
CLI that I was testing it out earlier, and it literally only took me, like, fifteen minutes to set it up. And here, after the fact, I just asked it to teach me how printing press works, and it's basically this five step process. And instead of going through the text that it gave us here, you know, I'm a big fan of HTML slides, so I just asked my Cloud Code to create this HTML

00:09:01.450 --> 00:09:50.325
slide for me just so that we can go through it better. And, basically, how the PrintingPress Toolkit works is that first, you help Cloud Code capture the essential actions within that website. So what you do there is you use the website normally with DevTools recording, save that, and then give that to Cloud Code in this HAR format. And if you don't know what that is, an HAR is basically an HTTP archive. So again, with a lot of these tools, it's just another text file. And to be honest, once you do this with your Cloud Code, it will actually guide you how to do this dev tools recording anyway. But how that basically works is when you're on the website that you're trying to automate, on Chrome, if you press f 12 let me just zoom that in so you can see. If you go to this network tab, click on preserve log and make sure it is recording. If you do the actions that you want to automate like this one, if I want to automate MyFitnessPal,

00:09:50.325 --> 00:09:58.805
what I'll do is to just do the steps manually once, like adding the food in here. And basically, the network here on the right, it will capture all of the network elements

00:09:58.885 --> 00:10:39.570
that happened from within this page. And then from that, what you can do is just do a right click. And if you go to copy, there is an option here to copy all as h a r. And if you do that, that will give you the HTTP archive that Cloud Code needs to move to step two. Now the great news is that step one is probably the only manual step that you need to take because these following steps from two onward can already be handled end to end by your Cloud Code, and you just need to sort of steer it and just make sure that the spec that you are trying to create is aligned with what you want. But, essentially, what it will do is it will use this skill, I believe, with printing press where it will read that recording, that HAR that you did. It will pick out the real API calls,

00:10:39.730 --> 00:11:12.110
drops noise, which there's a lot of them. There's trackers in that sort of interaction in the network that you just did, and basically makes endpoints for you grouped by topic. And then after that step, it will now generate the CLI tool and even give you a Claude skill from whatever spec it is that you agreed. Now something unique that they've done, which I think is quite smart, is they introduced this step where you actually bundle of a local copy of the relevant data from that external tool. Now in case that's confusing to you, it's actually simpler than you think. Basically, let's say you are connecting to MyFitnessPal

00:11:12.485 --> 00:12:31.730
all of their data, like their food database that lives in the cloud, basically in a computer that they have somewhere. Now what printing press apparently allows you to do and guides you to set up is to set up a local mirror where it downloads a select subsection, obviously not the whole database, of just the relevant data and stores it in what's called a SQL like database. So essentially, just the food that I guess is relevant to you or other stuff that you want to keep a local copy of. And the reason why this is important is because if you try to keep hitting this source in particular for those same data points, then you may encounter issues such as blocks to your IP. And also overall, that just costs more tokens and more bandwidth versus having to store select data in your local computer, which you can anyway ask your cloud code to edit if it becomes too sizable. So it's sort of similar to caching and just making sure that those local files are available on your device so that it is faster as well. And now once you have that, what you can now do is to run or even include this new CLI of yours as part of a routine to run on a schedule. And the way you invoke that just like any skill is just by typing the slash command for it or even just by talking to your Cloud Code in natural language that you want to connect to, let's say, Bifit the Spy using the CLI that you just built. And because I have Claude code connected to my Telegram agent, then what I can also do is

00:12:31.970 --> 00:12:47.055
invoke that skill whenever I need it and just ask Robo here to control my MyFitnessPal for me so that I don't have to do the logging manually. And I haven't tested it yet, but I think what I can also do is to send an image in here and sort of just replicate that Cal AI functionality

00:12:47.055 --> 00:13:11.755
where you pass in an image and it will figure out what to add. So I'm probably going to play around with this a bit and see how we can improve the CLI to accommodate for that. And there you go. That is how you make a CLI for literally everything now. So if you have any tools that you are working on or using sort of on a day to day basis and you can't find a solution to connect that to your AI agents, then this printingpress.dev

00:13:11.755 --> 00:13:12.555
toolkit

00:13:12.635 --> 00:13:21.430
may be something that you want to check out. I hope that was useful. And if it is, then consider subscribing so that we can put out more stuff like this. I'll see you guys next time. Thank you.
