*AI Summary*
The subject matter of the input is focused on providing an instructional overview and best practices for leveraging OpenAI’s coding agent, Codex, within a professional development environment.
*Appropriate Expert Persona for Review:* Top-Tier Senior Analyst in AI Engineering and Developer Relations.
## Abstract:
This session provides an introduction and technical guide for developers on integrating and utilizing Codex, OpenAI's advanced coding agent. The presentation covers essential setup, including installation across Command Line Interface (CLI) and VS Code-based IDE environments, and dives deep into configuration strategies designed to maximize agent efficacy. Key configuration elements discussed include the use of `agents.md` for persistent project context and `config.toml` for customizing model behavior, reasoning effort, and sandboxing policies. Emphasis is placed on leveraging Model Communication Protocol (MCP) servers (e.g., Context 7, Jira) for external context retrieval and the implementation of advanced, programmatic workflows using the Codex headless SDK mode for CI/CD pipeline integration and structured output generation. The overall goal is to demonstrate how developers can delegate routine tasks to Codex to focus on high-level design and architectural challenges.
## Codex Onboarding and Advanced Workflow Integration
* *0:09 Introduction to Codex:* Codex is established as OpenAI's coding agent, enabling developers to delegate routine and time-consuming tasks, thereby redirecting focus toward complex design and architecture challenges.
* *1:20 Client Availability:* Codex is available through a lightweight CLI (offering a headless SDK mode for programmability) and an IDE extension compatible with VS Code-based environments, providing a richer graphical interface.
* *1:44 Cloud Environment Capabilities:* Codex Cloud environments facilitate running multiple parallel tasks asynchronously (e.g., code review), allowing developers to kick off tasks regardless of local machine status.
* *2:04 Integration Pathways:* Codex integrates into developer workflows through automated code reviews on PRs (via Codex Cloud), integration into communication platforms like Slack (using `@mention`), and custom applications via the Codex SDK for structured code output.
* *2:46 Model Foundation:* Codex is powered by state-of-the-art models, including GT5.1 Codex Max, specifically trained for agentic coding across Linux, Mac OS, and Windows environments, featuring reliable command execution in Bash and PowerShell, and capability for sustained, long-running tasks (e.g., large-scale refactors).
* *4:17 Installation:* The CLI is preferably installed via `brew` or `npm` to ensure the most current binary. The IDE extension is installed through the VS Code extensions marketplace.
* *6:01 Authentication:* Users sign in using their ChatBT Enterprise account via the `codex login` command in the CLI, which handles single sign-on (SSO) routing and authenticates the user across both CLI and IDE interfaces.
* *8:34 Agents.md for Context Retention:* `agents.md` is a lightweight README format file loaded automatically by Codex to maintain essential project context between sessions. Best practices dictate keeping it brief (under 100 lines) and focused on unlocking *agentic loops* by providing verification commands (e.g., running tests, linters).
* *10:01 Context Specificity:* `agents.md` can be deployed globally (in the Codex home folder) or locally within subdirectories to provide repo-specific or service-level context. It can also include pointers to specialized documentation files (e.g., `exec plans.md`) for *progressive discovery.*
* *14:44 Configuration via config.toml:* The `config.toml` file allows for extensive customization, including setting default model, reasoning effort, sandbox mode (default: `workspace write` for current directory access), and approval policy (default: `requests` for escalated permissions). Profiles can be defined for rapid switching between configurations (e.g., `-p fast`).
* *17:05 Prompting Best Practices:* Effective prompting involves using the `@mention` syntax to anchor Codex to a specific file or section of the codebase. Tasks should start small and incorporate explicit verification steps. Full stack traces should be pasted directly for debugging tasks.
* *26:44 CLI/IDE Tips:* Context injection can be achieved in the IDE by highlighting text and binding keyboard shortcuts. The IDE extension supports converting in-code `to-do` comments into automated implementation tasks.
* *28:45 Visual Prompting:* Codex supports prompting using image examples (screenshots) to request specific UI changes, enabling modification based on visual input.
* *30:19 Session Management:* Previous sessions can be resumed in the CLI using `codex resume` or by referencing a specific session ID, ensuring conversational context is retained for long-running or multi-step tasks.
* *32:00 Architecture Visualization:* The IDE extension can generate *Mermaid sequence diagrams* to visualize repository process flow and architecture quickly.
* *34:45 Model Communication Protocol (MCP):* MCP enables Codex to connect to external services and context, supporting standard IO and HTTP transport. Popular MCP servers include Figma, Jira, DataDog, and Context 7 (for retrieving current documentation). MCP servers are added using the `codex mcp add` command.
* *38:50 MCP in Action:* An example demonstrates calling a simple "Cupcake MCP" server to retrieve data, which Codex then uses to implement a code change in the `agents.md` file, illustrating the agent's ability to integrate external data.
* *46:45 Advanced Programmatic Use (Headless Mode):* The Codex CLI supports programmatic execution via `codex exec` (headless mode). When paired with a *structured output schema* (JSON definition), this enables advanced use cases like running code quality analysis in CI/CD pipelines and receiving machine-readable JSON reports.
* *49:26 Multi-Step Agent Workflows:* The OpenAI Agents SDK allows for building complex, multi-step workflows involving specialized agents (e.g., Front-end, PM, Backend) that hand off tasks. Codex can function as an MCP tool within this SDK, providing the coding primitive while the SDK manages context tracing and coordination.
* *50:30 Automated Code Review and Fixes:* Codex can be deployed for on-prem code review via structured outputs, flagging only high-severity (P0/P1) issues. It can also be integrated to automatically fix failed CI tests by checking out the branch, applying the fix, and creating a new pull request.
AI-generated summary created with gemini-2.5-flash-preview-09-2025 for free via RocketRecap-dot-com. (Input: 36,004 tokens, Output: 1,388 tokens, Est. cost: $0.0143).
Below, I will provide input for an example video (comprising of title, description, and transcript, in this order) and the corresponding abstract and summary I expect. Afterward, I will provide a new transcript that I want a summarization in the same format.
**Please give an abstract of the transcript and then summarize the transcript in a self-contained bullet list format.** Include starting timestamps, important details and key takeaways.
Example Input:
Fluidigm Polaris Part 2- illuminator and camera
mikeselectricstuff
131K subscribers
Subscribed
369
Share
Download
Clip
Save
5,857 views Aug 26, 2024
Fluidigm Polaris part 1 : • Fluidigm Polaris (Part 1) - Biotech g...
Ebay listings: https://www.ebay.co.uk/usr/mikeselect...
Merch https://mikeselectricstuff.creator-sp...
Transcript
Follow along using the transcript.
Show transcript
mikeselectricstuff
131K subscribers
Videos
About
Support on Patreon
40 Comments
@robertwatsonbath
6 hours ago
Thanks Mike. Ooof! - with the level of bodgery going on around 15:48 I think shame would have made me do a board re spin, out of my own pocket if I had to.
1
Reply
@Muonium1
9 hours ago
The green LED looks different from the others and uses phosphor conversion because of the "green gap" problem where green InGaN emitters suffer efficiency droop at high currents. Phosphide based emitters don't start becoming efficient until around 600nm so also can't be used for high power green emitters. See the paper and plot by Matthias Auf der Maur in his 2015 paper on alloy fluctuations in InGaN as the cause of reduced external quantum efficiency at longer (green) wavelengths.
4
Reply
1 reply
@tafsirnahian669
10 hours ago (edited)
Can this be used as an astrophotography camera?
Reply
mikeselectricstuff
·
1 reply
@mikeselectricstuff
6 hours ago
Yes, but may need a shutter to avoid light during readout
Reply
@2010craggy
11 hours ago
Narrowband filters we use in Astronomy (Astrophotography) are sided- they work best passing light in one direction so I guess the arrows on the filter frames indicate which way round to install them in the filter wheel.
1
Reply
@vitukz
12 hours ago
A mate with Channel @extractions&ire could use it
2
Reply
@RobertGallop
19 hours ago
That LED module says it can go up to 28 amps!!! 21 amps for 100%. You should see what it does at 20 amps!
Reply
@Prophes0r
19 hours ago
I had an "Oh SHIT!" moment when I realized that the weird trapezoidal shape of that light guide was for keystone correction of the light source.
Very clever.
6
Reply
@OneBiOzZ
20 hours ago
given the cost of the CCD you think they could have run another PCB for it
9
Reply
@tekvax01
21 hours ago
$20 thousand dollars per minute of run time!
1
Reply
@tekvax01
22 hours ago
"We spared no expense!" John Hammond Jurassic Park.
*(that's why this thing costs the same as a 50-seat Greyhound Bus coach!)
Reply
@florianf4257
22 hours ago
The smearing on the image could be due to the fact that you don't use a shutter, so you see brighter stripes under bright areas of the image as you still iluminate these pixels while the sensor data ist shifted out towards the top. I experienced this effect back at university with a LN-Cooled CCD for Spectroscopy. The stripes disapeared as soon as you used the shutter instead of disabling it in the open position (but fokussing at 100ms integration time and continuous readout with a focal plane shutter isn't much fun).
12
Reply
mikeselectricstuff
·
1 reply
@mikeselectricstuff
12 hours ago
I didn't think of that, but makes sense
2
Reply
@douro20
22 hours ago (edited)
The red LED reminds me of one from Roithner Lasertechnik. I have a Symbol 2D scanner which uses two very bright LEDs from that company, one red and one red-orange. The red-orange is behind a lens which focuses it into an extremely narrow beam.
1
Reply
@RicoElectrico
23 hours ago
PFG is Pulse Flush Gate according to the datasheet.
Reply
@dcallan812
23 hours ago
Very interesting. 2x
Reply
@littleboot_
1 day ago
Cool interesting device
Reply
@dav1dbone
1 day ago
I've stripped large projectors, looks similar, wonder if some of those castings are a magnesium alloy?
Reply
@kevywevvy8833
1 day ago
ironic that some of those Phlatlight modules are used in some of the cheapest disco lights.
1
Reply
1 reply
@bill6255
1 day ago
Great vid - gets right into subject in title, its packed with information, wraps up quickly. Should get a YT award! imho
3
Reply
@JAKOB1977
1 day ago (edited)
The whole sensor module incl. a 5 grand 50mpix sensor for 49 £.. highest bid atm
Though also a limited CCD sensor, but for the right buyer its a steal at these relative low sums.
Architecture Full Frame CCD (Square Pixels)
Total Number of Pixels 8304 (H) × 6220 (V) = 51.6 Mp
Number of Effective Pixels 8208 (H) × 6164 (V) = 50.5 Mp
Number of Active Pixels 8176 (H) × 6132 (V) = 50.1 Mp
Pixel Size 6.0 m (H) × 6.0 m (V)
Active Image Size 49.1 mm (H) × 36.8 mm (V)
61.3 mm (Diagonal),
645 1.1x Optical Format
Aspect Ratio 4:3
Horizontal Outputs 4
Saturation Signal 40.3 ke−
Output Sensitivity 31 V/e−
Quantum Efficiency
KAF−50100−CAA
KAF−50100−AAA
KAF−50100−ABA (with Lens)
22%, 22%, 16% (Peak R, G, B)
25%
62%
Read Noise (f = 18 MHz) 12.5 e−
Dark Signal (T = 60°C) 42 pA/cm2
Dark Current Doubling Temperature 5.7°C
Dynamic Range (f = 18 MHz) 70.2 dB
Estimated Linear Dynamic Range
(f = 18 MHz)
69.3 dB
Charge Transfer Efficiency
Horizontal
Vertical
0.999995
0.999999
Blooming Protection
(4 ms Exposure Time)
800X Saturation Exposure
Maximum Date Rate 18 MHz
Package Ceramic PGA
Cover Glass MAR Coated, 2 Sides or
Clear Glass
Features
• TRUESENSE Transparent Gate Electrode
for High Sensitivity
• Ultra-High Resolution
• Board Dynamic Range
• Low Noise Architecture
• Large Active Imaging Area
Applications
• Digitization
• Mapping/Aerial
• Photography
• Scientific
Thx for the tear down Mike, always a joy
Reply
@martinalooksatthings
1 day ago
15:49 that is some great bodging on of caps, they really didn't want to respin that PCB huh
8
Reply
@RhythmGamer
1 day ago
Was depressed today and then a new mike video dropped and now I’m genuinely happy to get my tear down fix
1
Reply
@dine9093
1 day ago (edited)
Did you transfrom into Mr Blobby for a moment there?
2
Reply
@NickNorton
1 day ago
Thanks Mike. Your videos are always interesting.
5
Reply
@KeritechElectronics
1 day ago
Heavy optics indeed... Spare no expense, cost no object. Splendid build quality. The CCD is a thing of beauty!
1
Reply
@YSoreil
1 day ago
The pricing on that sensor is about right, I looked in to these many years ago when they were still in production since it's the only large sensor you could actually buy. Really cool to see one in the wild.
2
Reply
@snik2pl
1 day ago
That leds look like from led projector
Reply
@vincei4252
1 day ago
TDI = Time Domain Integration ?
1
Reply
@wolpumba4099
1 day ago (edited)
Maybe the camera should not be illuminated during readout.
From the datasheet of the sensor (Onsemi): saturation 40300 electrons, read noise 12.5 electrons per pixel @ 18MHz (quite bad). quantum efficiency 62% (if it has micro lenses), frame rate 1 Hz. lateral overflow drain to prevent blooming protects against 800x (factor increases linearly with exposure time) saturation exposure (32e6 electrons per pixel at 4ms exposure time), microlens has +/- 20 degree acceptance angle
i guess it would be good for astrophotography
4
Reply
@txm100
1 day ago (edited)
Babe wake up a new mikeselectricstuff has dropped!
9
Reply
@vincei4252
1 day ago
That looks like a finger-lakes filter wheel, however, for astronomy they'd never use such a large stepper.
1
Reply
@MRooodddvvv
1 day ago
yaaaaay ! more overcomplicated optical stuff !
4
Reply
1 reply
@NoPegs
1 day ago
He lives!
11
Reply
1 reply
Transcript
0:00
so I've stripped all the bits of the
0:01
optical system so basically we've got
0:03
the uh the camera
0:05
itself which is mounted on this uh very
0:09
complex
0:10
adjustment thing which obviously to set
0:13
you the various tilt and uh alignment
0:15
stuff then there's two of these massive
0:18
lenses I've taken one of these apart I
0:20
think there's something like about eight
0:22
or nine Optical elements in here these
0:25
don't seem to do a great deal in terms
0:26
of electr magnification they're obiously
0:28
just about getting the image to where it
0:29
uh where it needs to be just so that
0:33
goes like that then this Optical block I
0:36
originally thought this was made of some
0:37
s crazy heavy material but it's just
0:39
really the sum of all these Optical bits
0:41
are just ridiculously heavy those lenses
0:43
are about 4 kilos each and then there's
0:45
this very heavy very solid um piece that
0:47
goes in the middle and this is so this
0:49
is the filter wheel assembly with a
0:51
hilariously oversized steper
0:53
motor driving this wheel with these very
0:57
large narrow band filters so we've got
1:00
various different shades of uh
1:03
filters there five Al together that
1:06
one's actually just showing up a silver
1:07
that's actually a a red but fairly low
1:10
transmission orangey red blue green
1:15
there's an excess cover on this side so
1:16
the filters can be accessed and changed
1:19
without taking anything else apart even
1:21
this is like ridiculous it's like solid
1:23
aluminium this is just basically a cover
1:25
the actual wavelengths of these are um
1:27
488 525 570 630 and 700 NM not sure what
1:32
the suffix on that perhaps that's the uh
1:34
the width of the spectral line say these
1:37
are very narrow band filters most of
1:39
them are you very little light through
1:41
so it's still very tight narrow band to
1:43
match the um fluoresence of the dies
1:45
they're using in the biochemical process
1:48
and obviously to reject the light that's
1:49
being fired at it from that Illuminator
1:51
box and then there's a there's a second
1:53
one of these lenses then the actual sort
1:55
of samples below that so uh very serious
1:58
amount of very uh chunky heavy Optics
2:01
okay let's take a look at this light
2:02
source made by company Lumen Dynamics
2:04
who are now part of
2:06
excelitas self-contained unit power
2:08
connector USB and this which one of the
2:11
Cable Bundle said was a TTL interface
2:14
USB wasn't used in uh the fluid
2:17
application output here and I think this
2:19
is an input for um light feedback I
2:21
don't if it's regulated or just a measur
2:23
measurement facility and the uh fiber
2:27
assembly
2:29
Square Inlet there and then there's two
2:32
outputs which have uh lens assemblies
2:35
and this small one which goes back into
2:37
that small Port just Loops out of here
2:40
straight back in So on this side we've
2:42
got the electronics which look pretty
2:44
straightforward we've got a bit of power
2:45
supply stuff over here and we've got
2:48
separate drivers for each wavelength now
2:50
interesting this is clearly been very
2:52
specifically made for this application
2:54
you I was half expecting like say some
2:56
generic drivers that could be used for a
2:58
number of different things but actually
3:00
literally specified the exact wavelength
3:02
on the PCB there is provision here for
3:04
385 NM which isn't populated but this is
3:07
clearly been designed very specifically
3:09
so these four drivers look the same but
3:10
then there's two higher power ones for
3:12
575 and
3:14
520 a slightly bigger heat sink on this
3:16
575 section there a p 24 which is
3:20
providing USB interface USB isolator the
3:23
USB interface just presents as a comport
3:26
I did have a quick look but I didn't
3:27
actually get anything sensible um I did
3:29
dump the Pi code out and there's a few
3:31
you a few sort of commands that you
3:32
could see in text but I didn't actually
3:34
manage to get it working properly I
3:36
found some software for related version
3:38
but it didn't seem to want to talk to it
3:39
but um I say that wasn't used for the
3:41
original application it might be quite
3:42
interesting to get try and get the Run
3:44
hours count out of it and the TTL
3:46
interface looks fairly straightforward
3:48
we've got positions for six opto
3:50
isolators but only five five are
3:52
installed so that corresponds with the
3:54
unused thing so I think this hopefully
3:56
should be as simple as just providing a
3:57
ttrl signal for each color to uh enable
4:00
it a big heat sink here which is there I
4:03
think there's like a big S of metal
4:04
plate through the middle of this that
4:05
all the leads are mounted on the other
4:07
side so this is heat sinking it with a
4:09
air flow from a uh just a fan in here
4:13
obviously don't have the air flow
4:14
anywhere near the Optics so conduction
4:17
cool through to this plate that's then
4:18
uh air cooled got some pots which are
4:21
presumably power
4:22
adjustments okay let's take a look at
4:24
the other side which is uh much more
4:27
interesting see we've got some uh very
4:31
uh neatly Twisted cable assemblies there
4:35
a bunch of leads so we've got one here
4:37
475 up here 430 NM 630 575 and 520
4:44
filters and dcro mirrors a quick way to
4:48
see what's white is if we just shine
4:49
some white light through
4:51
here not sure how it is is to see on the
4:54
camera but shining white light we do
4:55
actually get a bit of red a bit of blue
4:57
some yellow here so the obstacle path
5:00
575 it goes sort of here bounces off
5:03
this mirror and goes out the 520 goes
5:07
sort of down here across here and up
5:09
there 630 goes basically straight
5:13
through
5:15
430 goes across there down there along
5:17
there and the 475 goes down here and
5:20
left this is the light sensing thing
5:22
think here there's just a um I think
5:24
there a photo diode or other sensor
5:26
haven't actually taken that off and
5:28
everything's fixed down to this chunk of
5:31
aluminium which acts as the heat
5:32
spreader that then conducts the heat to
5:33
the back side for the heat
5:35
sink and the actual lead packages all
5:38
look fairly similar except for this one
5:41
on the 575 which looks quite a bit more
5:44
substantial big spay
5:46
Terminals and the interface for this
5:48
turned out to be extremely simple it's
5:50
literally a 5V TTL level to enable each
5:54
color doesn't seem to be any tensity
5:56
control but there are some additional
5:58
pins on that connector that weren't used
5:59
in the through time thing so maybe
6:01
there's some extra lines that control
6:02
that I couldn't find any data on this uh
6:05
unit and the um their current product
6:07
range is quite significantly different
6:09
so we've got the uh blue these
6:13
might may well be saturating the camera
6:16
so they might look a bit weird so that's
6:17
the 430
6:18
blue the 575
6:24
yellow uh
6:26
475 light blue
6:29
the uh 520
6:31
green and the uh 630 red now one
6:36
interesting thing I noticed for the
6:39
575 it's actually it's actually using a
6:42
white lead and then filtering it rather
6:44
than using all the other ones are using
6:46
leads which are the fundamental colors
6:47
but uh this is actually doing white and
6:50
it's a combination of this filter and
6:52
the dichroic mirrors that are turning to
6:55
Yellow if we take the filter out and a
6:57
lot of the a lot of the um blue content
7:00
is going this way the red is going
7:02
straight through these two mirrors so
7:05
this is clearly not reflecting much of
7:08
that so we end up with the yellow coming
7:10
out of uh out of there which is a fairly
7:14
light yellow color which you don't
7:16
really see from high intensity leads so
7:19
that's clearly why they've used the
7:20
white to uh do this power consumption of
7:23
the white is pretty high so going up to
7:25
about 2 and 1 half amps on that color
7:27
whereas most of the other colors are
7:28
only drawing half an amp or so at 24
7:30
volts the uh the green is up to about
7:32
1.2 but say this thing is uh much
7:35
brighter and if you actually run all the
7:38
colors at the same time you get a fairly
7:41
reasonable um looking white coming out
7:43
of it and one thing you might just be
7:45
out to notice is there is some sort
7:46
color banding around here that's not
7:49
getting uh everything s completely
7:51
concentric and I think that's where this
7:53
fiber optic thing comes
7:58
in I'll
8:00
get a couple of Fairly accurately shaped
8:04
very sort of uniform color and looking
8:06
at What's um inside here we've basically
8:09
just got this Square Rod so this is
8:12
clearly yeah the lights just bouncing
8:13
off all the all the various sides to um
8:16
get a nice uniform illumination uh this
8:19
back bit looks like it's all potted so
8:21
nothing I really do to get in there I
8:24
think this is fiber so I have come
8:26
across um cables like this which are
8:27
liquid fill but just looking through the
8:30
end of this it's probably a bit hard to
8:31
see it does look like there fiber ends
8:34
going going on there and so there's this
8:36
feedback thing which is just obviously
8:39
compensating for the any light losses
8:41
through here to get an accurate
8:43
representation of uh the light that's
8:45
been launched out of these two
8:47
fibers and you see uh
8:49
these have got this sort of trapezium
8:54
shape light guides again it's like a
8:56
sort of acrylic or glass light guide
9:00
guess projected just to make the right
9:03
rectangular
9:04
shape and look at this Center assembly
9:07
um the light output doesn't uh change
9:10
whether you feed this in or not so it's
9:11
clear not doing any internal Clos Loop
9:14
control obviously there may well be some
9:16
facility for it to do that but it's not
9:17
being used in this
9:19
application and so this output just
9:21
produces a voltage on the uh outle
9:24
connector proportional to the amount of
9:26
light that's present so there's a little
9:28
diffuser in the back there
9:30
and then there's just some kind of uh
9:33
Optical sensor looks like a
9:35
chip looking at the lead it's a very
9:37
small package on the PCB with this lens
9:40
assembly over the top and these look
9:43
like they're actually on a copper
9:44
Metalized PCB for maximum thermal
9:47
performance and yeah it's a very small
9:49
package looks like it's a ceramic
9:51
package and there's a thermister there
9:53
for temperature monitoring this is the
9:56
475 blue one this is the 520 need to
9:59
Green which is uh rather different OB
10:02
it's a much bigger D with lots of bond
10:04
wise but also this looks like it's using
10:05
a phosphor if I shine a blue light at it
10:08
lights up green so this is actually a
10:10
phosphor conversion green lead which
10:12
I've I've come across before they want
10:15
that specific wavelength so they may be
10:17
easier to tune a phosphor than tune the
10:20
um semiconductor material to get the uh
10:23
right right wavelength from the lead
10:24
directly uh red 630 similar size to the
10:28
blue one or does seem to have a uh a
10:31
lens on top of it there is a sort of red
10:33
coloring to
10:35
the die but that doesn't appear to be
10:38
fluorescent as far as I can
10:39
tell and the white one again a little
10:41
bit different sort of much higher
10:43
current
10:46
connectors a makeer name on that
10:48
connector flot light not sure if that's
10:52
the connector or the lead
10:54
itself and obviously with the phosphor
10:56
and I'd imagine that phosphor may well
10:58
be tuned to get the maximum to the uh 5
11:01
cenm and actually this white one looks
11:04
like a St fairly standard product I just
11:06
found it in Mouse made by luminous
11:09
devices in fact actually I think all
11:11
these are based on various luminous
11:13
devices modules and they're you take
11:17
looks like they taking the nearest
11:18
wavelength and then just using these
11:19
filters to clean it up to get a precise
11:22
uh spectral line out of it so quite a
11:25
nice neat and um extreme
11:30
bright light source uh sure I've got any
11:33
particular use for it so I think this
11:35
might end up on
11:36
eBay but uh very pretty to look out and
11:40
without the uh risk of burning your eyes
11:43
out like you do with lasers so I thought
11:45
it would be interesting to try and
11:46
figure out the runtime of this things
11:48
like this we usually keep some sort
11:49
record of runtime cuz leads degrade over
11:51
time I couldn't get any software to work
11:52
through the USB face but then had a
11:54
thought probably going to be writing the
11:55
runtime periodically to the e s prom so
11:58
I just just scope up that and noticed it
12:00
was doing right every 5 minutes so I
12:02
just ran it for a while periodically
12:04
reading the E squ I just held the pick
12:05
in in reset and um put clip over to read
12:07
the square prom and found it was writing
12:10
one location per color every 5 minutes
12:12
so if one color was on it would write
12:14
that location every 5 minutes and just
12:16
increment it by one so after doing a few
12:18
tests with different colors of different
12:19
time periods it looked extremely
12:21
straightforward it's like a four bite
12:22
count for each color looking at the
12:24
original data that was in it all the
12:26
colors apart from Green were reading
12:28
zero and the green was reading four
12:30
indicating a total 20 minutes run time
12:32
ever if it was turned on run for a short
12:34
time then turned off that might not have
12:36
been counted but even so indicates this
12:37
thing wasn't used a great deal the whole
12:40
s process of doing a run can be several
12:42
hours but it'll only be doing probably
12:43
the Imaging at the end of that so you
12:46
wouldn't expect to be running for a long
12:47
time but say a single color for 20
12:50
minutes over its whole lifetime does
12:52
seem a little bit on the low side okay
12:55
let's look at the camera un fortunately
12:57
I managed to not record any sound when I
12:58
did this it's also a couple of months
13:00
ago so there's going to be a few details
13:02
that I've forgotten so I'm just going to
13:04
dub this over the original footage so um
13:07
take the lid off see this massive great
13:10
heat sink so this is a pel cool camera
13:12
we've got this blower fan producing a
13:14
fair amount of air flow through
13:16
it the connector here there's the ccds
13:19
mounted on the board on the
13:24
right this unplugs so we've got a bit of
13:27
power supply stuff on here
13:29
USB interface I think that's the Cyprus
13:32
microcontroller High speeded USB
13:34
interface there's a zyink spon fpga some
13:40
RAM and there's a couple of ATD
13:42
converters can't quite read what those
13:45
those are but anal
13:47
devices um little bit of bodgery around
13:51
here extra decoupling obviously they
13:53
have having some noise issues this is
13:55
around the ram chip quite a lot of extra
13:57
capacitors been added there
13:59
uh there's a couple of amplifiers prior
14:01
to the HD converter buffers or Andor
14:05
amplifiers taking the CCD
14:08
signal um bit more power spy stuff here
14:11
this is probably all to do with
14:12
generating the various CCD bias voltages
14:14
they uh need quite a lot of exotic
14:18
voltages next board down is just a
14:20
shield and an interconnect
14:24
boardly shielding the power supply stuff
14:26
from some the more sensitive an log
14:28
stuff
14:31
and this is the bottom board which is
14:32
just all power supply
14:34
stuff as you can see tons of capacitors
14:37
or Transformer in
14:42
there and this is the CCD which is a uh
14:47
very impressive thing this is a kf50 100
14:50
originally by true sense then codec
14:53
there ON
14:54
Semiconductor it's 50 megapixels uh the
14:58
only price I could find was this one
15:00
5,000 bucks and the architecture you can
15:03
see there actually two separate halves
15:04
which explains the Dual AZ converters
15:06
and two amplifiers it's literally split
15:08
down the middle and duplicated so it's
15:10
outputting two streams in parallel just
15:13
to keep the bandwidth sensible and it's
15:15
got this amazing um diffraction effects
15:18
it's got micro lenses over the pixel so
15:20
there's there's a bit more Optics going
15:22
on than on a normal
15:25
sensor few more bodges on the CCD board
15:28
including this wire which isn't really
15:29
tacked down very well which is a bit uh
15:32
bit of a mess quite a few bits around
15:34
this board where they've uh tacked
15:36
various bits on which is not super
15:38
impressive looks like CCD drivers on the
15:40
left with those 3 ohm um damping
15:43
resistors on the
15:47
output get a few more little bodges
15:50
around here some of
15:52
the and there's this separator the
15:54
silica gel to keep the moisture down but
15:56
there's this separator that actually
15:58
appears to be cut from piece of
15:59
antistatic
16:04
bag and this sort of thermal block on
16:06
top of this stack of three pel Cola
16:12
modules so as with any Stacks they get
16:16
um larger as they go back towards the
16:18
heat sink because each P's got to not
16:20
only take the heat from the previous but
16:21
also the waste heat which is quite
16:27
significant you see a little temperature
16:29
sensor here that copper block which
16:32
makes contact with the back of the
16:37
CCD and this's the back of the
16:40
pelas this then contacts the heat sink
16:44
on the uh rear there a few thermal pads
16:46
as well for some of the other power
16:47
components on this
16:51
PCB okay I've connected this uh camera
16:54
up I found some drivers on the disc that
16:56
seem to work under Windows 7 couldn't
16:58
get to install under Windows 11 though
17:01
um in the absence of any sort of lens or
17:03
being bothered to the proper amount I've
17:04
just put some f over it and put a little
17:06
pin in there to make a pinhole lens and
17:08
software gives a few options I'm not
17:11
entirely sure what all these are there's
17:12
obviously a clock frequency 22 MHz low
17:15
gain and with PFG no idea what that is
17:19
something something game programmable
17:20
Something game perhaps ver exposure
17:23
types I think focus is just like a
17:25
continuous grab until you tell it to
17:27
stop not entirely sure all these options
17:30
are obviously exposure time uh triggers
17:33
there ex external hardware trigger inut
17:35
you just trigger using a um thing on
17:37
screen so the resolution is 8176 by
17:40
6132 and you can actually bin those
17:42
where you combine multiple pixels to get
17:46
increased gain at the expense of lower
17:48
resolution down this is a 10sec exposure
17:51
obviously of the pin hole it's very uh
17:53
intensitive so we just stand still now
17:56
downloading it there's the uh exposure
17:59
so when it's
18:01
um there's a little status thing down
18:03
here so that tells you the um exposure
18:07
[Applause]
18:09
time it's this is just it
18:15
downloading um it is quite I'm seeing
18:18
quite a lot like smearing I think that I
18:20
don't know whether that's just due to
18:21
pixels overloading or something else I
18:24
mean yeah it's not it's not um out of
18:26
the question that there's something not
18:27
totally right about this camera
18:28
certainly was bodge wise on there um I
18:31
don't I'd imagine a camera like this
18:32
it's got a fairly narrow range of
18:34
intensities that it's happy with I'm not
18:36
going to spend a great deal of time on
18:38
this if you're interested in this camera
18:40
maybe for astronomy or something and
18:42
happy to sort of take the risk of it may
18:44
not be uh perfect I'll um I think I'll
18:47
stick this on eBay along with the
18:48
Illuminator I'll put a link down in the
18:50
description to the listing take your
18:52
chances to grab a bargain so for example
18:54
here we see this vertical streaking so
18:56
I'm not sure how normal that is this is
18:58
on fairly bright scene looking out the
19:02
window if I cut the exposure time down
19:04
on that it's now 1 second
19:07
exposure again most of the image
19:09
disappears again this is looks like it's
19:11
possibly over still overloading here go
19:14
that go down to say say quarter a
19:16
second so again I think there might be
19:19
some Auto gain control going on here um
19:21
this is with the PFG option let's try
19:23
turning that off and see what
19:25
happens so I'm not sure this is actually
19:27
more streaking or which just it's
19:29
cranked up the gain all the dis display
19:31
gray scale to show what um you know the
19:33
range of things that it's captured
19:36
there's one of one of 12 things in the
19:38
software there's um you can see of you
19:40
can't seem to read out the temperature
19:42
of the pelta cooler but you can set the
19:44
temperature and if you said it's a
19:46
different temperature you see the power
19:48
consumption jump up running the cooler
19:50
to get the temperature you requested but
19:52
I can't see anything anywhere that tells
19:54
you whether the cool is at the at the
19:56
temperature other than the power
19:57
consumption going down and there's no
19:59
temperature read out
20:03
here and just some yeah this is just
20:05
sort of very basic software I'm sure
20:07
there's like an API for more
20:09
sophisticated
20:10
applications but so if you know anything
20:12
more about these cameras please um stick
20:14
in the
20:15
comments um incidentally when I was
20:18
editing I didn't notice there was a bent
20:19
pin on the um CCD but I did fix that
20:22
before doing these tests and also
20:24
reactivated the um silica gel desicant
20:26
cuz I noticed it was uh I was getting
20:28
bit of condensation on the window but um
20:31
yeah so a couple of uh interesting but
20:34
maybe not particularly uh useful pieces
20:37
of Kit except for someone that's got a
20:38
very specific use so um I'll stick a
20:42
I'll stick these on eBay put a link in
20:44
the description and say hopefully
20:45
someone could actually make some uh good
20:47
use of these things
Example Output:
**Abstract:**
This video presents Part 2 of a teardown focusing on the optical components of a Fluidigm Polaris biotechnology instrument, specifically the multi-wavelength illuminator and the high-resolution CCD camera.
The Lumen Dynamics illuminator unit is examined in detail, revealing its construction using multiple high-power LEDs (430nm, 475nm, 520nm, 575nm, 630nm) combined via dichroic mirrors and filters. A square fiber optic rod is used to homogenize the light. A notable finding is the use of a phosphor-converted white LED filtered to achieve the 575nm output. The unit features simple TTL activation for each color, conduction cooling, and internal homogenization optics. Analysis of its EEPROM suggests extremely low operational runtime.
The camera module teardown showcases a 50 Megapixel ON Semiconductor KAF-50100 CCD sensor with micro-lenses, cooled by a multi-stage Peltier stack. The control electronics include an FPGA and a USB interface. Significant post-manufacturing modifications ("bodges") are observed on the camera's circuit boards. Basic functional testing using vendor software and a pinhole lens confirms image capture but reveals prominent vertical streaking artifacts, the cause of which remains uncertain (potential overload, readout artifact, or fault).
**Exploring the Fluidigm Polaris: A Detailed Look at its High-End Optics and Camera System**
* **0:00 High-End Optics:** The system utilizes heavy, high-quality lenses and mirrors for precise imaging, weighing around 4 kilos each.
* **0:49 Narrow Band Filters:** A filter wheel with five narrow band filters (488, 525, 570, 630, and 700 nm) ensures accurate fluorescence detection and rejection of excitation light.
* **2:01 Customizable Illumination:** The Lumen Dynamics light source offers five individually controllable LED wavelengths (430, 475, 520, 575, 630 nm) with varying power outputs. The 575nm yellow LED is uniquely achieved using a white LED with filtering.
* **3:45 TTL Control:** The light source is controlled via a simple TTL interface, enabling easy on/off switching for each LED color.
* **12:55 Sophisticated Camera:** The system includes a 50-megapixel Kodak KAI-50100 CCD camera with a Peltier cooling system for reduced noise.
* **14:54 High-Speed Data Transfer:** The camera features dual analog-to-digital converters to manage the high data throughput of the 50-megapixel sensor, which is effectively two 25-megapixel sensors operating in parallel.
* **18:11 Possible Issues:** The video creator noted some potential issues with the camera, including image smearing.
* **18:11 Limited Dynamic Range:** The camera's sensor has a limited dynamic range, making it potentially challenging to capture scenes with a wide range of brightness levels.
* **11:45 Low Runtime:** Internal data suggests the system has seen minimal usage, with only 20 minutes of recorded runtime for the green LED.
* **20:38 Availability on eBay:** Both the illuminator and camera are expected to be listed for sale on eBay.
Here is the real transcript. What would be a good group of people to review this topic? Please summarize provide a summary like they would:
00:00:09 Hi, welcome to today's getting started
00:00:09 with codec session. I'm Derek
00:00:11 >> and I'm Charlie
00:00:12 >> and we work with customers to help them
00:00:14 get onboarded to Codeex. It's a really
00:00:17 exciting time in the AI coding space and
00:00:19 it's quickly changing how developers
00:00:21 work. So, Codeex is OpenAI's coding
00:00:23 agent that developers can use across
00:00:25 different surfaces. And we've seen
00:00:27 firsthand how developers are delegating
00:00:29 routine and time consuming tasks to
00:00:31 codeex and spending more time on complex
00:00:34 and novel challenges like design and
00:00:36 architecture. And we've seen a lot of
00:00:38 excitement from the developer community
00:00:40 about codecs. And our goal this session
00:00:42 today is to give you a highle
00:00:43 introduction to codeex.
00:00:47 >> So, we're going to cover a few different
00:00:48 topics here. Uh first we're going to
00:00:50 walk through just the introduction to
00:00:52 Codex, what it is, kind of what the
00:00:53 extent of the product is. Then we'll
00:00:55 talk about installation and setup, how
00:00:57 to get started with Codex. We'll then
00:00:59 dive into agents MD, a readme format for
00:01:02 codeex and how to configure codecs with
00:01:04 config.toml. We'll also talk about
00:01:06 prompting with codecs and some of the
00:01:08 best practices around that. We'll give
00:01:10 you some CLI and IDE tips and tricks,
00:01:12 talk about MCP configuration, and then
00:01:14 dive into advanced use cases, and give
00:01:17 you some follow-up additional resources.
00:01:20 So, you can use codecs in multiple
00:01:21 clients today. So, the CLI allows for
00:01:24 lightweight interaction in the terminal.
00:01:26 It also offers a headless SDK mode for
00:01:28 more advanced programmatability. Um, so
00:01:31 Codeex's IDE extension works with any VS
00:01:33 Codebased IDE and really allows
00:01:35 developers to write code in a more of a
00:01:37 rich graphical user interface. And you
00:01:39 can also kick off remote tasks in a
00:01:42 cloud environment as needed. And with
00:01:44 Codeex's cloud environments, it really
00:01:46 allows you to run multiple parallel
00:01:48 tasks in the background even with your
00:01:50 laptop closed. So it's really ideal for
00:01:52 kicking off async tasks like code review
00:01:55 or working while on the go with your
00:01:57 mobile phone. So for today's session,
00:01:59 we'll focus more on the CLI and the ID
00:02:02 extension.
00:02:04 >> So here are a few of the ways that
00:02:06 customers are using Codex today and how
00:02:08 it can integrate with your team's
00:02:09 workflows. Uh as Derek mentioned, you
00:02:11 can kick off code reviews and Codex
00:02:13 cloud whenever PR gets opened and Codex
00:02:15 can provide comments and find critical
00:02:17 bugs and issues before they get merged
00:02:19 into production. You can also use it
00:02:21 with Slack mentions. So you can
00:02:23 integrate codeex into slack at mention
00:02:25 it and then it picks up the whole
00:02:27 conversation thread that you've maybe
00:02:28 been chatting with your team about and
00:02:30 then implements it and gives you a PR
00:02:32 and you can also build your own
00:02:34 integrations with the codeex SDK. This
00:02:36 allows you to run codecs
00:02:37 programmatically in your own containers
00:02:39 and so you can get structured output of
00:02:41 code out of codeex and we'll cover this
00:02:43 kind of in the the back half of the
00:02:44 presentation here.
00:02:46 So, OpenAI at its core is a research
00:02:49 company and Codex is backed by our
00:02:50 state-of-the-art models, most recently
00:02:52 GT5.1, Codex Max, which is our best
00:02:55 model for aentic coding. So, it's
00:02:58 specifically trained in the codeci
00:03:00 harness, and our continuous focus will
00:03:02 be to have each model generation be more
00:03:04 efficient, uh, be able to run faster and
00:03:06 longer, and to generate even better
00:03:08 production ready code. So our models are
00:03:11 natively trained um in Linux, Mac OS,
00:03:14 Windows environments. So it'll be very
00:03:16 reliable in bash and PowerShell and will
00:03:18 adhere to the sandboxing rules. We also
00:03:21 train the model to be able to accurately
00:03:23 autocompact long conversations. So you
00:03:25 can have codecs work for you on longer
00:03:28 running tasks. So for example, really
00:03:29 large scale refactor tasks.
00:03:31 >> Yeah, Windows support and those long
00:03:33 ring tasks are like maybe the two of the
00:03:34 biggest feature requests we've been
00:03:36 getting with Codeex.
00:03:37 >> Definitely. And we also recently
00:03:39 published a guide that tells your team
00:03:41 how to build an AI native engineering
00:03:43 team. Uh it goes through how we can use
00:03:45 coding agents to accelerate different
00:03:47 parts of the software development life
00:03:49 cycle. We broke it down into seven
00:03:51 phases that span planning and design all
00:03:54 the way to documentation and
00:03:55 maintenance. And as we go through
00:03:57 today's session, I would just encourage
00:03:58 you to think about how codecs can help
00:04:00 your team in these different areas. Even
00:04:02 though we're starting with just the
00:04:03 basics here, all of this is applicable
00:04:05 throughout the software life cycle.
00:04:17 So let's get started. Uh as a quick
00:04:17 reminder again, the focus of today's
00:04:19 session is the CLI and the IDE services.
00:04:22 Um we'll be using an open-source
00:04:24 repository. Um so if you're new to
00:04:26 Codex, we definitely encourage you to
00:04:27 follow along using the same repository
00:04:29 or just a repository of your choice. So
00:04:32 let's dive right in. So how do we get
00:04:34 started? Let's start with installing
00:04:36 codec cli on your local machine. So you
00:04:38 can install in a couple ways. You can
00:04:40 install using brew or npm which is the
00:04:43 suggested method since it's going to be
00:04:45 the most upto-date. Um our team ships
00:04:48 very very quickly. Uh sometimes multiple
00:04:50 times per week. So uh this way you
00:04:53 you're always going to be on top of the
00:04:55 latest release. Uh when you run codec
00:04:57 sessions as well, there's going to be a
00:04:58 banner on the top that reminds you if
00:05:00 you if there's a newer version to update
00:05:02 to. Um, if you want, you can look at the
00:05:05 latest binary releases on GitHub since
00:05:08 Codex is open source. Codex CLI is open
00:05:11 source and you can also look at the
00:05:12 change log on our developers website for
00:05:14 more specific changes for each version.
00:05:18 So you can install the um codeci
00:05:22 extension in VS Code as well. And so to
00:05:25 do that, um, you can open VS Code, um,
00:05:29 and click on the extensions tab here and
00:05:31 search OpenAI codecs. And so you want to
00:05:33 make sure you're looking at the official
00:05:35 one made by OpenAI as seen here. And
00:05:38 when you download it, you'll see the
00:05:39 version that you have. Um, and you'll be
00:05:41 able to switch between U pre-release
00:05:44 version and the release candidate. And
00:05:46 you can also toggle on auto update or
00:05:48 not. I definitely recommend toggling on
00:05:50 auto update since you want to make sure
00:05:52 you're seeing the latest updates um for
00:05:54 the IDE extension.
00:06:01 So, let's talk about actually signing in
00:06:01 with um your ChatBT enterprise account
00:06:03 to use Codeex. So, there's two different
00:06:06 ways. Um and if you use either way,
00:06:08 you'll be signed in on both sides. So,
00:06:10 on the IDE extension, when you first
00:06:12 open it, you'll be able to see a splash
00:06:14 screen that says sign in. And so when
00:06:17 you click on that, it'll bring you to a
00:06:18 sign-in page similar to how you'll see
00:06:20 on the Codex CLI, which I'll demonstrate
00:06:22 now. So in the Codex CLI, all you need
00:06:25 to do is type Codex login, which will
00:06:28 take you to a page where you can sign in
00:06:30 with your work email. Um, it'll probably
00:06:32 route you through your internal SSO to
00:06:34 be able to log in. And once you're
00:06:36 you've done with that, you'll be able to
00:06:38 start using codecs uh locally on your
00:06:40 computer on the CLI and the ID
00:06:42 extension.
00:06:45 So, let me go back here. And so, once
00:06:47 you're in codeex CLI, um I'll show you
00:06:50 how to start running it in a second.
00:06:52 You'll see that there's a couple slash
00:06:54 commands that I will note throughout
00:06:55 this um session. The first one is slash
00:06:58 status. This just gives you a highlevel
00:07:00 overview of um the model that you're
00:07:03 using, the directory, the sandbox mode,
00:07:05 the approval policy, um how much context
00:07:07 window you have left. So, for example,
00:07:10 um just to go back to the CLI here, um
00:07:13 I'm on this specific version. I'm using
00:07:16 this model and currently in the agents.m
00:07:18 MD directory. And so, what you can do is
00:07:22 go to slashstatus and you'll see here
00:07:24 that I'm using this specific uh set of
00:07:27 configurations um with my account and my
00:07:30 session ID as well.
00:07:34 And so let's get started by cloning the
00:07:36 repository that we'll be using here
00:07:38 today. Um so we're using the agents.md
00:07:41 website which you'll see here. Um so
00:07:44 Charlie will talk more about agents MD
00:07:46 and why it's very important. Um but for
00:07:48 today we'll be cloning this repository
00:07:50 that's open source. Um so once you clone
00:07:53 that repository through this link below
00:07:55 just cd into that file, install npm and
00:07:58 then npm rundev. Um, so you'll be able
00:08:01 to run it locally and I will do the same
00:08:04 here as well. mpm rundev.
00:08:07 >> It's kind of meta. We're using the
00:08:08 agents MD micro site
00:08:10 >> while also talking about agents MD.
00:08:12 >> Exactly. Exactly.
00:08:14 >> But you know,
00:08:15 >> we want to hammer in agents MD today.
00:08:18 >> Yeah.
00:08:19 >> Awesome. So we've set up agents MD and
00:08:21 I'm running it locally now.
00:08:32 So, I'll hand it over to Charlie to to
00:08:32 dig a little deeper on agents MD.
00:08:34 >> Great. All right. So, we have a project
00:08:36 set up and we want to work on it. Um, we
00:08:38 can use agents MD to help get Codeex
00:08:41 clued in to how this project is going to
00:08:42 work. Um, why do we need an agent MD?
00:08:45 Well, when you think about it, coding
00:08:47 agents don't really retain any context
00:08:49 between sessions. Every time you start
00:08:50 it up, it's coming in with a fresh
00:08:52 context window. Agents MD ensures that
00:08:55 the instructions that you want to give
00:08:56 the agent to just give it the
00:08:58 background, the TLDDR on your project
00:08:59 are always loaded automatically. Codex
00:09:01 will always load this file in if it's in
00:09:03 the directory where you're starting
00:09:04 Codex.
00:09:05 >> You can use it basically as a
00:09:06 lightweight readme um that allows your
00:09:09 agent to quickly under understand and
00:09:11 get up to speed on your project and just
00:09:13 get that context it needs to actually be
00:09:14 able to do its work. So there are a few
00:09:17 different ways that you can use agents
00:09:19 MD. You can create it with a slashinit
00:09:21 command in the codex cli and this will
00:09:23 autogenerate a uh agentsmd file for you
00:09:26 just in the directory where you're
00:09:27 working. You can also create an agentmd
00:09:29 file in uh your uh codex home folder
00:09:32 which is a global agents md. Um this is
00:09:35 good for just kind of global configs
00:09:37 that you always want codeex to adhere to
00:09:39 things like using specific tools that
00:09:41 are you know just things that you use or
00:09:43 different kind of ways you want the
00:09:44 agent to act. You can also create
00:09:47 different agents MD files within your
00:09:49 project and even subdirectories within
00:09:51 your project and these are really good
00:09:53 for giving repo specific context.
00:09:55 Usually we'll put one at the git root of
00:09:57 the project that kind of is kind of the
00:09:59 starter place for codeex because that's
00:10:00 where we typically start up codeex. We
00:10:02 might also include it in subdirectories
00:10:04 for different services that just tell
00:10:06 Codex as it goes into that directory,
00:10:07 okay, here's what you're actually
00:10:08 working on here. Here's the context that
00:10:10 you need to pay attention to. Great. So
00:10:13 what's included in an agent MD? Common
00:10:16 sections that we often have in here are
00:10:18 the project overview and the structure.
00:10:21 Um just giving CEX pointers on where to
00:10:23 go for different files. Also how to
00:10:25 build the project and running test uh
00:10:27 commands. Doing helpful CLI tools that
00:10:30 you might use for yourself like the
00:10:32 GitHub CLI for example or different MCP
00:10:35 servers that you want to integrate. And
00:10:37 also giving Codex a workflow just
00:10:39 talking about how to go about
00:10:40 implementing a feature from front to
00:10:42 back. Lastly, you can include pointers
00:10:44 to other task specific guidance in
00:10:46 different files for the agent so that
00:10:48 the agent can do progressive discovery
00:10:50 as it wants to find out more about how
00:10:52 to do things in your project.
00:10:54 So, some of the best practices that we
00:10:56 recommend here, the first is to keep it
00:10:58 brief and focused. If you include too
00:11:00 many instructions, it can confuse the
00:11:02 the coding agent and it won't know
00:11:03 exactly what to pay attention to or if
00:11:06 they're conflicting, it can spend a lot
00:11:07 of time figuring out how to resolve the
00:11:09 conflicts. Most of OpenAI's agents MD
00:11:11 files and we looked at the monor repo to
00:11:13 figure this out were less than 100
00:11:15 lines. So they really don't need to be
00:11:17 that long. The second recommendation is
00:11:19 to focus on unlocking agentic loops. So
00:11:22 anytime you can give the agent feedback
00:11:24 or a way to get feedback from tools like
00:11:26 llinters tests etc and verify its work.
00:11:29 It really accelerates how much the agent
00:11:31 can do. And a good kind of intuition to
00:11:33 build here is after you run codeex, if
00:11:35 you're finding that you run commands to
00:11:37 say say check did the code compile or
00:11:40 maybe grab screenshots or something like
00:11:42 that, see if you can add those as
00:11:44 different commands and instructions for
00:11:45 codeex and have it just do that itself
00:11:47 and unlock those loops.
00:11:50 Next, we recommend continually updating
00:11:52 the agents MD file um as codeex
00:11:54 encounters mistakes that maybe it makes
00:11:56 or kind of gotchas. So if you're
00:11:58 watching Codex do a roll out and you see
00:12:00 it took a really long time to derive the
00:12:02 specific command it needed to run your
00:12:04 test suite for example just add that
00:12:06 command into your agents MD next time
00:12:08 and watch how Codex will pull that into
00:12:09 its context and then run a lot faster
00:12:12 and then you can also point it to task
00:12:14 specific files and we'll talk about this
00:12:15 in the next section but basically
00:12:17 reference other MD files from the main
00:12:20 agents MD file. So just to look at an
00:12:22 example of this pointing codeex to task
00:12:25 specific docs, you can use uh agents MD
00:12:28 to tell Codex where else to look. Agents
00:12:30 MD is always loaded into context. So it
00:12:32 has to be kind of general. And what you
00:12:34 can do is just add a section here that
00:12:36 says task specific documentation and
00:12:39 then call out different task specific
00:12:41 documents that are located in your uh
00:12:43 repository. For example, we might have
00:12:45 an exec plans.md file for planning large
00:12:48 tasks. We might have a front-end.mmd
00:12:50 file that's specific for doing front-end
00:12:52 tasks. We might have an architecture.mmd
00:12:55 file that outlines specific
00:12:57 architectural judgment calls that you
00:12:58 need to make when you're doing a feature
00:13:00 that requires large architectural
00:13:02 changes. Codeex will read this in the
00:13:04 agents MD, understand that it can call
00:13:06 on these things and its context and then
00:13:08 if it needs to, it'll go and read the
00:13:10 file and read it into its context. uh
00:13:12 which allows it again to do progressive
00:13:14 discovery on these things and kind of
00:13:16 gear up to the different challenges
00:13:17 you're giving it. So here's an example
00:13:20 of providing a planning template with
00:13:22 plans.mmd. You can use agents.mmd to
00:13:24 point codex to a plans.mmd file and this
00:13:27 is basically a template that tells the
00:13:29 agent how to build out a plan for larger
00:13:32 multi-step kind of projects that we want
00:13:34 to take on. Codex will generate a
00:13:36 markdown file using this exec plan as a
00:13:38 template and it can update this
00:13:40 individual plan as a living document. So
00:13:42 it'll go through and actually check
00:13:44 things off a checklist uh and kind of
00:13:46 update its progress here. Uh and this
00:13:48 helps codeex really run large refactors,
00:13:50 do large kind of crosscodebased sweeps
00:13:53 or work on multi-hour project uh tasks
00:13:56 just uh more effectively by having a
00:13:58 place where it can track how it executes
00:14:00 and update as it progresses. I'll note
00:14:03 you can also use MCP servers for this,
00:14:05 but there's nothing like just having a
00:14:07 markdown file for the models to read and
00:14:09 having a checked in ticket. Uh it, you
00:14:11 know, just makes it easy for the models
00:14:13 to keep that context up to date.
00:14:15 >> And you can see an example of using
00:14:16 plans.md on the opening cookbook, which
00:14:18 I've linked to here as well.
00:14:19 >> Agents MD is really a cheat sheet at the
00:14:21 end of the day. And uh the Charlie the
00:14:23 the example Charlie just mentioned with
00:14:25 plans. MD, one of our engineers was able
00:14:27 to run a 10 plus hour refactor um with
00:14:30 codeex and was it was successful in the
00:14:31 end. So this is a great example of what
00:14:33 you can use Codex for today.
00:14:35 >> Yeah.
00:14:44 >> All right. Let's talk about how to
00:14:44 further customize codecs to the way you
00:14:47 work in addition to agents MD which is
00:14:49 the configuration tommo file. So codeex
00:14:52 CLI was written in Rust hence why it's
00:14:54 in a tommo file. As you can see here on
00:14:56 the right, there's a couple uh different
00:14:58 areas that you can customize and have it
00:15:00 uh run as default when you have when you
00:15:02 start a codec session. For example, you
00:15:04 can specify the default model uh the
00:15:07 default model reasoning effort, sandbox
00:15:09 mode, approval policy, which I'll talk
00:15:10 about in the subsequent slide. You can
00:15:12 also toggle certain features to be
00:15:14 default on. For example, web search. Um
00:15:17 you can also specify different profiles.
00:15:19 So for example, sometimes I just want to
00:15:21 start a codec session that defaults to
00:15:24 uh the fastest model uh with the lowest
00:15:26 reasoning effort to get the fastest
00:15:28 responses. So I created a profiles
00:15:31 called fast. So I can just do codeex-p
00:15:33 space fast and it'll create um that
00:15:36 specific configuration for the session.
00:15:38 And as Charlie mentioned, you know, MCP
00:15:40 is an area that you can also configure
00:15:42 codecs to work with. So in this example,
00:15:45 we have uh one of the MCPs that we'll
00:15:47 cover later in the session as an example
00:15:49 on the right. So this is just the tip of
00:15:51 the iceberg. As you can see on um this
00:15:54 slide here, there's a lot of different
00:15:56 configurations that you can do uh with
00:15:58 the codec. Um and if you go to this uh
00:16:01 website, you will see a lot of different
00:16:03 uh configurations for you to go.
00:16:06 >> Yeah, one of my favorites to set here is
00:16:07 the terminal notifications. Uh, it
00:16:09 allows you to get like a popup when
00:16:11 Codex finishes a task, which some people
00:16:13 don't like. I actually like it because
00:16:14 Codex will run in the background and
00:16:16 like ring a bell when it's done for me.
00:16:17 So, that's nice. But
00:16:18 >> a lot of bells going off.
00:16:20 >> Yeah. Yeah.
00:16:21 >> Um, to go back to the last lie here. So,
00:16:23 uh, approval policy and sandbox mode are
00:16:25 two areas. Uh, I just want to dive a
00:16:27 little further into. The default for
00:16:29 Codeex is to have the approval mode um
00:16:32 on requests, which is Codeex will run
00:16:35 until it decides it needs to ask you for
00:16:36 any escalated permissions. The other
00:16:38 default is workspace write as the
00:16:41 sandbox mode. What that does is uh
00:16:43 codeex will write to files in your
00:16:44 current directory and not anything
00:16:46 outside. U but as you can see here
00:16:48 there's a couple configurations that you
00:16:50 can change with the default when you
00:16:52 start a codec session.
00:17:02 Awesome. Let's turn it back over to
00:17:02 Charlie to talk about prompting with
00:17:04 codecs.
00:17:05 >> All right. Okay, so similar to writing
00:17:06 an agents MD file, your prompt is kind
00:17:08 of the ultimate context which you want
00:17:10 to give codecs, right? And so writing
00:17:11 good prompt really determines kind of
00:17:13 what you get out of codeex.
00:17:15 >> There are a few tips here which we found
00:17:16 to be kind of universally helpful. So
00:17:18 the first is to use appmention uh to
00:17:21 just point CEX to a you know file within
00:17:24 your codebase that you want to start
00:17:25 focusing on. Um, I use this a lot and it
00:17:27 doesn't necessarily have to be the file
00:17:28 that you, you know, end up, uh, wanting
00:17:31 to analyze or kind of like pull in. Um,
00:17:33 but a starting point to kind of anchor
00:17:35 codeex where it can start then
00:17:36 traversing all the code paths is really
00:17:38 helpful. When we see the agent kind of
00:17:40 go off the rails, a lot of times it's
00:17:42 because it starts looking in a part of
00:17:43 the codebase where it's just not really
00:17:45 relevant to what you're trying to do.
00:17:46 So, if you can anchor it with this,
00:17:48 super helpful. The next recommendation
00:17:50 is to start with small tasks before you
00:17:52 move on to larger ones. So, if you're
00:17:54 new to prompting uh with a tool like
00:17:56 Codeex, smaller tasks are going to be
00:17:58 easier for you to test out and kind of
00:18:00 review to start. And as you get more
00:18:02 comfortable, ramp up asking Codex to do
00:18:05 kind of more and more uh tasks and
00:18:07 larger units of work. But as a tip here,
00:18:09 you can actually use Codeex to help
00:18:11 break tasks down. And it can do this by
00:18:13 looking at your codebase. So if you ask
00:18:15 it to do kind of just a pure research
00:18:17 effort to go look through your codebase
00:18:19 and figure out how it would implement a
00:18:20 feature and break it into small tasks,
00:18:22 it'll actually come up with very small
00:18:24 units of work that you can then just
00:18:25 prompt it to do and follow up on and
00:18:27 follow along with. Um we always
00:18:30 recommend including verification steps.
00:18:31 So provide codeex with the steps to
00:18:33 check its work. For example, running
00:18:35 tests, llinters, etc. If this isn't in
00:18:38 your agents MD, it's good to include in
00:18:40 your prompt. Another way to do this is
00:18:42 just just tell Codeex here are the
00:18:43 requirements that you need to implement
00:18:45 in order for this feature to be
00:18:46 considered complete and it can use that
00:18:48 as kind of a yard stick to measure its
00:18:49 progress as it works along. The next is
00:18:52 if you're debugging which is one of the
00:18:53 top use cases of codeex just paste the
00:18:55 full stack trace into Codex give Codex
00:18:57 the full kind of detail there and it can
00:19:00 use that to navigate your codebase and
00:19:01 figure out what's generating the error.
00:19:03 Um super super helpful. Um, as we
00:19:06 mentioned before, you can customize how
00:19:08 Codex does its work by using agents.md.
00:19:11 And we also recommend that you try
00:19:13 open-ended props. Uh, this can be great
00:19:16 to just brainstorm ideas for feature
00:19:18 improvements or how to improve
00:19:20 performance. Um, you can ask Codex kind
00:19:22 of after you implement a feature, what
00:19:24 would you consider building next? And
00:19:25 Codex is actually really good at kind of
00:19:27 looking at your codebase and
00:19:28 holistically considering, okay, here's
00:19:30 what I would add. So there's more on the
00:19:32 developers website uh on this and we
00:19:34 encourage you to check out the prompting
00:19:35 guide for Codex as well.
00:19:36 >> A great thing Codex does as well is um
00:19:38 Codex CLI actually gives you next steps,
00:19:41 suggested next steps when you come up
00:19:43 with when you ask it a prompt. So this
00:19:45 is a great way for you to continue the
00:19:46 brainstorm conversation as you said.
00:19:48 >> Yeah. Yeah. So some uh great starter
00:19:51 tasks, you know, if you were just try
00:19:53 codeex today, explain the codebase. uh
00:19:56 just write a quick readme based on
00:19:57 something that you're interested on the
00:19:59 codebase or maybe another team's
00:20:00 codebase um at your company. Use it for
00:20:03 bug fixing. Uh just paste in the stack
00:20:05 trace and have it uh work on fixing a
00:20:07 bug for you. Uh have it expand test
00:20:09 coverage. So take a look at a feature
00:20:11 and ask it, you know, where which edge
00:20:13 cases do we need to consider? Um are
00:20:15 there other things that we need to add
00:20:17 in here to complete our test coverage?
00:20:18 And it can build out those tests for
00:20:20 you. And then also doing refactors
00:20:22 across many files. So maybe we want to
00:20:24 make a generic component that's kind of
00:20:26 spread across multiple different
00:20:27 implementations. Um Codex can look
00:20:29 through and identify patterns, extract
00:20:31 that component and then make it kind of
00:20:33 generic across all those different
00:20:34 interfaces. It's really good at those
00:20:36 kind of refactoring tasks.
00:20:37 >> And one underrated area is writing
00:20:39 documentation. Engineers typically don't
00:20:41 like doing that. So I I love uh using
00:20:44 codeex CLI to help me write the
00:20:45 documentation that's needed.
00:20:46 >> Keeps it up to date as you're as you're
00:20:48 building things. So let's take a look at
00:20:50 this in the CLI of how you can send a
00:20:52 readonly prompt and change the reasoning
00:20:53 effort uh with codecs. Um if you're in
00:20:56 the CLI, you can fire it up using codecs
00:20:58 and then use /models to switch between
00:21:01 uh medium uh low, medium, and high. Um
00:21:04 let me pull this up and show you what
00:21:05 this looks like in VS Code. Um so I'm in
00:21:08 VS Code and I'm just going to um pull
00:21:10 open codeex in the side panel here. Um I
00:21:13 have a few options down at the bottom. I
00:21:15 can go and select if I want to work
00:21:17 locally, which we're going to focus on
00:21:18 today. But you can also actually run
00:21:21 tasks in the cloud. Um, so if you've
00:21:23 connected uh Codex cloud, uh you can
00:21:25 have your uh agent spin up a cloud
00:21:28 container, run multiple different
00:21:29 iterations in parallel on those
00:21:31 containers. Uh and it's a great way to
00:21:33 get different versions going. We can
00:21:35 also switch the different modes that
00:21:36 Codex has access to here. So for this,
00:21:38 um I'm just going to ask it about the
00:21:40 codebase. I'll put it into chat mode,
00:21:41 but I can also put it into agent mode or
00:21:43 agent full access mode or a custom
00:21:45 configuration mode here. And then
00:21:47 lastly, I can pick the different
00:21:49 reasoning models or the different models
00:21:51 here and also the reasoning level uh
00:21:53 that I want codeex to use. This will be
00:21:55 a pretty simple question. I'll just say,
00:21:56 you know, can can you tell me uh about
00:21:59 this project?
00:22:01 You can make this more custom. Um and
00:22:04 it'll go through it will actually
00:22:06 research kind of what's going on in the
00:22:08 project. You can see it's starting its
00:22:09 chain of thought here. Um, and once uh
00:22:12 it gets going working with this, we can
00:22:14 see the steps that it's following. So,
00:22:15 it'll give us a summary of what it's
00:22:17 trying. Uh, you can actually check out
00:22:19 uh kind of the files uh that it's read
00:22:21 down here. Um, and when it's done, it'll
00:22:23 produce a full summary for us to
00:22:25 actually go and review here. One of the
00:22:27 things that I love that's kind of a more
00:22:29 advanced way of using this is actually
00:22:30 asking it to look through the git
00:22:31 history and it can use git uh just like
00:22:34 it would on the cl the command line to
00:22:36 figure out maybe who committed to this
00:22:37 file or what were the recent changes
00:22:40 that you know happened in the project.
00:22:41 Um super super helpful way to get on
00:22:43 board.
00:22:44 >> Codeex is a know-it-all historian.
00:22:46 >> Yeah. Yeah. Um so that's sending like a
00:22:48 readonly you know prompt but obviously
00:22:50 we also want to be able to make changes.
00:22:52 So um here's an example uh that I've
00:22:54 already kind of uh pre-built here. I
00:22:56 wanted to create a simple HTML page uh
00:22:59 called assets html that shows how the
00:23:01 files in this agent MD project are
00:23:04 related. So we could generate a markdown
00:23:06 file or we could generate a whole
00:23:07 documentation website. So let's generate
00:23:09 a documentation website. Um just to show
00:23:12 how I did this. If I go back here and
00:23:15 actually um view the different uh
00:23:17 prompts that I have um I can see the
00:23:19 different conversations uh that I have
00:23:22 uh going here. Um, and if I go into this
00:23:25 one, here's where we created the uh,
00:23:27 simple HTML um, site, I can see that it
00:23:30 created this assets HTML file for me. I
00:23:32 can uh, click to open that uh, in the
00:23:35 side panel. Um, and I can also go and
00:23:37 see kind of the summary of the chain of
00:23:39 thought. Um, so Codex went and actually
00:23:41 implemented this as a file here. Um, if
00:23:44 I pull it up here and grab it, it's in
00:23:46 assets.html.
00:23:49 Um,
00:23:50 >> just go to Chrome and show it. And if we
00:23:52 pull it open in Chrome here, um, I can
00:23:55 tab over to Oh, if I tab over to Chrome
00:23:59 here. Let me get this going again here.
00:24:02 Um,
00:24:04 >> is it in
00:24:05 >> It's right here.
00:24:06 >> Oh, there we go. If I tab over to Chrome
00:24:08 here, I can pull this open and we have
00:24:10 this file that's already kind of
00:24:12 generated a really nice looking like
00:24:13 documentation page for us. uh here where
00:24:16 it's calling out kind of the different
00:24:18 um you know flows in the project, what
00:24:20 all the different files do. Again, super
00:24:22 simple example, but just kind of a a
00:24:24 quick uh run through of what Codex can
00:24:26 generate really quickly for you. Um all
00:24:29 right, so let's go back into uh the
00:24:32 presentation here real quick. And um
00:24:35 there we go. Um so we can also send a
00:24:38 prompt that makes uh further changes to
00:24:40 the site. So not just kind of like
00:24:42 documenting things but like changing
00:24:44 existing functionality. Um so that for
00:24:46 this one I can say can you implement you
00:24:48 know next to the explore examples view
00:24:50 on GitHub buttons and maybe a download
00:24:52 button and another one to uh copy the
00:24:54 pages markdown. Um so all I need to do
00:24:56 to do this is open up um a new
00:24:59 conversation here. We'll just start a
00:25:00 new chat and say uh can you implement uh
00:25:04 some hero buttons
00:25:07 um to download the repo
00:25:14 link to GitHub
00:25:14 um and copy the markdown of the site.
00:25:19 Let's kick that off there. And um I'm
00:25:21 actually going to pause this real quick.
00:25:23 I'm going to switch it over into agent
00:25:25 mode so that it can go uh and implement
00:25:28 this for me. And then let me run this
00:25:29 again here.
00:25:33 So this will kick off codeex and it will
00:25:34 actually go and uh work on implementing
00:25:36 these new buttons for us. It looks like
00:25:38 it's exploring the files. Uh it's
00:25:41 reading kind of our hero file to figure
00:25:42 out where we want to put that in there.
00:25:44 One of the nice things about the ID, it
00:25:46 gives you these pills that kind of allow
00:25:47 you to click and open up the file that
00:25:49 CEX is referencing so you can follow
00:25:51 along with it. um it's come up with a
00:25:54 planning uh uh task list here that kind
00:25:57 of shows us how it's going to think
00:25:59 through the different steps that it
00:26:00 wants to uh work on. And then when it's
00:26:02 done, it'll actually have added these
00:26:04 buttons to the site for us. So, uh it'll
00:26:06 just go through there a little bit and
00:26:08 kind of figure out exactly what it wants
00:26:09 to uh what it wants to add. Um
00:26:13 >> yeah. Okay. So, we just wrapped up the
00:26:15 task there. And then if we go over uh to
00:26:17 check out agents in the browser now, you
00:26:20 can see it's added a few different
00:26:21 buttons here where we can download the
00:26:22 repo, we can view it on GitHub, we can
00:26:24 copy the markdown, etc. And Codex has
00:26:27 just implemented that for us based off
00:26:28 of a simple prompt there. Um,
00:26:30 >> so pretty cool how how quickly we can
00:26:32 just implement things with that.
00:26:44 >> All right, for some more CI tips and
00:26:44 tricks.
00:26:44 >> Thanks, Charlie. Um let's talk about
00:26:46 some uh different tips and tricks uh
00:26:49 across this two surfaces, the CLI and
00:26:51 the IDE. So Charlie already mentioned
00:26:53 this briefly earlier, but you can point
00:26:56 codecs to specific files in your
00:26:57 codebase. Um for example, in the CLI, um
00:27:02 I can quickly
00:27:05 just at mention any sort of file. So um
00:27:08 I can specify file and ask any question
00:27:10 so Codex knows exactly where to look at.
00:27:12 Um, also within the ID extension, I can
00:27:15 also do the same. I can pick a specific
00:27:18 file. One thing to note here as well is
00:27:21 you can actually bind specific keyboard
00:27:23 shortcuts um to uh specific
00:27:26 functionality. So here there's one that
00:27:29 you can actually bind and add context by
00:27:31 just highlighting specific parts of the
00:27:33 text in a file. So I bind it command
00:27:35 shift C personally and as you can see
00:27:37 here I added context for the hero tsx
00:27:40 file um these specific 10 lines by just
00:27:42 binding the hotkey there. So just
00:27:44 another tip in terms of what you can do
00:27:46 with the codeex um in the CLI and the
00:27:49 IDE extension. So you can also use
00:27:52 to-dos in codec IDE and this is a
00:27:55 feature that I personally love using.
00:27:58 So, for example, uh if I go back to this
00:28:00 uh ID extension, I can actually go to a
00:28:03 specific part of the file. In this case,
00:28:05 I believe I have a todo already here um
00:28:07 that asks Codex to do something similar
00:28:10 to what Charlie did, which is to
00:28:11 implement a button to download markdown
00:28:13 to view on GitHub. And once you have
00:28:16 that to-do created, you can actually
00:28:18 just click on implement with codeex, and
00:28:20 it'll actually fire off a task on the
00:28:22 right here. I won't have it fully run
00:28:24 since we've already completed this task.
00:28:26 But as you can see here, you can
00:28:28 technically have a lot of different
00:28:29 todos within um your code and actually
00:28:32 just have codeex implement all of them
00:28:35 for you, which is fantastic.
00:28:37 So, let me go back to the slides here.
00:28:39 So, another area that um a lot of people
00:28:42 use codecs for is to actually prompt
00:28:45 codeex with an image example. So in this
00:28:47 case, if I go to the agents.mmd file,
00:28:51 you see here there's no background color
00:28:53 for uh these three setup commands. What
00:28:55 I can do is actually just take a
00:28:58 screenshot of it and ask codeex to make
00:29:00 the inline background code chips orange.
00:29:03 So uh in this case, maybe I'll just use
00:29:05 the um ID uh CLI here since we've
00:29:08 already used the IDE for a couple
00:29:09 examples. In this case, I'll just paste
00:29:12 in the screenshot here. Can you make the
00:29:15 inline
00:29:17 um chips
00:29:20 orange?
00:29:21 Great. So, Codeex is able to read that
00:29:25 um as you can see um it'll explore the
00:29:27 codebase and find exactly where it needs
00:29:29 to update. Um in a few seconds here,
00:29:31 it'll be able to actually change the
00:29:33 background colors um of those three
00:29:35 setup commands to be orange.
00:29:37 >> Super helpful. Like anytime you find
00:29:39 yourself trying to describe like which
00:29:41 button third from the left or whatever
00:29:43 like Codex is supposed to modify or like
00:29:45 you just give it a an image that's able
00:29:47 to understand the image and exactly make
00:29:49 code changes based off of that.
00:29:50 >> As you can see here it added a couple
00:29:52 lines took out a line here. So if I
00:29:54 actually go back great it was able to
00:29:56 implement according to what I asked it
00:29:58 to do which is fantastic. So um you can
00:30:02 also do this in the IDE just to quickly
00:30:03 show how that would work. You would just
00:30:06 click on the plus and add image. As you
00:30:08 can see here, I can specify the
00:30:09 screenshot.png that I have on my desktop
00:30:12 and do the exact same thing on the ID
00:30:14 extension.
00:30:16 All right. So, one other great tip is to
00:30:19 um know how to resume a codec session.
00:30:22 So, within the CLI, when you quit a
00:30:25 session, typically u people want to
00:30:27 sometimes go back to the session to
00:30:29 continue the conversation, especially
00:30:30 when there's still um huge amount of
00:30:32 context remaining. So one thing you can
00:30:35 do is in the codec cli interface is um
00:30:40 just run codeex resume. And so what this
00:30:42 will do is come back with all the
00:30:44 previous conversations that you had with
00:30:47 codecs and you can actually just go
00:30:49 specifically back to a conversation. In
00:30:51 this case um I went back to this
00:30:54 specific conversation and I can just
00:30:55 continue it. So this is just an example
00:30:58 where for example I can just ask codeex
00:31:00 to change the chip code to green after I
00:31:03 change it to orange. So again this is a
00:31:06 very very simple example of how you can
00:31:08 resume conversations. Um and as you can
00:31:10 see within codec cli there is a session
00:31:13 ID. So if you want to go back to a very
00:31:16 specific session and not have to scroll
00:31:18 through um the codeex resume UI, you can
00:31:20 just run the specific command and it'll
00:31:22 go back to that session. And uh Charlie
00:31:24 already um showed this earlier, but you
00:31:26 can always go back within the IDE and
00:31:29 search for a specific task and and show
00:31:31 that uh accordingly and continue the
00:31:33 conversation.
00:31:35 >> Yeah, as you can tell, context
00:31:36 management is just so important to
00:31:38 getting the right results out of there.
00:31:39 And that session contains all of the
00:31:41 context that you've given the model. So
00:31:42 I I use it a lot as kind of like just
00:31:45 almost like a mini project container for
00:31:47 a specific aspect of a a project that
00:31:49 I'm working on. Maybe like I have a test
00:31:51 session that I'm kind of working on or I
00:31:53 have like a specific session for
00:31:54 implementing a front-end feature or
00:31:55 something like that.
00:31:56 >> Definitely very very helpful.
00:31:59 >> Another great tip is you can actually
00:32:00 use codecs in the ID extension to
00:32:03 generate mermaid sequence diagram. So
00:32:05 this will show you how you know the
00:32:07 processes operate with one another and
00:32:09 in what order order in the repo. So to
00:32:12 show this in the IDE extension um I can
00:32:15 go back sorry too many windows and
00:32:18 actually show you that I ran this
00:32:21 earlier. So all I asked is provide me a
00:32:24 clean mermaid sequence diagram for this
00:32:25 codebase and it came back with a very
00:32:27 concise sequence diagram that I I can
00:32:30 copy I can download. Um and this is
00:32:32 really great um for complex repos.
00:32:36 Awesome.
00:32:38 So one other area that we briefly
00:32:40 touched on earlier is web search is
00:32:42 default to be off um for codecs. And so
00:32:45 what you can do in the config tommo file
00:32:48 is to have the web search request
00:32:51 default to be true. If you don't have
00:32:53 that in your config toml you can also
00:32:55 just pass in a configuration flag. So in
00:32:57 this case you can just ask codeex with
00:32:59 enable web search request to add
00:33:02 something like the latest news footer uh
00:33:04 box that gives you the current article
00:33:06 of uh of the next next.js um 15. And so
00:33:10 this is just a a quick example of how um
00:33:13 you can pass in specific configurations
00:33:16 when you start a codec session.
00:33:19 And one great area that a lot of our
00:33:21 users use codecs for is to add specific
00:33:24 custom commands. So in this CA case um
00:33:27 you can go to your codec home folder and
00:33:30 create a prompts file folder and add it
00:33:33 at test.mmd um file as an example. So
00:33:36 what this file will do is ask codeex to
00:33:39 generate unit tests for any of the files
00:33:41 that changed um and use the existing
00:33:43 test runner and just to keep the diffs
00:33:45 minimal. So what you can do and let me
00:33:48 demonstrate very quickly is you can go
00:33:50 to your codec home folder. In this case,
00:33:53 I just opened it within VS VS Code. And
00:33:56 you can create, like I mentioned, a
00:33:58 prompts folder. And in here, I added an
00:34:00 AT@ test.md file. And so what that does
00:34:04 is if I go back to codec cli. Um, you
00:34:08 know, if you just added it, you should
00:34:09 quit and just restart it. What you'll
00:34:11 see is that if you type in prompts,
00:34:14 you'll actually see the add test.md file
00:34:16 here. So when you click enter, it'll
00:34:19 actually uh pull in the exact uh um
00:34:22 instructions that you gave this uh
00:34:24 markdown file and actually generate the
00:34:26 unit test for for any of the files that
00:34:28 changed. So very very convenient. And
00:34:30 you know, obviously this is just one
00:34:32 example of a custom command that you can
00:34:34 add for codec.
00:34:45 So let's move on to MCP. So you know MCP
00:34:45 is most people know here it's it's
00:34:47 really a protocol for connecting you
00:34:49 know models to any sort of additional
00:34:51 tools and context. So with codecs we
00:34:53 support standard IO and also HTTP
00:34:56 transport. And so here are just a couple
00:34:58 examples of common you know MCP servers
00:35:02 that a lot of our customers use. For
00:35:04 example people connect the Figma MCP
00:35:07 server so they can generate any sort of
00:35:08 front-end designs based on mockups
00:35:10 there. Um the Jira um and linear MCPs
00:35:14 are both very popular. Uh so for
00:35:16 example, you can see what tickets are
00:35:18 assigned to you. You can have codecs
00:35:20 actually create the changes code changes
00:35:23 for you and update the ticket to done
00:35:25 for example. Um you can also use for
00:35:27 example context 7 to implement any
00:35:30 thirdparty API callouts. And also the
00:35:32 data dog MCP server is hugely popular to
00:35:35 diagnose any production issues as well.
00:35:38 But you know, as you know, there's a lot
00:35:39 of different MCP servers out there. Um,
00:35:42 and Codex is able to connect to these
00:35:44 servers for um, additional context.
00:35:48 So, here is just one example. Uh, we
00:35:50 called it a cupcake MCP. This is um, a
00:35:53 very simple example that we created just
00:35:55 for this session. Um, so what this does
00:35:58 is just returns um, an example of how
00:36:00 many cupcakes someone has ordered. Um,
00:36:03 just a very simple example here. And to
00:36:06 run that command um and to add the MCP
00:36:09 to codeex uh what I'll do here um as you
00:36:12 can see here this is the the generating
00:36:15 unit tests um that I did earlier. In
00:36:18 this case I I'll just quit um and start
00:36:21 it again. And I copied in this command
00:36:24 to to add this Cupcake MCP server. So
00:36:27 with codeex we made it very simple for
00:36:29 you to just type in CEX MCP add and add
00:36:32 in the um parameters. And when I click
00:36:35 enter, um, it added a global MCP server
00:36:38 called Cupcake MCP. And to show that it
00:36:40 actually did add, if I go back to the
00:36:42 config tommo file, as you can see here,
00:36:45 if I reduce the size of this, it did add
00:36:48 um the um MCP server here. So you can
00:36:51 also just directly add it in your config
00:36:54 tomal, but we've seen a lot of our users
00:36:56 just use the simple Codex MCP ad as an
00:36:59 example.
00:37:00 So um to use one example on how to use
00:37:05 the cupcake MCP. So we are going to ask
00:37:08 codeex to add a section at the bottom of
00:37:10 the agents MD page that just fetches uh
00:37:13 Rachel's cupcake order. Um and very
00:37:17 simple um I'll just use this to
00:37:19 illustrate how um MCP connections work
00:37:22 within codeex. And so I'm starting
00:37:24 another codec session here and I'm going
00:37:27 to paste in this request. And so as
00:37:31 you'll see in a second, it'll be able to
00:37:32 call the codeex uh cupcake MCP server
00:37:36 and actually add this uh piece of code
00:37:38 at the bottom of the agents MD page.
00:37:40 >> Cool.
00:37:48 I'm waiting for it to pop up. It's going
00:37:48 to get it's going to call it. I can
00:37:49 tell.
00:37:49 >> Yeah. Yeah. Yeah. It'll come in a few
00:37:52 few seconds here.
00:37:54 It's analyzing the integration options
00:37:56 for Rachel's order. It's serious
00:37:58 business here. It's searching for
00:38:00 Cupcake.
00:38:02 And
00:38:08 there we go. It called Cupcake MCP
00:38:08 search. It was able to fetch her order.
00:38:11 As you can see here, Rachel ordered
00:38:14 seven marble cupcakes for pickup. I'm
00:38:16 getting hungry just looking at this. Um,
00:38:18 and what it'll do, Codex will add this
00:38:21 to the bottom of the agents.mmd file.
00:38:24 >> So, pretty simple, but you can see how
00:38:26 you could extend this to, you know, for
00:38:28 example, like production logs, you know,
00:38:30 maybe you want to pull down to diagnose
00:38:32 a performance issue or like
00:38:34 >> grab like a Jira ticket and like pull in
00:38:36 the context from that ticket for codeex
00:38:38 to work on. So, again, super basic
00:38:40 example to start, but I think like
00:38:42 indicates, you know, how much you can
00:38:43 actually do with MCP.
00:38:45 >> Exactly. Exactly. I will move on to the
00:38:48 next example as it completes this task.
00:38:50 So one other MCP I just want to mention
00:38:53 that is hugely popular is contact 7
00:38:55 where it can pull in the most up-to-date
00:38:58 documentation for uh any framework out
00:39:00 there. So what you can also do is use a
00:39:03 similar codeex MCP add command to add
00:39:06 context 7 as an MCP server in your
00:39:09 config. So in this case um I did already
00:39:12 add um context 7. So you can see here I
00:39:16 already have context 7 present in my
00:39:18 config tommo file and so the next
00:39:20 example I will use this but I do see
00:39:22 that the cupcake example um was finished
00:39:25 and so let me actually go back to the
00:39:29 file here the agents MD file running
00:39:31 locally on my computer and I'll reload
00:39:34 it and it should be able to show me um
00:39:37 the cupcakes example at the bottom. Let
00:39:41 me scroll to the bottom here. There we
00:39:43 go. It looks like yes indeed. Rachel has
00:39:46 seven marble cupcakes uh ready for
00:39:49 pickup. So I know what I'll be doing
00:39:51 after this session.
00:39:53 >> All right. So let's move on to this
00:39:55 example which is using context 7. So um
00:39:59 this example I'm going to ask codeex to
00:40:02 implement an input on the agents MD page
00:40:05 running locally where people can
00:40:06 actually generate their own agents MD
00:40:09 file using a small prompt um that
00:40:11 actually calls OpenAI's responses API.
00:40:13 Um, and it'll actually take the latest
00:40:15 docs from context 7 to get the latest
00:40:17 API spec. And so, let me copy this
00:40:22 prompt. And let's go with the IDE
00:40:25 extension for this example. And so, I'm
00:40:27 going to keep it on agent. Uh, maybe in
00:40:31 this case, I'll use a different model.
00:40:32 Uh, I'll use GT51 codeex mini. Um, I'll
00:40:36 use medium. And I'll ask it to implement
00:40:38 this input for me. So what you'll see in
00:40:40 a second, it's able to call the context
00:40:44 7 MCP and actually add this um change to
00:40:48 to the agents MD page. So as you can see
00:40:51 here, it's able to uh retrieve context
00:40:54 7's library docs. Um it's able to now
00:40:57 explore um different files. It's reading
00:41:00 our agents MD that's present in our
00:41:03 repository. Um and looks like it's
00:41:05 preparing to add the agents MD
00:41:08 generator. So um very quickly it's able
00:41:10 to understand what my um request is,
00:41:14 look at the docs and actually read
00:41:16 through the the different files um
00:41:18 within this repository.
00:41:19 >> And this is super helpful, right?
00:41:21 Because you know models have so much
00:41:23 pre-training context, but it kind of has
00:41:25 like a knowledge cut off date. And so
00:41:27 like as programming frameworks evolve
00:41:29 and documentation gets updated things
00:41:32 like context 7 or really any MCP that
00:41:35 you want to integrate a lot of customers
00:41:36 build their own internal documentation
00:41:38 MCPS just helps codeex stay in sync with
00:41:41 actual implementation that you know as
00:41:43 it updates in real time. Definitely
00:41:46 definitely awesome. See, it's continuing
00:41:48 to work. In this case, I will go back to
00:41:51 the slides and talk about the next um
00:41:54 tip that I have, which is actually to
00:41:56 add um more custom instructions to your
00:42:00 global agents MD that sits in your
00:42:02 codeex home folder that Charlie
00:42:03 mentioned earlier. So in this case um if
00:42:06 you don't want to have to ask codeex to
00:42:10 look at context 7 every time um you can
00:42:14 actually add a specific input um within
00:42:16 the codeex home folder which I'll show
00:42:18 you here um which is to actually say
00:42:22 when implementing new features of any
00:42:24 you know external libraries or APIs
00:42:26 always search if there is relevant
00:42:28 documentation on context 7. Um, as you
00:42:31 can see, I have a I have a couple other
00:42:32 lines on my uh personal Codex home
00:42:35 agents MD file. But what this will do is
00:42:38 actually allow the user to not even
00:42:40 specify context 7 and CEX will be able
00:42:43 to read your global agents.md and
00:42:45 actually call the exact same um MCP
00:42:48 server uh without you specifying it,
00:42:50 which is fantastic. So I believe um
00:42:53 perfect timing. It looks like it's about
00:42:55 to be done with all three. It looks like
00:42:58 it was able to change three files. It
00:43:00 added almost 300 lines of code. Um, as
00:43:03 Charlie mentioned, you you can also look
00:43:05 at the specific diff as well. Um, looks
00:43:08 like it's, you know, doing serious
00:43:10 business here. Looking through some of
00:43:13 the files. Um, all right. Let's go back
00:43:16 to this um this last tip that I have
00:43:20 before this prompt finishes, which is
00:43:22 actually to use codeex to review your
00:43:24 code for you. So there's a couple ways
00:43:26 to do that within the CLI and the IDE.
00:43:28 Within the CLI, there's four options.
00:43:30 You can have Codeex review against a
00:43:32 specific base branch. You can have
00:43:34 Codeex review all your uncommitted code
00:43:37 locally. You can also have Codex review
00:43:40 specific commit. And you can also
00:43:42 provide custom review instructions on
00:43:44 top. Um, as Charlie mentioned earlier
00:43:46 when we were talking about agents MD,
00:43:48 you can actually have a specific
00:43:51 separate MD file that's not directly in
00:43:54 agents MD. So, for example, what I've
00:43:56 seen a lot of users do is create a code
00:43:58 review guidelines MD that's referred to
00:44:01 within the agents.mmd file to not
00:44:04 overflow the agents MD file with too
00:44:06 many lines. Um, so this is one great way
00:44:08 to steer codecs to understand how to
00:44:12 actually review your specific team's
00:44:14 code. And within the IDE, there's also
00:44:17 uh the ability to um review code as I'll
00:44:21 show here in a second. There's slash
00:44:23 commands here. So when you click on code
00:44:25 review, you can also review it against a
00:44:27 specific base branch or review your
00:44:29 uncommitted changes. But before we do
00:44:31 that, let's take a look at what Codeex
00:44:33 was able to do with adding this input.
00:44:36 So, let's go back to this file and see
00:44:40 if it was able to add this responses API
00:44:44 section. So, great. Looks like it's able
00:44:47 to add a section that will actually use
00:44:49 OpenAI's responses API to generate an
00:44:52 agents.mmd file with your prompt. So, uh
00:44:54 just a great way to do that. So, I will
00:44:58 quickly show how to um fire off the code
00:45:02 review. So again, you can use codec cli
00:45:07 with the review command. So you can
00:45:08 review your uncommitted changes, review
00:45:10 a specific commit or add custom review
00:45:12 instructions. In this case, I'll quickly
00:45:14 show how it works within the ID
00:45:17 extension. So I can click on code review
00:45:19 here and click on review uncommitted
00:45:21 changes and it'll be able to actually
00:45:23 run through uh and it will come back
00:45:25 with a couple um responses. Usually
00:45:28 it'll look to see if there's any P 0 or
00:45:30 P1 issues and it'll definitely surface
00:45:32 that. It'll also surface sometimes P2 or
00:45:34 P3 issues. Um, and it's just a great way
00:45:38 to know what you need to fix and
00:45:40 actually ask Codeex to fix it for you.
00:45:42 Uh, because it does come back with um a
00:45:45 button within the ID extension where you
00:45:47 can just click on it and it'll help you
00:45:48 fix the issue, which is pretty awesome.
00:45:50 >> Exactly. What a great way to to do
00:45:53 everything in one with the codec cli and
00:45:56 the ID extension.
00:45:57 >> I think one of the most important things
00:45:58 we found with code review is that it
00:45:59 really can't be too noisy. like if it's
00:46:01 commenting on too much, people just tune
00:46:03 it out. And so the model has actually
00:46:05 been trained to kind of really only
00:46:07 focus on those P 0 or like P1 issues.
00:46:10 And sometimes it'll find P2s or like
00:46:11 P3s, but like I often find usually when
00:46:14 it comments, it's like if I don't fix
00:46:16 this, it's going to break in production.
00:46:18 >> Exactly. It's defin it's definitely
00:46:20 found some um code issues internally
00:46:22 that it help fix. Um and it's just a
00:46:24 great way to not have an expensive
00:46:26 llinter, right? because it always comes
00:46:28 back with something that is actually an
00:46:30 issue that you can actually have codeex
00:46:32 fix for you.
00:46:42 >> Now, let's hand it back over to Charlie
00:46:42 to talk about some of the juicy advanced
00:46:44 use cases.
00:46:45 >> Yeah. So, one of the things that I get
00:46:47 really excited about with Coke CLI is
00:46:48 that you can use it obviously
00:46:50 interactively, but you can also use it
00:46:52 programmatically. So you can build it
00:46:54 into different pipelines or build
00:46:55 different use cases with it um that kind
00:46:57 of run on your own containers and just
00:46:59 do really whatever you want to build. Um
00:47:01 so to kind of show this I wanted to jump
00:47:03 into the terminal here uh and just pull
00:47:06 up codeex uh and um kind of show what
00:47:09 this looks like. So in our agents MD f
00:47:12 uh in our agents MD site here um we have
00:47:14 a special file that I've created. I'll
00:47:17 actually show this over here um called
00:47:19 codeex output schema. If I close codex
00:47:21 on the side here, we can see what this
00:47:23 is. It's just a JSON file that adheres
00:47:25 to the OpenAI structured output schema
00:47:27 format. And this tells Codex precisely
00:47:30 the format that we need to receive a
00:47:32 response back in. So for this example, I
00:47:34 was working on doing like a code style
00:47:37 analysis kind of checker and um I have a
00:47:41 few different uh properties it has to
00:47:42 include like the number of files that it
00:47:44 analyzed, the total number of issues
00:47:46 that it found, the overall score from 0
00:47:48 to 100. We can also define like an array
00:47:51 uh so that we can have individual items
00:47:53 for every single uh issue that it finds
00:47:56 and each of these can have their own
00:47:57 required fields. It's a very extensible
00:47:59 format. Uh and what we can do is
00:48:01 actually run codeex uh with this and do
00:48:04 codeex exec which is codex's headless
00:48:07 mode. Um analyze this app for code
00:48:09 quality issues and then give it this
00:48:10 output schema param and just have it
00:48:13 generate JSON. I'll fire this off here
00:48:15 and you can see rather than going into
00:48:16 an interactive terminal mode, Codex is
00:48:18 just streaming kind of the raw logs out
00:48:20 which we can consume. But to kind of
00:48:22 give you an example of what this looks
00:48:24 like, we can see it already ran through
00:48:25 this here. And when it's done, it prints
00:48:28 out this valid JSON um that we parsed
00:48:31 with jq. Um it gives you all the total
00:48:34 files, the total issues, the file
00:48:36 citations, the line numbers, the
00:48:38 severity of the issue, the description,
00:48:40 um all in a structured format. And we
00:48:42 could do a ton of stuff with this. For
00:48:44 example, if we want to make an API
00:48:46 request for every single issue that it
00:48:47 finds, or we want to save each one to a
00:48:49 database, we can build this into an app.
00:48:51 We can run it in our CI/CD pipeline. Um,
00:48:53 it's a very simple but powerful kind of
00:48:55 primitive to be able to do a lot of
00:48:57 programmatic work with codecs. So, what
00:48:59 can we use to actually build with this?
00:49:01 Um, you can do things like security
00:49:03 triage. You can make a test coverage
00:49:05 bot. You can do a refactor and cleanup
00:49:08 automation. You can do a release hygiene
00:49:11 automation that creates change logs and
00:49:13 readmes every time you uh mint a new
00:49:15 release. All these things are kind of
00:49:17 things you can just build into the
00:49:18 software development life cycle here.
00:49:20 And on top of that, we can actually get
00:49:22 a bit more advanced. Instead of just
00:49:24 doing a singlestep workflow, we can
00:49:26 build advanced multi-step workflows with
00:49:28 the OpenAI agents SDK and codecs. So,
00:49:31 OpenAI's agents SDK um helps us build
00:49:34 agent handoffs and scope agent context
00:49:37 and tooling to individual agents and
00:49:40 codex can actually work as an MCP server
00:49:42 within agents SDK. That basically makes
00:49:45 it a tool that can be called by the
00:49:46 agent. This is extremely powerful
00:49:48 because we can use the agents SDK to say
00:49:51 uh create a front-end agent that's just
00:49:53 focused on building front end or a PM
00:49:55 agent that's just focused on doing
00:49:57 project management or a backend engineer
00:49:58 that just focuses on the back end. Give
00:50:01 them each their own MCP tools, their own
00:50:03 context and tell them to hand off to one
00:50:05 another. And because we're using the
00:50:07 agents SDK, we automatically get traces
00:50:09 which you can see on the side here that
00:50:11 shows how Codex is called or the
00:50:13 different agents are handing off to each
00:50:14 other before they call CEX. in the
00:50:16 context that they gave Codeex before
00:50:18 they asked it to write some code. We
00:50:20 have a whole example in the opening act
00:50:21 cookbook, but we think this is a really
00:50:22 neat way to build out some of these
00:50:24 longer uh controlled rollouts that we
00:50:27 want to do for big refactors or big
00:50:28 feature work.
00:50:30 >> The next one I'll call out is on-prem
00:50:32 coderview. So, similar to what we saw
00:50:34 with the example with parsing JSON, um
00:50:36 you can build your own coder view the
00:50:38 same as what is built into GitHub with
00:50:40 Codex Cloud, uh just running in your own
00:50:43 containers. Uh this can be super useful
00:50:45 if you're on prem or if you have another
00:50:46 SCM that's not GitHub. Um you can just
00:50:49 build this there. Um uses Codex's unique
00:50:52 code review capabilities. You can use
00:50:54 the exact same prompt that we include in
00:50:56 the CLI and Codex cloud. Um and you can
00:50:58 use structured outputs to flag the
00:51:00 different issues that it finds and just
00:51:02 run uh in your own pipeline. Similar to
00:51:05 that, you can go beyond doing code
00:51:06 review and actually autofix CI. So if
00:51:08 tests fail when you push up uh you know
00:51:10 your your something to be your pull
00:51:12 request, you can have codeex trigger
00:51:13 based off of that, check out your
00:51:15 branch, make a pull request back on top
00:51:18 of that with a fix to make tests pass uh
00:51:20 and then just merge your your PR from
00:51:22 there and save a bunch of time that way.
00:51:24 And then one we actually use on the
00:51:26 Codex open source repo is triggering
00:51:28 codeex whenever issue gets created to
00:51:30 autolel the uh issue. This is pretty
00:51:33 basic but super super helpful.
00:51:35 Basically, we can use C codeex to
00:51:37 categorize the issues based off of a
00:51:38 series of predefined labels. And this
00:51:41 doesn't need to match any kind of like
00:51:42 specific, you know, text matching or
00:51:44 anything like that. Codex can kind of
00:51:46 understand the intent of the issue and
00:51:48 use that to apply a label, which our
00:51:49 team then uses to figure out how we're
00:51:51 going to tackle the issue itself.
00:52:03 So before we wrap up, I just want to
00:52:03 share a few additional resources. some
00:52:05 for all users. So for the Codex uh
00:52:08 documentation, go to
00:52:09 developers.openai.com/codex.
00:52:12 Um lots of uh great tips there and kind
00:52:14 of the full documentation available. We
00:52:17 also have a series of codec cookbooks
00:52:18 which are guides that we've put together
00:52:20 based off of our own kind of experience
00:52:22 onboarding customers and experience from
00:52:24 our engineers internally at OpenAI. And
00:52:26 then also the Codex change log which
00:52:28 captures all of the different features
00:52:29 that are being added to Codeex. As we
00:52:31 mentioned, we're shipping pretty
00:52:33 rapidly, so that updates pretty
00:52:34 frequently. If you're an admin, we have
00:52:36 an enterprise admin guide for you, as
00:52:38 well as a security guide and then a rate
00:52:40 card that captures the credits that are
00:52:42 used by codeex so you can understand
00:52:43 usage. And with that, that's that's it.
00:52:46 Thanks for watching our presentation.
00:52:48 Um, and we hope uh you are able to use
00:52:51 codeex and uh spin up on it. Well,