Back to Posts
Published on

PROFILE.md

A proposal for a standard way to enable portable and private personalization and memory across agent tools.


Coding agents started out as a way to help developers contribute to codebases. Now, these agents can also browse the web, read and organize local files, and help you with your calendars, email, to-do lists, and other productivity tooling. All this is accomplished through code, but in effect, coding agents have become more like computer agents.

As agents get embedded in day-to-day work with the popularity of tools like Claude Code with non-developers or even the recently created Claude Cowork, it feels like we’re at the "personal computing" moment for software agents. I wonder if we should define what a personal computer agent is, and a standard way to support it.

Background

We already have good conventions and standards for shareable context. For example, AGENTS.md files tell agents how to work inside a specific repository or globally and SKILL.md files describe workflows on how to best get something done. More recently, INSTALL.md standard has been proposed by Mintlify to almost bypass regular GTM motions and directly teach an agent the best way to get set up with various tools.

These files are designed to be shareable. It is something multiple people can contribute to collaboratively to improve how we all work.

However, these instructions aren't always all-encompassing. Instead, they often omit personal defaults that would be needed if the agent were to truly be yours and personalized. These include details like your health information, family circumstances, money spending habits, or even something as innocuous as your time zone preferences or how you prefer the agent responds.

These are details that can really make or break how personalized your experience with agents are, but it's also often the last thing you want shared with others.

There is an awkward tradeoff that exists today: either you store personal context in a proprietary product (ChatGPT “memory”, custom instructions), require separate integrations (such as ChatGPT or Claude requesting your Apple Health data), or you keep repeating yourself because you don’t want that information in shared context files that other people will see and maintain.

What if we had yet another standard?

Proposal

This request for comment (RFC) proposes an optional convention: a user-scoped Markdown file that describes how an agent should work with you called PROFILE.md.

PROFILE.md is:

  • Portable (usable across tools)
  • Private by default (stored outside repositories)
  • Human-readable (useful even without special parsing and also making it easy to update)
  • Optional (safe to never use)

A PROFILE.md is a place for stable personal defaults:

  • Preferences about tone, brevity, and formatting for how agents should respond.
  • Personal details like who your close family members are, or health limitations that may dictate how an agent plans your calendar and travel
  • Memory so that as you change, evolve, and experience things, the agent is able to easily access information about important elements of the past

Format

I don't think there needs to be anything special about a PROFILE.md file in terms of its content. It's meant to be simple and easy to create, edit, and iterate on.

Location

The recommended default location is user-owned and outside repos, such as $HOME/.local/PROFILE.md. We want it in a location that makes it hard to accidentally upload because it can contain deeply personal details, whilst still being in a place that is easy to access and not too obfuscated.

Tools should also allow an explicit override (for example, an app setting or an env var like PROFILE_PATH) because not everyone wants the same directory layout.

Personas (optional)

People may also want modes and separations of use cases, similar to how you might use different web browser profiles (think personal or work profiles that have different browser history and cookies) for different agent tasks and conversations.

If a tool supports personas, you can bundle each PROFILE.md file into a folder where other files containing details and references can also live.

The folder convention may look like this: $HOME/.local/profiles/<persona>/PROFILE.md.

Discovery + precedence

If a tool adopts this convention, I think default behavior should:

  • Load a user-selected PROFILE.md at the start of every session.
  • If the tool supports personas, allow selecting a profile (and optionally auto-select based on context, like “when I’m in this repo, use my work persona”).

Precedence should be simple:

  • PROFILE.md is personalization. It sets default preferences (tone, verbosity, initiative) when nothing else is specified.
  • AGENTS.md is repo-local truth. When you’re working in a repo, repo instructions win over personal preferences for how work should be done here.
  • If PROFILE.md and AGENTS.md conflict, the repo instruction wins. Tools should treat PROFILE.md as a default layer, not an override layer.

PROFILE.md also gives tools a safe place to accumulate memory: when the agent notices a stable preference, it can propose a patch to this file. The user reviews it, and the result stays portable across tools.

Example PROFILE.md

Here is an example:

## Basics

- Name: Sam Altman
- Time zone: America/Los_Angeles (PT)
- Job roles: CEO, OpenAI; former president, Y Combinator; co-founder, Loopt
- Interests:
  - Nuclear fusion
  - Fundraising
  - AGI

## How I want you to work with me

- Be concise, direct, and honest. Bullets > paragraphs.
- Default to high agency: propose a plan, then do the work.
- If something is ambiguous, ask short clarifying questions (with options).
- Optimize for leverage and compounding, not busyness.
- If you notice a stable preference, propose a patch to this file.

## How to best communicate with me

- Put the punchline first, then details.
- Make tradeoffs explicit (what we give up, what we gain).
- Suggest the next action when possible.
- Be comfortable being terse when it saves time.

## Scheduling

- Protect the first few hours of my morning for deep work (no meetings).
- Prefer meetings in 15–20 minutes or 2 hours. Default 1 hour is usually wrong.
- Avoid low-leverage meetings and conferences; leave room for serendipity.

## Productivity system

- Use simple lists (year / month / day). Keep it lightweight.
- Avoid over-categorizing. Star only the truly important items.
- Ruthlessly say no to non-critical work; do low-value work quickly.
- Delegate work to people who like it and are good at it.