Projects and the workspace
The workspace is the folder Local Code can read and write. Each project is a folder inside it, and each thread belongs to one project. The agent starts in the project folder and can work anywhere in the workspace, so keep sensitive work in a workspace of its own.
A project can hold these files besides your own:
Finance/
├── AGENTS.md instructions for the agent
├── .agents/
│ └── skills/
│ └── weekly-report/
│ └── SKILL.md a skill for this project
└── .localc/ kept by Local Code
├── metadata.sqlite3 threads and their history
├── context_cache.sqlite3 the model's saved context
├── templated_system_prompt_<model>.md the system prompt, editable
├── USER.md memory about you
├── MEMORY.md memory about this project
└── python/ packages the agent installed
You write AGENTS.md and skills. Local Code creates and manages .localc. You can edit the text files in it too, including the system prompt each model uses.
AGENTS.md
Put instructions for the agent in an AGENTS.md file at the top of the project folder: how the project is laid out, which commands to run, what to leave alone. Local Code adds it to every conversation in the project.
# Finance
- Source data is in data/. Never change it; write results to outputs/.
- Use pandas and Matplotlib. Chart colors are in brand/colors.md.
- Round currency to whole dollars in reports, not in calculations.
- Only the top of the project folder counts. Instruction files in subfolders or in the folders above are not read.
- If a project has more than one instruction file, Local Code uses the first it finds of
AGENTS.override.md,AGENTS.mdandCLAUDE.md. A project already set up for another coding agent works as it is. - The file is guidance. What you ask for in a conversation comes first.
- Local Code reads the file when you open a thread. After editing it, start a new thread or open the thread again.
Skills
A skill is a folder with a SKILL.md file that teaches the agent how to do one kind of task: your report format, a deploy procedure, an internal tool. Local Code comes with built-in skills for documents, charts, videos, images, the browser, MCP servers and more. Add your own in a .agents/skills folder.
---
name: weekly-report
description: Builds the weekly sales report. Use when asked for the weekly report.
---
# Weekly report
1. Read data/orders.csv and keep refunds as their own line.
2. Chart revenue by day with scripts/chart.py.
3. Save the report as outputs/weekly-report.docx.
descriptionis required, up to 1,024 characters. The agent sees every skill's name and description, and reads the whole file when a task matches, so say what the skill does and when to use it.nameis optional, up to 64 characters. Without it, the skill is named after its folder.- Keep scripts, templates and examples next to
SKILL.mdand refer to them by relative path. The agent finds them from the skill's folder. - Local Code looks for
.agents/skillsin the project folder and in each folder above it, up to the workspace. A skill in the workspace's.agents/skillsworks in every project. - To use a skill on purpose, write its name after a dollar sign in your message, such as
$weekly-report. The skill's text is sent with the message. - The list of skills the agent sees is capped at about 8,000 characters. With many skills, their descriptions get shortened, so keep them brief.
To make a skill from work you've just done, ask the agent to turn it into one. The built-in skill-creator skill handles the format and checks the result.
Memory: USER.md and MEMORY.md
When Memory is on in Settings, which it is by default, the agent keeps two short notes files for each project:
| File | Holds | Limit |
|---|---|---|
.localc/USER.md | About you: your background, preferences and how you like to work | 1,375 characters |
.localc/MEMORY.md | About the project: its environment, conventions and tool quirks | 2,200 characters |
Both files go into every conversation in the project. The agent saves an entry when you ask it to remember or forget something, or when it notices something worth keeping. Every 10 turns in a thread, it also looks back over the conversation for things to save, and the thread shows “Reviewing Memory...” while it does.
- Memory belongs to its project. A new project starts with none.
- A conversation keeps the memory it started with. Entries saved during it reach the next thread you open.
- You can edit the files yourself. Entries are separated by a line holding only
§. - Turning Memory off in Settings stops the agent from reading or saving memory in every project. The files stay where they are.
Prefers charts with a white background and no gridlines.
§
Reports in euros; convert other currencies at the month-end rate.
Starter prompts and a demo video
These two files are for a project you'll hand to someone else, such as a template. Both are optional.
.localc/first_time_prompts.txtholds suggestions for a first message. When someone starts a new thread and the message box is empty, Local Code fills it with one of these, picked at random. Separate prompts with a line holding only§..localc/project_demo.mp4is a video that a new thread shows in place of the welcome banner, on Mac and iPad. It can play in place or full screen, and people can close it.
Everything else in .localc
| File or folder | What it holds |
|---|---|
metadata.sqlite3 | The project's threads and their history. Deleting it deletes the threads. |
context_cache.sqlite3 | An on-device model's processed context for the project's threads, so continuing a long conversation doesn't read it all again. It also lets an interrupted reply pick up where it stopped. See below. |
python/ | Python packages the agent installs with pip, for this project only. |
node/cache/ | npm's download cache for this project. Node packages go in node_modules in the project, as usual. |
.ssh/, .curlrc, .netrc | SSH keys, known hosts and config, and curl settings. Each project has its own. |
tool_responses/ | The full text of long command output. The conversation keeps a shortened copy, and the agent reads the rest from here when it needs it. |
templated_system_prompt_<model>.md | The system prompt for each model used in the project. See below. |
The context cache is usually the largest file here. It has no size limit, and a project you use a lot can reach several gigabytes. To free the space, close Local Code and delete context_cache.sqlite3, with its -wal and -shm files if they're there. Your threads stay. The next message in a long thread takes longer while the model reads the conversation again, and a reply that was interrupted can't resume.
If the project is a git repository, consider adding .localc/ to .gitignore. It holds conversation history and installed packages, and it can hold SSH keys.
Changing the system prompt
The first time a model runs in a project, Local Code saves the system prompt it uses as .localc/templated_system_prompt_<model>.md. Edit the text below the front matter, and that model uses your version in this project. Most changes belong in AGENTS.md; edit the system prompt only to change how the agent works at its base.
- Keep the placeholders in double braces, such as
{{SKILLS_INSTRUCTIONS}}. Local Code fills them in with the skill list, project instructions and other context. A local model's prompt also contains its special tokens; keep those too. - While the file is unedited, app updates replace it with the new default. Once you edit it, it stays as you left it, and you won't get later improvements to the prompt.
- Delete the file to go back to the default. Changes apply the next time you open a thread.