whoami
A portable profile format for AI agents. Define yourself once, use everywhere.
The Problem
Every AI tool starts cold. You explain your preferences, your stack, your projects. Then you switch tools and repeat it. Claude Code, Cursor, ChatGPT—each one needs the same context.
The Solution
whoami.toml is a standard format that AI agents can read to understand who you are, how you work, and what you're building.
= "20260330"
[]
= "Jake Goldsborough"
= ["backend engineer", "infrastructure engineer"]
[]
= "direct, no fluff, technical peer not cheerleader"
= false
[]
= ["rust", "typescript", "bash"]
[[]]
= "skillz"
= "~/dev/skillz"
= "Claude Code skill package manager"
= ["rust", "clap"]
Installation
From crates.io
From source
Quick Start
Create a profile interactively:
This will ask you questions and generate ~/.config/agent/whoami.toml.
View your profile:
Or specify a custom location:
Usage
For Users
Option 1: Use the wizard (recommended)
Option 2: Create manually
- Copy examples/whoami.toml to
~/.config/agent/whoami.toml - Edit to match your preferences
- Validate:
whoami ~/.config/agent/whoami.toml
Option 3: Start minimal
Copy examples/minimal.toml and expand as needed.
Encrypt sensitive fields (optional)
If your profile contains API keys or email addresses:
Note: AI tools need SOPS support to read encrypted profiles. Tools that implement the whoami spec can automatically load user context from this file.
For Tool Developers
Read the SPEC.md for integration guidelines.
Basic usage:
// Rust
let path = var
.unwrap_or_else;
let profile: Profile = from_str?;
// TypeScript
const path = process.env.AGENT_WHOAMI ||
`${process.env.HOME}/.config/agent/whoami.toml`;
const profile = TOML.parse(await fs.readFile(path, 'utf-8'));
What Goes In It
- Person: Name, roles, pronouns
- Communication: Style, tone, preferences
- Technical: Languages, frameworks, tools
- Preferences: Code style, testing philosophy, architecture choices
- Domains: Expertise areas, learning goals
- Projects: Active projects with paths and tech stacks
- Context: Important paths (dotfiles, notes, projects index)
- Boundaries: Hard constraints and guiding principles
- API Keys: Encrypted credentials (use SOPS)
See SPEC.md for complete field documentation.
Privacy
Sensitive fields like email and API keys should be encrypted with SOPS:
# Encrypt
# Edit encrypted file
# Decrypt for reading
Create a public version for sharing:
# Remove [api_keys] and person.email
Tools That Support whoami
- (Coming soon)
Examples
- Jake's whoami.toml - Full example with all sections
- Minimal whoami.toml - Just the essentials
CLI Tool
The whoami CLI can create, validate, and display profiles:
# Create a new profile interactively
# Show your profile in readable format
# Show a specific profile
# Validate an existing profile
# Create at custom location
Dotfiles Integration
whoami.toml works great in dotfiles:
-
Add to your dotfiles repo:
-
Symlink on new machines:
-
Version and sync across machines
Specification
See SPEC.md for the complete format specification.
Version: 20260330 (Draft)
Contributing
The spec is in early draft. Feedback welcome via issues or PRs.
License
- Specification: CC0 1.0 (public domain)
- Code: MIT OR Apache-2.0