[00:00] (0.00s)
I have now for the last several weeks
[00:01] (1.76s)
switched over from cursors agent to
[00:03] (3.76s)
claude code and I'm not looking back at
[00:05] (5.76s)
all. Here's how I use cloud code and my
[00:07] (7.76s)
best tips. First, I install the
[00:09] (9.60s)
extension which works with VS Code,
[00:11] (11.52s)
cursor, and probably other forks like
[00:13] (13.28s)
Windsurf. It doesn't do a lot, but it
[00:15] (15.12s)
makes it really easy to launch Cloud
[00:16] (16.64s)
Code right in your IDE. I still use
[00:18] (18.80s)
Cursor by default because every once in
[00:20] (20.64s)
a while it's nice to use command K and
[00:22] (22.16s)
their tab completions, but the only time
[00:24] (24.00s)
I've touched the agent sidebar is when
[00:25] (25.92s)
Cloud was down. What the extension does
[00:27] (27.60s)
do is it makes it really easy to open
[00:29] (29.60s)
cloud code. I often have it in multiple
[00:31] (31.68s)
panes at a time. So I can run things in
[00:33] (33.60s)
parallel as long as they're working on
[00:34] (34.88s)
different parts of the codebase and
[00:36] (36.16s)
different files. And if I have a file
[00:37] (37.84s)
open, it'll automatically pull that into
[00:39] (39.68s)
the context. Now Claude uses a terminal
[00:41] (41.76s)
UI which I was very hesitant about at
[00:43] (43.76s)
first, but they actually do a really
[00:45] (45.44s)
good job with it. You can tag files
[00:47] (47.28s)
easily and choose what you want to
[00:48] (48.80s)
include. They have slash commands which
[00:50] (50.56s)
are awesome. Speaking of, I use the
[00:52] (52.24s)
model command a lot and usually work
[00:54] (54.16s)
with opus unless opus is having issues
[00:56] (56.48s)
which happens and then switch to sonnet.
[00:58] (58.32s)
A lot of people should probably just use
[00:59] (59.52s)
the defaults. It'll use opus until
[01:01] (61.44s)
you're at 50% of your usage limits and
[01:03] (63.52s)
then switch to sonnet which is more
[01:04] (64.96s)
costefficient. I found opus isn't slow
[01:07] (67.20s)
like 3.5 used to be compared to sonnet
[01:09] (69.36s)
at least not noticeably. And both models
[01:11] (71.12s)
are very good but opus is just a little
[01:12] (72.72s)
bit better. Other commands I use a lot I
[01:14] (74.48s)
use clear a lot in my opinion. every
[01:16] (76.56s)
time you're doing something new, clear.
[01:18] (78.48s)
You don't need all that chat history in
[01:20] (80.64s)
your tokens every time. And you don't
[01:22] (82.16s)
need Cloud always trying to compact it
[01:23] (83.68s)
either because compaction basically runs
[01:25] (85.92s)
another LLM call to output a bunch of
[01:28] (88.16s)
tokens, which takes time to summarize
[01:30] (90.08s)
the conversation history. Just clear
[01:32] (92.08s)
clear every time you're doing something
[01:33] (93.36s)
new. The up arrow key will go back to
[01:35] (95.28s)
past chats, including chats from prior
[01:37] (97.52s)
sessions. So if you close out of Claude
[01:40] (100.00s)
and open it again, for instance, another
[01:42] (102.00s)
day, you can still go back to prior
[01:44] (104.08s)
sessions. Speaking of opening Claude,
[01:46] (106.16s)
one thing it does that's really annoying
[01:47] (107.76s)
is after you type a prompt, it'll start
[01:50] (110.00s)
working. Agents take a while. So, I'll
[01:51] (111.68s)
go about my business. I'll check Slack.
[01:53] (113.36s)
I'll check email. I might code something
[01:54] (114.80s)
manually. But then here's the problem. I
[01:56] (116.80s)
come back and I see it's asking me, can
[01:59] (119.04s)
I edit this file? It's really annoying.
[02:01] (121.36s)
Yes, you can edit files. It's the point
[02:03] (123.04s)
of being an agent. Like, edit the files.
[02:04] (124.96s)
And there's no way I found to globally
[02:06] (126.80s)
say just edit files. It's fine. And then
[02:09] (129.12s)
you'll go about your business and come
[02:10] (130.32s)
back and it's asking if it can run a
[02:12] (132.56s)
basic bash command. Can I run lint? Yes.
[02:15] (135.12s)
Oh my god. Yes. So, here's what I
[02:16] (136.80s)
actually do. Every time I open claude
[02:18] (138.48s)
code, I actually quickly hit command C
[02:20] (140.48s)
and then I run claude dangerously skip
[02:23] (143.12s)
permissions and enter. It's not
[02:25] (145.20s)
necessarily as dangerous as it sounds.
[02:27] (147.20s)
It's akin to what cursor used to call
[02:29] (149.12s)
yolo mode. And while it runs a minor
[02:31] (151.12s)
risk that a rogue agent could run a
[02:32] (152.80s)
command you didn't expect that's
[02:34] (154.00s)
destructive, I've never seen that happen
[02:35] (155.60s)
in my life. So, up to you if you want to
[02:37] (157.04s)
take the risk. I have for weeks and
[02:39] (159.12s)
weeks and I've never run into a problem
[02:40] (160.40s)
whatsoever. Now, speaking of slash
[02:42] (162.00s)
commands, Claude has a lot. One really
[02:44] (164.24s)
cool one is installing the GitHub app.
[02:46] (166.08s)
This makes it so when you submit a PR,
[02:48] (168.00s)
Claude will automatically do a code
[02:49] (169.44s)
review. This is pretty awesome because
[02:51] (171.04s)
as you use more AI tools, your volume of
[02:53] (173.04s)
pull requests might increase. And I
[02:55] (175.04s)
found in certain cases the AI models are
[02:56] (176.96s)
better at finding bugs than humans
[02:59] (179.28s)
because they frankly put more effort
[03:00] (180.72s)
into it in some ways. While I've seen
[03:02] (182.56s)
humans are really common to nitpick at,
[03:04] (184.48s)
oh, this could be named differently and
[03:05] (185.92s)
stuff like that, I've seen Claude
[03:07] (187.44s)
actually find real bugs that our humans
[03:09] (189.28s)
missed in a good chunk of cases. The
[03:11] (191.36s)
main tip I have for this is Claude will
[03:13] (193.44s)
add a claude code review.yaml. It'll
[03:16] (196.00s)
have a prompt in it already. Here's the
[03:17] (197.84s)
prompt I use. The original issue we
[03:20] (200.24s)
found with this tool is it was really
[03:21] (201.92s)
verbose. It would comment on all kinds
[03:23] (203.92s)
of like nuanced, unimportant things and
[03:26] (206.00s)
write a whole essay on every PR. What we
[03:28] (208.08s)
really care about most for the AI to
[03:29] (209.76s)
review is bugs and potential
[03:31] (211.44s)
vulnerabilities. So we tell it look for
[03:33] (213.36s)
bugs and security issues only report on
[03:35] (215.60s)
bugs and potential vulnerabilities and
[03:37] (217.36s)
be concise. The cool part is when you
[03:39] (219.68s)
run this command and edit that one line,
[03:42] (222.08s)
you have a pretty awesome new addition
[03:43] (223.52s)
to your workflow. There's a lot of other
[03:45] (225.04s)
really cool stuff it can do like pull
[03:46] (226.72s)
comments from a get a pull request and
[03:48] (228.24s)
address them, review a pull request and
[03:50] (230.56s)
do things like set up your terminal
[03:52] (232.32s)
because out of the box shift enter will
[03:54] (234.24s)
not work for adding new lines. But we
[03:56] (236.72s)
can just hit enter and tell it to do it
[03:58] (238.16s)
for us. And there we go. Shift enter
[04:00] (240.08s)
adds new lines. Beautiful. Speaking of
[04:01] (241.92s)
quirks with using a terminal interface
[04:03] (243.60s)
with cloud code, you might be surprised,
[04:05] (245.28s)
but you actually can drag files in.
[04:07] (247.44s)
Though in tools like cursor and probably
[04:08] (248.72s)
VS Code, it opens it in a new tab. If
[04:11] (251.28s)
you drag in and hold shift, it'll
[04:13] (253.12s)
actually pop it in and reference it like
[04:14] (254.88s)
you need. Now, one thing that doesn't
[04:16] (256.40s)
work is it doesn't paste images from
[04:18] (258.72s)
your clipboard. So, if I do the Mac
[04:20] (260.24s)
thing where I take a screenshot of this
[04:21] (261.92s)
and command V, nothing happens. A
[04:24] (264.08s)
special trick for this is control +v
[04:26] (266.08s)
actually will work there. It pasted the
[04:27] (267.92s)
image. That one took me a long time to
[04:29] (269.52s)
figure out. Another thing that took me
[04:30] (270.72s)
way too long to figure out because this
[04:32] (272.24s)
is not a normal UI interface is when
[04:34] (274.16s)
cloud is working. I always thought to
[04:35] (275.60s)
hit C to tell it to stop. That doesn't
[04:38] (278.00s)
do it. Hitting control C twice just exit
[04:40] (280.08s)
entirely. Oops. To actually stop Cloud,
[04:42] (282.40s)
you need to escape. And if you want to
[04:43] (283.76s)
jump to any previous message, you can
[04:45] (285.20s)
hit escape twice and see a list of
[04:47] (287.12s)
previous messages and pop back to them.
[04:49] (289.20s)
There's a lot of invisible features like
[04:50] (290.64s)
this in Cloud Code. If you want to be
[04:52] (292.40s)
hardcore, Cloud also has a Vim mode, but
[04:54] (294.24s)
I'm not a Vim user, so I do not use it.
[04:55] (295.92s)
Now, let's talk a little bit more about
[04:57] (297.20s)
why Cloud Code is so good. In builder,
[05:00] (300.00s)
we have one React component that is so
[05:02] (302.88s)
large, I can barely even scroll to the
[05:05] (305.20s)
bottom. It is 18,000 lines of code.
[05:07] (307.60s)
There's never been an AI agent that can
[05:09] (309.44s)
reliably update this file and tell Cloud
[05:11] (311.52s)
Code. When using Cursor, I have still
[05:13] (313.20s)
found a lot of little hiccups. It has
[05:15] (315.20s)
trouble resolving patches and has to
[05:17] (317.04s)
rewrite files often. It really struggles
[05:19] (319.20s)
to update extremely large files. Cloud
[05:21] (321.36s)
Code has no issue updating this file,
[05:24] (324.24s)
like not even remotely. Cloud Code works
[05:26] (326.48s)
great with large code bases and complex
[05:28] (328.96s)
tasks. And I find it just getting stuck
[05:31] (331.76s)
incredibly rarely. I'm not even sure if
[05:33] (333.76s)
I've noticed that at all. Whereas with
[05:35] (335.44s)
cursor, I feel like I have to babysit it
[05:37] (337.04s)
more and when it gets stuck, stop it and
[05:39] (339.04s)
realize maybe this was just not a good
[05:40] (340.56s)
task to ask. Cloud is also exceptionally
[05:42] (342.88s)
good at navigating a large codebase,
[05:45] (345.20s)
searching for patterns, understanding
[05:46] (346.80s)
relationships between different parts of
[05:48] (348.56s)
the code, components, shared state,
[05:50] (350.40s)
stuff like that. It's honestly kind of
[05:52] (352.00s)
incredible. If you think about it,
[05:53] (353.12s)
cursor built a product as a general
[05:55] (355.36s)
purpose agent intended to support a
[05:57] (357.20s)
variety of models. In order to do this,
[05:59] (359.60s)
you have a whole additional team
[06:00] (360.80s)
involved. They trained custom models as
[06:03] (363.04s)
well and there's just more layers and
[06:04] (364.80s)
requirements and things going on here as
[06:06] (366.72s)
well as cursor doesn't build or control
[06:09] (369.12s)
the core models that do the core AI.
[06:11] (371.36s)
Compare that to anthropic. They
[06:13] (373.04s)
definitively make the best coding models
[06:15] (375.20s)
and so they make cloud code the best at
[06:16] (376.96s)
using the model. And when they hit
[06:18] (378.24s)
challenges with cloud code, they go and
[06:19] (379.68s)
make the model better. They only care
[06:21] (381.12s)
about supporting their model. They know
[06:22] (382.80s)
everything about how the model works,
[06:24] (384.40s)
how it's trained, and how to use it in
[06:25] (385.76s)
depth. And they continue to train the
[06:27] (387.44s)
model to work well with what they need
[06:29] (389.68s)
for cloud code. It also means that
[06:31] (391.36s)
Anthropic can give you the most possible
[06:33] (393.60s)
value for the least possible price
[06:35] (395.60s)
because you only have to worry about
[06:36] (396.96s)
paying them. So they could compete on
[06:38] (398.64s)
giving you maximum access to models like
[06:40] (400.48s)
Opus without situations like cursor has
[06:43] (403.28s)
where cursor has to make money too. So
[06:45] (405.04s)
cursor needs to make a margin and
[06:46] (406.56s)
anthropic which fundamentally means you
[06:48] (408.80s)
need to pay some degree more with cursor
[06:50] (410.64s)
or they need to lose more money which
[06:52] (412.16s)
isn't sustainable. So, I commend the
[06:53] (413.68s)
Anthropic team for making such a good
[06:55] (415.76s)
tool with cloud code because they can
[06:57] (417.52s)
give you the maximum performance at the
[06:59] (419.12s)
lowest price directly from the experts
[07:01] (421.68s)
and make their models and products
[07:03] (423.04s)
better altogether. It's really smart and
[07:05] (425.52s)
it's where I am betting my time and
[07:07] (427.44s)
money right now today given the
[07:09] (429.04s)
incredible results I've been seeing.
[07:10] (430.56s)
Now, speaking of pricing, I pay for the
[07:12] (432.48s)
max mode. Now, if you're used to cloud
[07:14] (434.24s)
code previously being based on API
[07:16] (436.48s)
pricing, cloud code now supports the
[07:18] (438.32s)
standard pricing plans. Max mode, in my
[07:20] (440.80s)
opinion, is an absolute steal. If you
[07:23] (443.12s)
feel like a shockingly intelligent coder
[07:25] (445.12s)
working for you 247 is not worth $100 a
[07:27] (447.84s)
month, you need to look hard at what a
[07:29] (449.92s)
human costs per hour for engineering,
[07:32] (452.40s)
regardless of where you look in the
[07:33] (453.52s)
world, and it's orders of magnitude more
[07:35] (455.12s)
than that. So, if you're having trouble
[07:36] (456.40s)
justifying it for yourself or from your
[07:38] (458.40s)
work, always remember the gains this has
[07:40] (460.80s)
given you compared to actual manual
[07:42] (462.88s)
human work. One other feature of Cloud
[07:44] (464.80s)
Code that I absolutely swear by is
[07:46] (466.48s)
queuing. So we could type a message say
[07:48] (468.56s)
add more comments. This is a thread
[07:50] (470.00s)
about adding comments to some code. And
[07:51] (471.68s)
often I think about oh the next thing I
[07:53] (473.76s)
want to do. What I used to do is create
[07:55] (475.44s)
a notepad and start drafting other
[07:57] (477.36s)
prompts that I want to do. And then when
[07:59] (479.12s)
I see one is done I'll go and paste the
[08:01] (481.20s)
next one and enter. That's what I did
[08:02] (482.32s)
with cursor which is really annoying
[08:03] (483.92s)
because again I'll usually go about my
[08:05] (485.84s)
day and answer Slack messages, answer
[08:07] (487.84s)
email, do something else and come back
[08:09] (489.84s)
and see the agents been idle for who
[08:11] (491.36s)
knows how long. Type the next prompt go
[08:13] (493.04s)
away. It was not very time efficient.
[08:14] (494.64s)
But now with Claude, you can just cue
[08:16] (496.32s)
more messages. So if I think of another
[08:18] (498.08s)
one, actually also add comments to the
[08:21] (501.60s)
main chunks of the JSX. I can cue them
[08:25] (505.04s)
and to the computed values. And what's
[08:26] (506.88s)
great is Cloud is really smart about
[08:28] (508.72s)
knowing when it should actually run
[08:30] (510.48s)
those things. If it needs feedback from
[08:32] (512.32s)
you, it's not going to automatically run
[08:33] (513.68s)
the cued messages. It's a pretty smart
[08:35] (515.60s)
system, but when it's wrapped up
[08:36] (516.96s)
something, it will start addressing them
[08:39] (519.04s)
when it makes sense. So you could queue
[08:40] (520.96s)
up a lot, go about your day, and in a
[08:42] (522.40s)
lot of cases just come back to a ton of
[08:44] (524.32s)
work done in a good and smart way. But
[08:46] (526.40s)
again, check it from time to time
[08:47] (527.52s)
because it might need your input. A
[08:48] (528.88s)
couple other cool power features you
[08:50] (530.24s)
could do with Claude is add custom hooks
[08:52] (532.56s)
and custom slash commands. And the
[08:54] (534.32s)
coolest part is you can have Claude
[08:55] (535.52s)
build those for you. In this case, I
[08:57] (537.04s)
asked for Claude to add a couple default
[08:58] (538.72s)
hooks, commands, and settings and
[09:00] (540.56s)
created a settings file that I can
[09:01] (541.84s)
easily edit. It added a Claude MD which
[09:04] (544.24s)
gives a bit of project overview and some
[09:06] (546.08s)
key commands that it should know about.
[09:07] (547.76s)
This prevents it from having to figure
[09:09] (549.04s)
that out each time and scan the codebase
[09:10] (550.72s)
for is there a build command or a lint
[09:12] (552.48s)
command. It always has awareness of
[09:14] (554.16s)
that. And it added some hooks for what
[09:16] (556.08s)
code should run before edits are
[09:17] (557.92s)
accepted, such as run prettier on a
[09:19] (559.76s)
specific file or after edits, like run a
[09:22] (562.16s)
type check on a specific file to make
[09:24] (564.16s)
sure that it only accepts good and
[09:26] (566.16s)
correct files. Another really cool one
[09:27] (567.84s)
you could do is add custom slash
[09:29] (569.28s)
commands. Like if I want to output a
[09:31] (571.12s)
test, I can describe my tests. To add
[09:33] (573.60s)
commands, just add acloud/comands
[09:36] (576.24s)
folder. add its name and then MD. You
[09:38] (578.48s)
just write these in natural language and
[09:40] (580.40s)
you can use this arguments string to
[09:42] (582.72s)
place an argument into the prompt and
[09:44] (584.40s)
the cloud will do exactly what you asked
[09:46] (586.24s)
just by typing slash and whatever it is.
[09:48] (588.16s)
You can even have subfolders and those
[09:50] (590.32s)
we can access like this like builder
[09:52] (592.32s)
colon plugin matches the builder folder
[09:54] (594.40s)
plugin.mmd and that's how we can create
[09:56] (596.08s)
a new builder plugin super easily.
[09:57] (597.76s)
Another cool one is we can use the pound
[09:59] (599.36s)
sign and add memory super fast like
[10:01] (601.92s)
always use mui components for new stuff
[10:05] (605.60s)
and then it'll automatically save that
[10:07] (607.12s)
to the most relevant file. Cloud.md
[10:09] (609.36s)
files can be hierarchical. So you can
[10:11] (611.04s)
have one project level and you can have
[10:12] (612.64s)
one in nested directories. It'll look at
[10:14] (614.48s)
them all and prioritize the most
[10:16] (616.24s)
specific the most nested when relevant.
[10:18] (618.48s)
You could also save this to global user
[10:20] (620.24s)
memory preferences you want to apply
[10:21] (621.68s)
everywhere or local project memory
[10:23] (623.76s)
that's memory specific to you and gets
[10:25] (625.52s)
get ignored. add it to any of these
[10:26] (626.96s)
files and then it'll write it for you.
[10:28] (628.64s)
Now, the main problem I sometimes feel
[10:30] (630.32s)
and I see people point out the most is
[10:32] (632.32s)
sometimes you really just want a normal
[10:34] (634.00s)
UI. It is kind of annoying that typing
[10:35] (635.84s)
out long responses have these weird
[10:37] (637.28s)
escape keys. I can't just click on what
[10:39] (639.28s)
I want to edit and highlight and edit.
[10:41] (641.20s)
It's still very clear you're working
[10:42] (642.40s)
with a terminal and that comes with some
[10:44] (644.00s)
inherent limitations. For those times
[10:45] (645.68s)
where you want a UI or you prefer UI
[10:47] (647.60s)
interface, but you still want the
[10:49] (649.20s)
mechanics of cloud code, one trick is to
[10:51] (651.44s)
use the builder.io VS Code cursor
[10:53] (653.68s)
windsurf extension. At any point you can
[10:55] (655.60s)
just launch into a visual UI from your
[10:57] (657.52s)
IDE sidebar. What you get is a much more
[11:00] (660.08s)
visual interface with a typical chat
[11:02] (662.16s)
dynamics that you're used to and a live
[11:03] (663.92s)
preview. And under the hood, we built
[11:05] (665.52s)
the system to match almost exactly how
[11:07] (667.84s)
cloud code works. This tool uses
[11:09] (669.84s)
effectively the same agent and approach
[11:11] (671.60s)
as cloud code down to the tiniest
[11:13] (673.44s)
details. We reverse engineered it as
[11:15] (675.04s)
closely as humanly possible. And then
[11:16] (676.56s)
you can preview your changes quickly.
[11:18] (678.08s)
Like I actually just moved items from
[11:19] (679.76s)
here to right here. Perfect. And what's
[11:22] (682.64s)
kind of cool is at any time we can
[11:24] (684.08s)
switch to design mode and we get a Figma
[11:26] (686.08s)
style interface where we can change up
[11:28] (688.16s)
any of the styling we want and edit it
[11:30] (690.24s)
just like a design tool. It's kind of a
[11:32] (692.00s)
cool way to bridge the worlds of visual
[11:34] (694.16s)
editing and code and get a bit of the
[11:36] (696.56s)
best of them both at the same time. We
[11:38] (698.32s)
can explore different UI patterns
[11:39] (699.76s)
quickly and make precision edits and
[11:41] (701.92s)
then just apply our changes to the code.
[11:43] (703.92s)
You can do all this stuff from a browser
[11:45] (705.44s)
interface, too, which can be really cool
[11:47] (707.04s)
for letting people on your team create
[11:48] (708.80s)
prototypes right with your design
[11:50] (710.32s)
systems and applications. And then when
[11:52] (712.80s)
you're happy with your changes and
[11:54] (714.00s)
you're ready, you can just fire off a
[11:55] (715.28s)
pull request. Here's our PR with a title
[11:57] (717.44s)
and description. We can look what files
[11:59] (719.36s)
changed. Looks like it's using our
[12:00] (720.88s)
design system correctly as hoped. And I
[12:02] (722.56s)
can leave a comment anywhere and say,
[12:04] (724.16s)
"Hey, build a bot. Move this to be in
[12:06] (726.96s)
its own component in a new file." In
[12:09] (729.60s)
this world now, we're effectively just
[12:11] (731.12s)
communicating with Claude code, but
[12:12] (732.64s)
through the PR directly. The agent will
[12:14] (734.48s)
then reply and push up commits
[12:16] (736.16s)
addressing the feedback. And here we go.
[12:17] (737.84s)
The builder bot address the feedback and
[12:20] (740.16s)
describe the changes. Now, it looks like
[12:21] (741.84s)
we have our customers table in its own
[12:23] (743.36s)
file. And we are using it as expected in
[12:25] (745.92s)
the original, we can merge away. So
[12:27] (747.68s)
whether you want to use cloud code in a
[12:29] (749.04s)
visual way or in a terminal, I hope
[12:30] (750.80s)
these tips were useful for you to be
[12:32] (752.32s)
able to build awesome stuff like never
[12:34] (754.32s)
before. Check out my full list of tips
[12:36] (756.32s)
over on the builder.io blog. If you want
[12:38] (758.24s)
to try the visual interface for cloud
[12:39] (759.92s)
code, go to fusion.builder.io