Beginner Steps. Advanced AI.
Published guideUpdated

Chapter 1 of 20Set up
Set up Codex
Install the desktop app, choose a practice folder, and try your first Codex task.
I'm Kooka, your guide. Let's take it one click at a time.
Follow the pictures
Illustrated examples. Your app may look different. Tap an image to enlarge it.
-
Install the app
Use the official desktop quickstart to install the ChatGPT desktop app for your computer.
Illustrated example - Click path
- Download → Install → Open
Look for: The desktop app opens on your computer.
-
Sign in
Open the app and sign in with ChatGPT. Use the account you want to work with.
Illustrated example - Click path
- Sign in → Finish in browser → Return to app
Look for: The account you intended to use is signed in.
-
Make your practice folder
Make an empty website-workshop folder inside Documents: Mac instructions or Windows instructions.
Illustrated example - Mac
- Finder → Documents → File → New Folder
- Windows
- File Explorer → Documents → New → Folder
- Both
- Name it website-workshop. Press Return or Enter, then double-click it.
Look for: An empty website-workshop folder inside Documents.
More help with this action
A folder holds files, like a labelled drawer. Documents is already on your computer. Make website-workshop inside it as a practice space; leave it empty for now. Click the instructions for your computer. Menu names use English; Documents may appear as Documenten in Dutch.
On a Mac — show the clicks
- Click Finder, the blue smiling-face icon in the Dock. The Dock is the row of app icons, usually at the bottom of your screen. Apple's Finder introduction shows what it looks like.
- Click Documents on the left of the Finder window. If it is missing, use the menu bar at the very top of the screen: click Go, then Documents.
- With Documents open, click File in that top menu bar, then New Folder. Type website-workshop, all lowercase with a hyphen, and press Return on your keyboard.
- Double-click website-workshop to open it. Check that its name is at the top of the window and that there are no files or other folders inside. Leave this window open so you can find it again.
On Windows — show the clicks
- Open File Explorer, the folder-shaped icon on the taskbar at the bottom of your screen. If you cannot find it, hold the Windows-logo key, tap E, then release both keys. Microsoft's File Explorer guide explains this window.
- Click Documents on the left of File Explorer. You can also click Home and open Documents under Quick access. If it is missing, click Home, then the Up arrow beside the address bar, and open Documents from the folders shown.
- With Documents open, click New in the toolbar at the top of the window, then Folder. If your version has a New folder button, use that. Type website-workshop, all lowercase with a hyphen, and press Enter on your keyboard.
- Double-click website-workshop to open it. Check that the address bar at the top ends in Documents > website-workshop and that there are no files or other folders inside. Leave this window open so you can find it again.
You should now see: An empty folder named website-workshop inside Documents. The location is Documents → website-workshop; the arrow means ‘inside’. If Documents also shows iCloud or OneDrive, it may be synced, but you still select the folder through your computer's file window. If website-workshop already exists and contains files, create website-workshop-practice instead and use that name throughout this chapter.
-
Connect your folder
Select Codex from the ChatGPT menu. Add a local project using Documents → website-workshop, then start a New chat.
Illustrated example - Click path
- ChatGPT menu → Codex → Add project → Documents → website-workshop
- Then
- Open on Mac / Select Folder on Windows → New chat. Choose Local if asked.
Look for: Your new chat belongs to website-workshop.
More help with this action
Return to the desktop application you installed in action 1. Connecting a local project tells Codex which folder contains your work. You are selecting the folder you just made; you do not need to upload it or create another copy.
Open your practice folder in Codex
- If the application shows ChatGPT, click the ChatGPT dropdown near the top left and select Codex, as shown in the official desktop quickstart. If you are already in Codex, continue.
- In Codex's left sidebar, choose Add project. If you see a Projects page first, open it and use its option to add a project. Choose a local folder on this computer if the application asks where the project should live.
- A folder-selection window opens. Click Documents on its left, then select website-workshop. Confirm with Open on Mac or Select Folder on Windows; the button wording can vary. Select website-workshop itself, rather than the whole Documents folder.
- Check that website-workshop appears as a project in Codex's sidebar. Click that project, then start a New chat within it. If the chat offers a Work in choice, choose Local, meaning this computer.
You should now see: A new Codex chat associated with the folder name you chose: website-workshop, or website-workshop-practice if you used the alternative name. It is fine that the project has no website files yet. In chapter 3, you will open a different folder containing your GitHub project; keep this practice folder for now.
-
Choose your permissions
Choose Ask for approval below the message box. It allows project edits and asks before extra access.
Illustrated example - Click path
- Below the message box → Permissions → Ask for approval
Look for: Ask for approval is selected. Read extra-access requests before approving them.
More help with this action
Permissions decide what Codex can do and when it asks you first. A workspace means the project folder selected in action 4. Ask for approval lets Codex edit files in that workspace and do routine local work; it asks before actions that need extra access. It does not ask before every change inside the folder.
Find the setting and understand a request
- Look just below the message box where you will type your request. Open the permissions control: it may display the current mode, such as Ask for approval, Approve for me, or Full access.
- Select Ask for approval. If it already displays that mode, leave it selected. You do not need to enable extra modes in Settings for this exercise.
- If an approval request appears during a later task, read what access or command it requests and why. For example, ‘install the website's packages’ means downloading supporting software for the project. Approve the specific request once when it matches the task you gave.
- If a request names a different project, asks to delete files, or is unclear, choose its deny or cancel option. Ask Codex: ‘Explain what this request would do and why it is needed, in plain language.’ Keep Ask for approval selected while you learn.
You should now see: Ask for approval shown below the message box. In action 6, your first message explicitly asks Codex to inspect the folder without changing it. That is an instruction for this task; the selected permission mode still permits changes inside the workspace.
-
Try your first task
Copy and send the read-only orientation prompt. Check that Codex names your folder and leaves it empty.
Illustrated example - Click path
- Copy prompt → Paste into Codex → Send
Look for: Codex identifies your folder without changing its files.
What does Codex do?
An ordinary chat suggests code. An agent can inspect files, edit them, run commands, check results, and make corrections. The harness supplies these tools and controls access. You decide what to build and whether it is ready.
Our example is Fieldnotes Studio, a fictional business with Home, About, Services, and Contact pages. The current official quickstart installs the ChatGPT desktop app, then selects Codex inside it. Follow the linked instructions if labels change.
Basics, explained
Documents and a project folder
Documents is a standard folder on your computer. A project folder is a folder you choose for one piece of work, such as website-workshop inside Documents. Keep all files for that project together there.
Local and cloud
Local means the agent works with files on your computer. Cloud means work runs on a remote computer. This exercise uses a local folder. A folder inside Documents may also be backed up by iCloud or OneDrive.
Folder-selection window
A window that lets you browse your computer and choose a folder for an application. Select the intended project folder and confirm with the window's Open or Select Folder button.
Agentic harness
The software environment around an AI model that supplies tools, project context, working instructions, and permission controls.
AI agent
An AI system that can work through a task using tools and feedback, such as editing a page and checking it in a browser.
Workspace
The folder or environment containing the project files the agent is working on.
Permission
A rule determining which files, commands, network connections, or apps the agent can access.
Ask your agent
PromptYour first Codex task
I am new to building websites with an AI agent. Inspect this folder without changing files or installing anything. Name the folder, explain your tools and permissions, and describe how I will review changes. Explain unfamiliar words. If something goes wrong
- I added a project, but Codex is using the wrong folder.
- Open that project's menu and choose Edit project. Check its attached folder. Use Add folder to attach Documents → website-workshop, remove any folder you did not intend to attach, and make website-workshop primary if several folders are listed. Start a new chat in that project.
- Codex cannot read the folder.
- Confirm the selected folder and inspect the permission request. Grant access to that project folder or use an ordinary Documents folder.
Official links & further reading
Personal notes
Add questions, decisions or ideas for your website. Saved in this browser when available; export your notes to keep a copy. Never enter secrets.
Downloads & saved progressGuide, notes and personal checks
Download the complete guide or export your notes from every chapter. Instructions last reviewed: .
Checks and notes stay in this browser, separately for each language. Export your notes to preserve them. Never enter API keys or other secrets here.
NotesNotes as Markdown
Clipboard access is unavailable. Copy the visible, selected text below using your keyboard or browser menu.
0 of 65 checks marked across the guide
These are your saved personal checkmarks. They do not run tests or verify security, and are separate from the chapter position bar above.
Starter filesWorking instructions and four skills
These templates give your agent a starting set of working instructions. Review them, adapt them to your website, and save each file at the exact path shown, relative to your project folder.
A downloaded skill is an instruction file. It does not install a test runner, run a security scan, or prove your site is safe. The guide shows how to set up and check that work.
Download the instruction files in the language of this guide. Keep the technical filenames and paths as shown.
Download all starter filesFileAGENTS.md
# Website working agreements
This project follows the website brief and acceptance criteria we have agreed with its owner. Use the existing technology choices unless a concrete requirement calls for a change.
## How to work
- For a substantial feature, explain the proposed changes and verification plan before implementing it. Complete authorized local work in small, reviewable stages.
- Read the files relevant to the task. Keep unrelated pages and configuration intact.
- Explain new technical terms in plain language when reporting to the owner.
- Use the repository's website-design, clean-code, website-testing and website-security skills when their workflows apply.
- Record important decisions and unresolved content in the project's notes. Do not invent business facts, endorsements or publishing rights.
## Verification
- Inspect package.json to find the actual build, type-check and test commands. Do not invent a successful check or create a meaningless test just to make a command pass.
- Run checks appropriate to the change. Local tests use disposable fixtures and have no production access; run them and repair failures caused by the requested change without asking at every step.
- Verify visitor interactions in a browser when browser tools are available. Report checks that remain unavailable or incomplete.
- Show the owner a working local preview and summarise changed behaviour, evidence and remaining limitations.
## Credentials and publication
- Keep API keys and other secrets out of browser code, prompts, logs and Git. Store local secrets in ignored files or the chosen secret store.
- Local build and test work is authorized. Publishing the site, sending a real message, processing a payment or changing production data requires the owner's authorization for that action.
- Preserve a recoverable working version before release. Describe how to restore it.
These are starter agreements for a new tutorial project. Adapt them to the owner's actual requirements and existing authorization.
File.agents/skills/website-design/SKILL.md
---
name: website-design
description: Develop or refine a website's visual direction and responsive interface from its brief, content and existing design. Use for page design or visual implementation.
---
Read the website brief and any existing design notes relevant to the requested page. Work within the user's brand, content and technology choices.
When establishing a new direction, propose typography, a small colour palette, a spacing rhythm and a sample page. Explain how these choices support the audience and main visitor action. Use real content to judge hierarchy and line lengths.
Implement reusable elements for navigation, headings, buttons and repeated content. Give primary actions a clear visual hierarchy. Preserve visible keyboard focus, readable contrast and usable labels. Design narrow screens alongside desktop screens; check long headings, navigation and tap targets in a browser.
Use semantic HTML before adding custom interaction. Keep motion optional and respect reduced-motion preferences. Use assets with known permission to publish; record their sources. Do not invent client testimonials, achievements or business facts.
Before expanding a design across all pages, show the first complete page at desktop and mobile widths. Describe the main design decisions and any unresolved content. When a browser tool is unavailable, report that visual verification is still pending.
File.agents/skills/clean-code/SKILL.md
---
name: clean-code
description: Implement or refactor website code into understandable components using the project's existing stack and conventions. Use for website implementation or maintainability work.
---
Read the relevant files and package scripts before choosing an implementation. Preserve working behaviour outside the requested change. Prefer the existing stack and dependencies when they meet the need.
Keep page content separate from repeated layout where that makes editing easier. Name components, variables and functions for their purpose. Use shared components for repeated navigation and page elements; avoid abstraction for a single trivial use.
Handle empty, invalid, loading and error states for interactions that need them. Use native browser controls and semantic HTML when they serve the interaction. Avoid fake form submission, simulated success messages and dead links.
Use type checking and the project's formatting or lint rules where configured. When adding a package, explain its purpose and any new maintenance or runtime requirements. Keep generated build output, dependencies and local environment files out of version control.
Run the existing checks relevant to the change, including a production build when output can change. Summarise changed behaviour, verification results and remaining limits. Explain the main files in plain language so a beginner can find and edit their content.
File.agents/skills/website-testing/SKILL.md
---
name: website-testing
description: Verify website changes through visitor journeys, appropriate automated tests and browser checks. Use when testing a website, investigating a failure or preparing a release.
---
Start from the brief and observable acceptance criteria. Inspect existing test and build commands; do not assume that a script exists. Choose checks based on the changed behaviour and the cost of failure.
Exercise the main visitor journey and affected links, navigation and forms. Include invalid input and relevant error states. For a contact form, verify actual delivery in the agreed test destination before reporting that it works. For an email link, explain that it opens the visitor's configured email app and does not send a message automatically.
Check narrow and wide screens in a browser. Include keyboard navigation, visible focus, accessible names, zoom and horizontal overflow. Automated accessibility results complement these manual checks and do not establish complete accessibility conformance.
Add automated tests for important behaviour or demonstrated regressions. Test observable outcomes and meaningful failure cases; avoid tests that merely repeat the implementation or match incidental wording. Use disposable test data and local fixtures. Never send real messages, charge payments or alter production data without the user's authorization.
Reproduce a failure, fix its cause and rerun affected checks. Report commands run, results, browser checks performed and anything not checked. A successful build shows that the site can be generated; verify visitor behaviour separately. Never report a check as passed when it was skipped or unavailable.
File.agents/skills/website-security/SKILL.md
---
name: website-security
description: Review a website's secrets, dependencies, inputs, permissions and deployment configuration, and repair scoped security findings. Use for requested security review or release preparation.
---
Identify the site's relevant surfaces: static pages, forms, backend routes, authentication, third-party scripts and stored data. Scope review to the actual architecture and authorized environment.
Keep credentials out of browser code, logs, prompts and Git. Distinguish build-time public configuration from server secrets. If a key was committed or exposed, stop using it, explain that deleting the file does not revoke the key, and have the owner revoke or rotate it before further use. Do not print the credential in your report.
Inspect applicable dependency advisories and assess whether the affected package and vulnerable behaviour are used. Repair within the project's compatible versions and rerun affected checks. Avoid automatic forced upgrades that may break the website.
For backend interactions, validate inputs on the server, encode output appropriately, and check authentication and authorization separately. Consider abuse controls for public forms or AI endpoints. An OpenAI API key belongs on the server; publishing a static site does not provide a secret server environment.
Check HTTPS and applicable security headers at the actual hosting layer. Collect only the data the feature needs, and explain its destination and retention. Do not claim legal compliance from a code scan.
Report each finding with its location, plausible impact, fix and verification. State review scope, tools used, unresolved findings and inaccessible surfaces. A clean scan is evidence about that scan's scope, not a guarantee that the website has no vulnerabilities. Do not scan third-party systems or deploy changes outside the authorized task.