Visual Intelligence Co.

Client guide · Claude, Claude Code & ChatGPT

Build your own AI agent from a folder of text files

An AI agent is the same Claude or ChatGPT everyone uses, plus a folder of notes that tells it who you are, what its job is, and how you like things done. You write those notes once. This guide walks you through each file, then shows you how to load the folder into the tool you use.

Steps
10
for Claude Code
Time
~1 hour
for your first agent
Coding
None
you write everyday sentences

01

Pick the tool you'll use

Choose one and the guide hides the steps you don't need. You can switch at any time.

Showing steps for every tool.

Before you start, have these ready

  • Claude Code: a Claude account on Pro or higher, plus the Claude desktop app or a terminal.
  • Claude app: a Claude account. The free plan works. Skills also need code execution, which you turn on in Settings.
  • ChatGPT: a ChatGPT account. The free plan works, but you'll have less room for instructions.
  • A text editor. The free VS Code is the easiest because it shows every file in the folder. TextEdit on a Mac and Notepad on Windows also work (section 05 has tips).
  • One task you do every week and would like help with. That becomes your agent's first job.
  • About an hour.

02

What an agent is

The model is the same one everyone else uses. Your folder is what makes the agent yours, and building that folder is what this guide covers.

Model plus folder plus tools equals your agent The model: Claude or ChatGPT Model Claude or ChatGPT does the thinking + The folder: your markdown files Folder your notes on who, what and how + Tools: connected apps Tools connected apps let it take action = Your agent Your agent knows you and follows your rules

03

The blueprint: one folder, every file

This is the folder you'll build. Click any file to see what it does, who reads it, and when it loads. The faded files only matter for Claude Code, so you can ignore them.

Identity & rules You & the job Knowledge Memory Skills & helpers Tools

04

How the agent reads your folder

Not everything loads at once. A few files load in every chat, and the rest wait until a task needs them. At the end of a session the agent writes notes back, so the next chat picks up where this one stopped.

  1. 1 · Chat starts, every time

    CLAUDE.md loads first and brings in AGENTS.md, USER.md, OPS.md and MEMORY.md.

  2. 2 · You ask

    The agent checks its skill menu (names and descriptions only) and picks the one that fits.

  3. 3 · Agent works, when needed

    The full SKILL.md runs, it opens the context/ docs it needs, and it can use connected tools or a helper agent.

  4. 4 · Session ends

    It writes a dated log in memory/ and adds any lasting lesson to MEMORY.md, so the next chat starts with what it learned.

Claude Code works exactly like this. In the Claude and ChatGPT apps, your Project instructions load in every chat, and uploaded files get looked up when a question needs them. Either way, keep the always-loaded files short and put long material in context/.

05

Before you write: three quick things

If you've edited text files before, skip to section 06.

Markdown in one minute

Markdown is plain text with a few symbols for formatting, and every file in this guide uses it. These four symbols are all you need:

You typeYou get
# About meAbout me (big heading)
## ToneTone (smaller heading)
- Short answers• Short answers
**never**never

If you can write an email, you can write these files. The agent cares about what you say, not about perfect formatting.

Where to edit the files

VS Code (free, Mac and Windows)

The easiest choice. Use File, then Open Folder, and pick my-agent. You'll see every file in a list on the left, hidden folders included.

TextEdit on a Mac

Before you save, choose Format, then Make Plain Text. Otherwise TextEdit saves a rich-text document that the agent can't read properly.

Notepad on Windows

When you save, set "Save as type" to "All files." Otherwise Notepad adds .txt to the end of the name.

Write instructions it can follow

When an agent "doesn't listen," it was usually given a wish instead of an instruction. Write every rule the way the right-hand column does.

Vague
"Be concise."
"Keep answers under 150 words unless I ask for detail."
"Use our brand voice."
"Match the tone in context/brand-voice.md. No exclamation points."
"Be careful with emails."
"Draft emails, but never send one. Show me the draft first."
"Help with proposals."
"When I share call notes, use the client-proposal skill."

06

The starter kit, sent to your inbox

Skip the typing. Enter your email and the whole my-agent folder arrives as a zip file, with every template from this guide already in place.

  • USER.md, OPS.md and AGENTS.md, ready for your details
  • CLAUDE.md, already set up to load the others
  • Example context files for your brand voice and offers
  • A memory/ folder with a starter index and a sample log
  • A client-proposal skill with its template, plus a researcher helper agent

06

Build it, step by step

Go in order. Each step gives you a template to copy. Replace everything in [square brackets] with your own details, then tick Done. Your progress is saved in this browser and shows in the top bar.

Done this before? Here's the fast version
  1. Request the starter kit by email (section 06) and unzip it.
  2. Fill in USER.md, OPS.md and AGENTS.md, and put your own reference docs in context/.
  3. Claude Code: edit the skill in .claude/skills/client-proposal/, open the folder in Claude Code, and type /context to check that everything loaded.
  4. Chat apps: edit the skill in .claude/skills/client-proposal/, then follow section 07 to paste and upload everything.
  5. Run the four test messages in section 08.
1

Make the main folder

Everything your agent knows lives in one folder. Name it after the job it does, like proposal-agent. This guide calls it my-agent.

Fastest way

Enter your email in the starter kit box (section 06) and the whole folder arrives in your inbox as a zip file. Every file from this guide is inside, each filled in with example text to replace. The one file left out is .mcp.json, which you only add if you want it later. Unzip it and edit each file as you reach its step.

By hand

Create the folders in Finder or File Explorer, following the blueprint in section 03. If you're comfortable with a terminal, paste one of the commands below instead.

Using a chat app? You can skip CLAUDE.md, .mcp.json, and everything in the .claude folder except your skill. Only Claude Code reads those.
Folders whose names start with a dot, like .claude, are hidden. On a Mac, press Cmd Shift . in Finder to show them. On Windows, open View, then Show, and turn on Hidden items.
Every file name must end in .md. A file called USER.md.txt won't be read. Section 05 explains how to avoid that.
2

USER.md: who the agent works for

Without this file, every chat starts with a stranger. Write it the way you'd brief a new assistant on their first day, and keep it to about a page.

"Answers under 150 words" gives the agent a target. "Be concise" leaves it guessing what you mean.
Leave out passwords, account numbers, and anything else you wouldn't put in an email.
3

OPS.md: the job description

When the job is vague, the work comes back vague too. OPS.md says what the agent is for, what finished work looks like, and what it must never do.

Start with one job. Once that works, add a second.
The "What done looks like" section matters most. The agent checks its own work against it before handing anything to you.
4

AGENTS.md: identity and rules

AGENTS.md holds the agent's name, how it should work, and the lines it must never cross. It's an open format that many AI tools read, including OpenAI's Codex, Cursor and GitHub Copilot, so you write your rules once and every tool follows them.

Write each rule as an instruction. "Ask before sending any email" works. "Try to be careful" gives the agent nothing to act on.
These files guide the agent, but they can't physically stop it. In Claude Code, keep its permission prompts on so it asks you before risky actions. In the chat apps, the agent can only act through apps you connect, so connect only what it needs.
5

CLAUDE.md: Claude's front door

Claude Code reads CLAUDE.md at the start of every session. When a CLAUDE.md exists, Claude Code ignores AGENTS.md unless you bring it in, so this file is mostly a short list of @ lines. Each one loads a file as if you'd pasted it in at that spot.

Keep CLAUDE.md and the files it loads under about 200 lines in total. Anthropic's docs say longer files get followed less reliably.
Inside Claude Code, type /init and Claude will draft a CLAUDE.md for you, or suggest improvements to the one you have.
6

context/: background knowledge

Anything you keep explaining goes here: your offers and prices, your brand voice, FAQs, a sample of your best work. The agent opens these files when a task needs them, so they don't crowd every chat.

Give each topic its own file, with a name that says what's inside. pricing-2026.md is easier to find than notes3.md.
Markdown works everywhere. In the chat apps you can also upload PDFs and Word documents. Claude Code can read PDFs too, but save Word files as markdown or PDF first.
7

memory/: the agent's notebook

Chats don't remember each other, but files do. AGENTS.md already tells the agent to log each session and save lasting lessons, and these two files are where that goes. MEMORY.md gets read at the start of every chat. The dated logs stay in the folder until someone needs them.

Claude Code also keeps a memory of its own, stored outside your folder. Your memory/ folder is the one you can read, edit, and take to other tools.
The chat apps can't write into your folder. At the end of a session you ask for a log entry and paste it in yourself. Section 07 shows how.
Clean out MEMORY.md once a month. It gets read in every chat, so an outdated lesson keeps steering the agent wrong until you remove it.
8

Your first skill: SKILL.md

A skill is a written routine for one task you do often. It lives in its own folder, with a file called SKILL.md and any extra files the routine needs. The short header at the top tells the agent when to use it, and the steps below tell it how. Until a request matches, the agent reads only the header, so extra skills don't slow anything down. Claude and ChatGPT use the same format.

In Claude Code, anything in .claude/skills/ is found automatically, so there's nothing else to do. Using the Claude app? In section 07 you'll zip this folder and upload it. Using ChatGPT? If your plan has Skills, you'll upload this folder in section 07. If it doesn't, you'll paste the steps into your Project instructions instead.
Write the description as a trigger: what the skill does, then "Use when..." This one line decides whether the skill ever runs.
Keep the description under 200 characters if you'll upload the skill to the Claude app.
The folder name and the name: line should match, in lowercase with hyphens. The --- line has to be the very first line of the file.
9

07

Set up your tool

Claude Code reads the folder exactly as you built it, so this part is short. The chat apps can't open folders, so you copy each file into the right setting. You only do this once.

Showing:

Where each file goes

Your fileClaude CodeClaude appChatGPT
CLAUDE.mdReads it automaticallySkip it. Its @ lines only work in Claude Code.Skip it
AGENTS.mdLoaded through CLAUDE.mdPaste into the Project instructionsPaste into the Project instructions
USER.mdLoaded through CLAUDE.mdSettings, then Instructions for ClaudePersonalization, then Custom instructions
OPS.mdLoaded through CLAUDE.mdProject instructions, below AGENTS.mdProject instructions, below AGENTS.md
context/Opens files when neededUpload to the Project's knowledgeUpload to the Project's files
memory/The agent writes to itUpload MEMORY.md to the Project's knowledgeUpload MEMORY.md to the Project's files
SKILL.mdFinds it in .claude/skills/Zip the folder and upload it under SkillsUpload under Plugins, then Skills, if your plan has it
agents/*.mdFinds it in .claude/agents/Not availableNot available
.mcp.jsonReads it automaticallyAdd the same service under ConnectorsInstall the app from Plugins

Claude Code

Reads your folder directly
  1. 1

    Open Claude Code

    The easiest way is the Claude desktop app: open it and click the Code tab. If you'd rather use a terminal, install Claude Code with the command for your computer and sign in when it asks.

  2. 2

    Open your folder

    In the desktop app, choose my-agent as the folder to work in. In a terminal, type cd and a space, drag the my-agent folder into the window, and press Enter. Then type claude. CLAUDE.md and the files it lists load right away.

  3. 3

    Check what loaded

    Type /context to see which instruction files loaded when the session started. Type /memory to open any of them for editing.

  4. 4

    Run your skill

    Type /client-proposal to run it by name, or describe the task and Claude will pick the skill from its description.

  5. 5

    Approve file changes

    The first time Claude wants to create or change a file, it asks you first. Read what it plans to do, then allow it.

Claude app

Browser, desktop or phone
Claude account menu with Settings at the top
A
Click your name in the lower-left corner to open this menu.
Claude Settings sidebar
B
C
D
E
The Settings sidebar.

What the letters mean

A Settings. Opens the page shown next to it.

B Search. Type "instructions" to find Instructions for Claude.

C Capabilities. Turn on code execution here so skills can run.

D Skills. Upload your skill here.

E Connectors. Link apps like Gmail or Notion.

  1. 1

    Create a Project

    In the sidebar, open Projects, click New project, and name it after your agent. Every chat inside a Project shares the same instructions and files.

  2. 2

    Paste your instructions

    Open the Project's instructions and paste in AGENTS.md, then OPS.md below it. Leave out CLAUDE.md, because its @ lines only work in Claude Code.

  3. 3

    Add USER.md to your settings

    Open Settings A, type "instructions" in the search box B, and open Instructions for Claude. Paste USER.md there and Claude will know you in every chat. To keep it inside this one Project instead, paste it into the Project instructions.

  4. 4

    Upload your files

    Add everything in context/, plus memory/MEMORY.md, to the Project's knowledge.

  5. 5

    Upload your skill

    First turn on code execution under Capabilities C. Then zip the client-proposal folder itself, not the files inside it: right-click the folder and choose Compress on a Mac, or Compress to ZIP file on Windows 11. On Windows 10, choose Send to, then Compressed (zipped) folder. Go to Skills D, click +, choose Create skill, and pick Upload a skill.

  6. 6

    Connect apps optional

    Under Connectors E, pick a service from the list, or click + Add to add one by its web address. The free plan allows one custom connector.

  7. 7

    Keep memory up to date

    At the end of a session, send: "Write today's log entry and any new lessons in my memory format." Paste the reply into your memory files, and upload MEMORY.md again whenever it changes. Claude's built-in memory, under Memory in Settings, can also carry details between chats if you turn it on.

Tired of copying files in? The Code tab in the Claude desktop app is Claude Code, and it reads your folder directly. .

ChatGPT

Projects
ChatGPT account menu with Personalization and Settings
A
B
Click your name in the lower-left corner to open this menu.
ChatGPT Settings sidebar
C
The Settings sidebar.

What the letters mean

A Personalization. Your custom instructions live here.

B Settings. Opens the page shown next to it.

C Personalization again, if you came in through Settings.

  1. 1

    Put USER.md in your custom instructions

    Click your name and choose Personalization A, or open Settings B and go to Personalization C. Paste USER.md into Custom instructions. Paid plans allow up to 5,000 characters. Free and Go allow 1,500, so trim it down if you're on those.

  2. 2

    Create a Project

    In the sidebar, find Projects and click New project. Name it after your agent.

  3. 3

    Paste your instructions

    Open the Project's ... menu, choose Project settings, and paste AGENTS.md, then OPS.md, into the instructions. Skip CLAUDE.md. It's only for Claude.

  4. 4

    Upload your files

    Add your context/ files and memory/MEMORY.md to the Project.

  5. 5

    Add your skill, if your plan has Skills

    Open Plugins in the sidebar (or go to chatgpt.com/plugins), open the Skills tab, click +, and upload the zipped skill folder (zip it the same way you would for Claude). If it won't take the zip, try picking the folder itself. For now OpenAI lists Business, Enterprise, Healthcare and Edu workspaces. No Skills tab? Paste the steps from SKILL.md into your Project instructions, and upload template.md to the Project's files so the steps can use it.

  6. 6

    Connect apps optional

    In Plugins, find the app you want, such as Gmail, Google Drive or Notion, and click Install plugin. Sign in and choose what ChatGPT can see. Which apps you can add depends on your plan.

  7. 7

    Keep memory up to date

    At the end of a session, send: "Write today's log entry and any new lessons in my memory format." Paste the reply into your memory files, and upload MEMORY.md again whenever it changes.

  8. 8

    Want it to read the folder itself? Try Codex

    OpenAI's Codex is the closest match to Claude Code. Open it in your my-agent folder and it reads AGENTS.md on its own. It uses the same SKILL.md format but looks for skills in .agents/skills/, so copy your skill folder there too.

Already have a custom GPT? Here's where each file goes
GPT builder fieldWhat to put there
InstructionsAGENTS.md, then OPS.md, then the steps from SKILL.md
KnowledgeYour context/ files. Up to 20 files, 512 MB each.
Conversation startersYour four most common requests, word for word
ActionsActions don't carry over when a GPT moves to plugins, so you'll need to rebuild them as connected apps.

Save a copy of your instructions and files now, before the retirement date.

10

08

Test your agent

Open a new chat inside your Project and send these four messages in order. Each one checks a different file.

You sendA good answerChecks
"What do you know about me, and what's your job?"Describes you and its mission in your own wordsUSER, OPS
"What skills do you have?"Names client-proposal and says when it would use it (if you pasted the skill's steps into your instructions instead, it should describe those steps)SKILL.md
Paste some call notes, then "Write the proposal."Follows the skill's steps and uses your real prices, then saves the draft in drafts/context/
"We're done for today. Log the session."Claude Code creates a file in memory/ named with today's date. The chat apps write a short log entry for you to paste into memory/.memory/

If an answer misses, section 10 covers the usual causes.

09

Level up later

Once your agent passes the test, these two extras make it more capable. Skip them until then. They work in Claude Code only.

+

Add a helper agent

A helper agent (Claude calls it a subagent) is one .md file with its own instructions, its own tools, and its own choice of model. Claude hands it a side job like research and gets back a short summary, which keeps your main chat focused.

Only name and description are required. Without a tools line, the helper gets every tool your main agent has.
Give it only the tools it needs. A researcher has no reason to edit your files. To use it, say "Use the researcher agent to look into Acme Co."
+

Connect outside tools

MCP is the standard way to plug an agent into apps like Notion, Gmail, Slack or a CRM. In Claude Code, a .mcp.json file in your folder lists the connections. One command creates the file for you.

Never paste API keys or passwords into .mcp.json or any .md file. Let the service sign you in through your browser instead.
Only connect services you trust. The agent can do anything the connection allows.

10

Help

When something doesn't work

Claude Code doesn't seem to know my rules from AGENTS.md

When a CLAUDE.md exists, Claude Code reads it instead of AGENTS.md. Check that CLAUDE.md has the line @AGENTS.md, then type /context to confirm it loaded.

The agent ignores one of my rules

Rewrite the rule so it's specific (section 05 has examples). Then look for another rule that contradicts it, because the agent may follow either one. Also keep CLAUDE.md and the files it loads under about 200 lines.

It doesn't seem to use my uploaded files

Ask about something that appears in only one file, such as "What's the price of the Growth package?" If it guesses, check that the file uploaded to this Project, then add a line to your instructions: "Check the Project files before answering."

My skill never kicks in

Check that the file is named SKILL.md exactly and that the --- header starts on line 1. Then read the description: it should say "Use when..." with words you'd type when asking for it. In Claude Code, the folder must sit at .claude/skills/client-proposal/, and you can always run it directly with /client-proposal. In the chat apps, you can also ask for it by name: "Use the client-proposal skill."

The Claude app won't accept my skill upload

Zip the folder, not the files inside it. When you open the zip, the first thing you see should be the client-proposal folder. Also check that code execution is on under Capabilities, and that the folder name matches the name: line.

I can't see the .claude folder

Folders whose names start with a dot are hidden. On a Mac, press Cmd Shift . in Finder. On Windows, open View, then Show, and turn on Hidden items. VS Code always shows them.

My file is called USER.md.txt

In Windows File Explorer, open View, then Show, and turn on File name extensions. Rename the file and delete the .txt ending. On a Mac, select the file, press Cmd I, and fix the name under "Name & Extension."

The @ lines show up as plain text

That's expected. The @ lines only work in Claude Code. In the chat apps, paste the contents of each file instead (the table at the top of section 07 shows where).

Words you'll see

Words with a dotted underline anywhere on this page show these definitions when you hover over them or tap them.

Good to know: which files are built in, and which are habits

Some of these file names are built into the tools. The others are common habits that work because CLAUDE.md or AGENTS.md tells the agent to read them. It helps to know which is which when something doesn't load.

FileStatusRead automatically by
CLAUDE.mdBuilt inClaude Code, including the Code tab in the Claude desktop app
AGENTS.mdOpen standardCodex, Cursor, GitHub Copilot and other coding agents. Claude Code reads it only when there's no CLAUDE.md.
skills/<name>/SKILL.mdOpen standardClaude Code, the Claude app (as a zip upload), ChatGPT skills and Codex
.claude/agents/*.mdBuilt inClaude Code only
.mcp.jsonBuilt inClaude Code
USER.md, OPS.mdHabitNothing on its own. They load because CLAUDE.md lists them or AGENTS.md says to read them.
context/, memory/HabitNothing on its own. AGENTS.md tells the agent when to read and write them.
Visual Intelligence Co.

© 2026 Visual Intelligence Co.