---
title: "Slides: How Windsurf writes 90% of your code with an Agentic IDE - Kevin Hou, Windsurf"
category: "slides"
video_id: "bVNNvWq6dKo"
sourceLabels: ["Public YouTube video frames", "Public YouTube metadata"]
---

# 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](https://www.youtube.com/watch?v=bVNNvWq6dKo)

## 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
- No individual scheduled session mapping has been assigned yet; treat this as an event livestream deck.

## Extracted Slides
![[assets/slides/bVNNvWq6dKo/slide-001.jpg]]

OCR text:

> PN
> td
> an
> aed ~
> a os
> -

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/slide-003.jpg]]

OCR text:

> AGENTS AT WORK
> AI Engineer
> SUMMIT

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/slide-007.jpg]]

OCR text:

> Our Principles
> How we think of building vibey, agentic technology for
> todayandtomorrow. A.GENTSATWOFK
> aWOex AGOTSIT
> Ntnges

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/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...

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/slide-016.jpg]]

OCR text:

> .~ rj
> -
> ‘a
> on ka ~
> al

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/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.

![[assets/slides/bVNNvWq6dKo/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

![[assets/slides/bVNNvWq6dKo/slide-020.jpg]]

OCR text:

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

![[assets/slides/bVNNvWq6dKo/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.
