Markdown source

Slides: How Windsurf writes 90% of your code with an Agentic IDE - Kevin Hou, Windsurf

Source Video

How Windsurf writes 90% of your code with an Agentic IDE - Kevin Hou, Windsurf

Relationship To World's Fair 2026

These slides are extracted from a public AI Engineer YouTube video connected to World's Fair 2026. Speaker-matched clips are supporting context unless later confirmed as exact session recordings; official livestream recordings are day-level/event-level source material.

Related Scheduled Sessions

Extracted Slides

slide-001.jpg

OCR text:

PN

td

an

aed ~

a os

-

slide-002.jpg

OCR text:

We always believed agents were the future of software

development.

Load ba CRG OTS) Crea Ce Esie Pacer ce Do

2022 2023 2024 2025, 2026, 2027....end of tim

; Yaa eas le

; rs ; ar AI.ENGINEER

slide-003.jpg

OCR text:

AGENTS AT WORK

AI Engineer

SUMMIT

slide-004.jpg

OCR text:

Write a web crawler that analyzes the content ofa

domain andgeneratesareport ofuseful statistics.1

want to know the most common words,page size

distribution,and whateverelse you thinkisrelevant.

Please analyzehttps:lfdocs.codeium.com/ and write

theresult to animageforme toview!Make sure the

crawierreportsprogress inareadable format.

urfDev

AIE

Illhelpyou create a web crawler to analyze

docs.codeium.com.Let'sbreak this down into steps:

1.First,let's create a Python script with the necessary

dependenciesWe'll needpackageslike requests

beautifulsoup4,matplotlib,and others.

Generai

AGENTENGINEERING

HTTPS://AI.ENGINEER

slide-005.jpg

OCR text:

H

Expi

x0

web_crewler.py

nd_de

CHERALC

LASC

Searched Ini

web_crz

ortrequests

pxu/1/ss/.-

fronbs4iport BeautifulSoup

-/Library/Frameworks/Python.fra

fronurllsh.parse iporturtjoin,urparse

-/Library/Framevorks/Python.frasev

Tron collectionsapnrt Counter

port-re

-'/usr/tocaUshare/nltk_data'

epxlu/aeys/sn/,-

ortatplottib.pyplot s plt

frnltk.corpus iaoort stoprds

nltk.tokenize inport word_tokenize

p///.-

mortsttk

AIE

porttine

frostyping

portjson

Traceback(nost recent call tast):

File"/Users/natt/command_demo/web_cra

rqLred R data

main()

nltk.donload('pumkt')

F1le"/Users/matt/comnand_demo/web_cra

cravler.generate_report()

altk.donloadl'pnkt_tab')

F1le"/Users/natt/comand_demo/eb_cra

words,counts=zip(*self.word_count

WebCravlers

Se!.

_init_(self,starturl str)1

ValueError:not enough values to unpack

self.start_url-start_url

self.donainurlparsestart_

lt.vicited arCtl tfl

Problems

Output

Debug Console

Terminal

Porta

Isee we need to dowload addiional NLTK data. Letme

nettgPatth

ok-Air-2.1oca1

fix that and modity the code tohandle emptyresuls

"/usr/locaU/share/nltk_data'

moregracehuly:

"/usr/Li/nttk_data

"/usr/local/Lb/sltk_data

Eded_crer-py+188139

Traceback(nost recent call last):

F1le/sers/att/cand_d/_crler.py,Line 146,1odue

Now let's run the crawler again:

Fi1e/sers/tt/cnd/_crer.p.Line143,inmn

Basn()

F1le/rs/mtt/cnd_d/b_crler.py,Lin118,g

cravler.generate_report()

wrds,contszipefncns.stcom

nerate_re

lueError:not enough values to unpack(expected 2,got )

M1-2.1oca

L

AGENTENGINEERING

HTTPS://AI.ENGINEER

slide-006.jpg

OCR text:

Writewith Cascade

Kickoff a new project or make changes across

your entire codebase

Everythingwedoisinserviceof onething.

Keeping you in flow and

unlocking limitless potential.

ShippedonNov13,2024

500k+ActiveUsers

slide-007.jpg

OCR text:

Our Principles

How we think of building vibey, agentic technology for

todayandtomorrow. A.GENTSATWOFK

aWOex AGOTSIT

Ntnges

slide-008.jpg

OCR text:

’ ~

a Principle

s. P

] Related features

7 The agent continuously researches in the + “Continue my work”

background. predicting your next steps + Terminal Turbo mode

and integrating seamlessly with your we di .

workflow—like it’s reading your mind ~ AGENT: citfiewien UX

; re mt AI.ENGINEER

slide-009.jpg

OCR text:

use client

import { useState } from 'react';

export default function LoginForm() {

const [formData, setFormData] = useState({

email: '',

password: '',

confirmPassword: ''

});

const [error, setError] = useState('');

const handleFullNameChange = (e: React.ChangeEvent<HTMLInputElement>) => {

const { name, value } = e.target;

setFormData(prev => ({

...prev,

[name]: value

}));

};

const handleSubmit = (e: React.FormEvent) => {

e.preventDefault();

setError('');

if (formData.password!== formData.confirmPassword) {

setError('Passwords do not match');

return;

}

const response = await fetch('/api/auth/register', {

method: 'POST',

headers: {

'Content-Type': 'application/json',

},

body: JSON.stringify({

email: formData.email,

password: formData.password,

}),

});

}

}

Write with Cascade

Kick off a new project or make changes across your entire codebase

Past workflows

Add a sign up button to the main page

Resolve CORS issue

Fix my errors in all my pages

Install all of my dependencies

Continue my work

Show 12 more...

slide-010.jpg

OCR text:

ifornhux

lyoutx

yoacs

LognfaxLoinFom

O

"use client':

functionin the

(useState}

'rot':

pufidndudattfosteaccringLethlyoucle

runction LoginFormt)(

const (fornCata,setFornData)

fulNe!.

useStatel

Ftletme check the curent stae of thefle to undentand the ce

email:*.,

Anlyed Looc1-5D

password:...

AIE

confirPassword:.

comlele heafeh functonemntatior Letme mae these

fleld and

const (error,setfrrer)

usestate(""):

changee:

const handleFullNameChenge

const(name,value)e.target;

React.Char

Eed LmxD+1-2110

const(value)

e.taroet:

setForata(prev a((

Tve made She folo

[nane]:vaiue

prev,

1.Added efeid to he fostae

fullName:value

2.miemented henifelweheg function toupd

sttributes

const handleSubnlt

Thchngeswcletndefohdhnlelinenuproy

e.preventDefault():

setEror(*):

duringregistraon.

fornData.confirePassword)

Letme run the develog

entsener toma ure everythings working

nend:

stresponse

reteht'/epi/auth/register'

neaders:

3ody1JsoN.stringify(

--NSERT--

AGENTENGINEERING

HTTPS://AI.ENGINEER

slide-011.jpg

OCR text:

User runs commands in Terminal

Cascade is up-to-date with recent terminal commands

Your recent terminal commands:

$ source ~/.bashrc

$ dwbs

$ gd

$ gd

$ acimg

AGENT ENGINEERING

https://ai.engineer

slide-012.jpg

OCR text:

Deaseeyeeryon gepei Ler fet cecs

Create a new vitual enwrorent

2Acivaea

AIE

3.sta e eoed dpndencle

.Rn iege

Ran.terminat command

comvrand

sourcevem/bin/octivateMpipinstsll-reg

ents.tat

Reject

AGENTENGINEERING

HTTPS://AI.ENGINEER

slide-013.jpg

OCR text:

3 f NN EN EE EE

( ; created and activat

launched. You can t

def parse aras() ;

esti When you're done,

For future sessions,

aden) ia) cascade , '

weith:

(venyv) nickjiang:~ sre exarple color switch (main) $ python main. py

File , lane reas)

Wiehe Aone

ane , bine 2 ED before running the «

mes , line ree)

(venv) nickjiang:~ srcvexample ‘color switch (main) $ echo Success!

Success!

(venv) nickjiang:. src exarple color “Kh Curb tees

slide-014.jpg

OCR text:

Principle

Meta-Learning

The best agents don't just assist—they learn.

Windsurf adapts to your workflows,

remembers past interactions, and evolves

with every use. From recalling preferred

tools to understanding project-specific

patterns, it gets smarter the more you use it.

Related features

• Memories

• Custom tools via MCP servers

• Reading your fav docs

• Whitelist / blacklist commands

slide-015.jpg

OCR text:

Principle

02

Meta-Learning

The best agents don't just assist-they learn.

Windsurf adapts to your workflows,

remembers past interactions, and evolves

with every use. From recalling preferred

tools to understanding project-specific

patterns, it gets smarter the more you use it.

Related features

Memories

Custom tools via MCP servers

Reading your docs

Whisps / basic commands

slide-016.jpg

OCR text:

.~ rj

-

‘a

on ka ~

al

slide-017.jpg

OCR text:

x0+

ntsf ap

Flaskroutesand APi endpointsin your application

docs

trd_perty

frontend

AIE

Dbazelvenion

gligpore

env

BULD

WindsurfDev

MODULE.bazel

MODULE.bazellock

CodewithCascade

READMEmd

Editcodeinine

requirements.txt

run.py

DWORKSPACE

AGENTENGINEERING

HTTPS://AI.ENGINEER

slide-018.jpg

OCR text:

We are the first and only company to replace Chat

withAgents

andpeoplelovethat

whetherit writes code orhelps you specc feature before codingit.Very cool! Yep,they callitCascadeandyoucantog lanNuttall t3 @iannuttall-11/18/24 1 3.1K Shao|少蒙 Follow hole process of the code generation and tave tested both and my pick is Windsurf. fiting feels more natural and built-in... MICHALO @michaLdolnik Follow

Thosewhoknow,know.NotallAlbasededitors

arethesame.Thedeepcontextawarenessof

maintainingthe conversation eric@itsmnjn·2d onesubtle uxdiffiappreciatein@windsul compared to@cursor_ai is the ability to sv fromcomposer/agentmodeto chatwhile separation ofcomposervs chatinUx... windsurfistrulyremarkable.Itevenknowsthe cursorlocation,thechangessofar,otherfilesl didn'tmention,anditdoesn'thavethearbitrary 9:19PM-2/13/25·57VieWS ScottForsyth@ScotiForsyth-12/12/24 Greatreview.Ive used Windsurf a lotin the last couple of weeks,and1generallypreferitover Cursor.lt feels more integrated andnatural.

slide-019.jpg

OCR text:

e 8s » demo-site Ue B&O Oy

OQ Explorer i Cascade | Wie mode x | Www O + On- «

Po > te nant @ 100k un the NextJS documentation for me to generate a dynamic OG image st

° > Ce node_modutes route.ten

{B > Ce pute

5 ~ Ca sre app s 11 help you find information about generating dynamic OG images in Next js. Let me

® ~ & images . search for relevant documentation.

G @ route. tax uv

“8 <> favicon.ico Searched web. Next.js dynamic OG image generation route.tex documentation y

4 +) globets.cxs + Metadata thes: opengragh-image and twitter-imege - Next)s

t a _ Oynemicaly Generating Open Graph images in Next js 14 2

e a = Dynamically Generated OG images in NextJS - Jemes Shopland &

° 2 © Optimizing: Metadate - Next &

satignore = How to generate dynamic OG mage using new NextJs with App directory

O windsurfrutes

© estin.contig gs Windsurf Dev Let me check the official Next.js documentation first.

1S Mext-env.dts

N nent contigs U Code nth Cascade x + Crested outing & nextys org View Page

N next.config.ts Echt code nine uo:

Package-tock json Let me check the documentation about generating images using code, which is most

package json relevant to your request.

@ postcss.config.njs

README. md © Anslyzed content & Croerate images using code ( 33, ts, tsa)

Uiwind.contig.ts

Te teconfig json Let me check andiher chunk to see if there's any additional important information.

© Analyzed coment & 3 cmmks

Based on the Next js documentation, | can help you implement a dynamic OG imege

generation at route.tax. Here's what: = "= “now:

2 Rumng

fees o ee oq soe toe a

Outing

Temetine (mentor EX AdE images ~ Claude J 5 Sonnet te Om

Pea moins me UMFK Kel peer £4 ea V Bea: | UR a: f

slide-020.jpg

OCR text:

Windsurf now write over 90% of our users' code. If youre not using them. youre already behind.

AGENTSATWOFK

IE

slide-021.jpg

OCR text:

; = The best engineers build with the best.

Try Windsurf for free today.

windsurfai

Nae aati ic

a 7 re: AI.ENGINEER

: ra

Slide-Derived Subjects To Review

Subject extraction uses video title, related session titles/descriptions, transcript context, and OCR text when available. OCR is best-effort and should be reviewed against the embedded slide images.