Profiles
Save a whole way of working as a profile: model, mode, instructions, tools, skills and model routing. Pick it for a tab in one click, turn it off the same way.
Copy & share
On this page6 sections
A profile is a ready-made setup for a tab. Pick one and the tab takes on its model, its mode, its instructions, the tools it may use, the skills it loads and which models do the helper jobs. Turn it off and the tab goes back to how it was.
Tests changes through the real app. Runs in auto mode, loads a testing skill, may not edit code.
Docs, release notes, posts. Loads writing skills, keeps the shell away, answers on a strong writing model.
Reads diffs in architect mode, which can't change files. High effort, a second model reviews.
Read-only digging: code search, the web and memory. Cheap fast models do the helper jobs.
Your everyday driver. A strong editing model, clean-up and checks after every edit.
Set up a tab the way you like it, then save it as a profile.
What a profile holdsLink to this section
| Part | What it does when you pick the profile |
|---|---|
| Instructions | The text under the header. The tab follows it for the whole conversation |
model | The model that answers in this tab, as provider/model |
forgeMode | The tab's mode: architect, plan, auto and the rest. permissions works too |
effort | Reasoning effort for that model |
tools | Only these tools are allowed. Leave it out for every tool |
disallowedTools | Tools the profile may never call |
skills | Skills loaded into this tab, and removed again when you turn the profile off |
routing | Which model does each helper job (list below) |
features | desloppify (clean up after edits), verifyEdits (check after edits), marionette (map the code first) |
tools and disallowedTools also cover the tools Empryo keeps off the list until the agent asks for them. A blocked tool stays blocked when the agent calls it through run_tool or code_script, and an allowed one, such as list_dir, still works that way.
ExamplesLink to this section
---
name: qa
description: Tests changes through the real app and reports what breaks.
model: anthropic/claude-sonnet-4-5
forgeMode: auto
effort: high
disallowedTools: [edit_file, ast_edit, multi_edit]
skills: [immune-system]
routing:
research: anthropic/claude-haiku-4-5
verify: google/gemini-2.5-flash
features:
verifyEdits: true
---
Reproduce every bug before you report it.
Run the app the way a user would.---
name: writer
description: Docs, release notes and posts in our voice.
model: anthropic/claude-opus-4-6
forgeMode: default
effort: medium
disallowedTools: [shell]
skills: [article-writing, unslop]
routing:
research: anthropic/claude-haiku-4-5
web-search: anthropic/claude-haiku-4-5
---
Lead with the concrete thing. Short sentences, plain words, no hype.---
name: reviewer
description: Reviews a diff before it ships. Never edits.
model: anthropic/claude-opus-4-6
forgeMode: architect
effort: high
skills: [typescript-react-reviewer]
routing:
review: openai/gpt-5.6
---
Name every problem at file:line and say how to fix it.---
name: researcher
description: Answers questions about the code and the web. Never edits.
forgeMode: architect
tools: [read, grep, find, navigate, web_search, fetch_page, memory]
routing:
research: anthropic/claude-haiku-4-5
explore: anthropic/claude-haiku-4-5
summaries: google/gemini-2.5-flash
---
Cite the file and line for every claim.---
name: pair
description: Everyday coding with checks after each edit.
model: anthropic/claude-sonnet-4-5
forgeMode: auto
routing:
editing: anthropic/claude-sonnet-4-5
cleanup: anthropic/claude-haiku-4-5
features:
desloppify: true
verifyEdits: true
---
Keep changes small and run the tests after each one.Save a file like these in .empryo/agents/ for this project, or in ~/.empryo/agents/ for every project.
Create oneLink to this section
Ask Empryo
Describe it in chat: "make me a qa profile on Sonnet that loads the immune-system skill, can't edit files, and uses Haiku for research, then use it". The
profilestool writes the file and switches the tab when its reply ends.Or use the editor
In the desktop app, open the profile menu next to the composer and choose New profile. The editor has three tabs: Basics (name, instructions, model, mode, effort), Tools & skills, and Routing. Edit in the Agents library opens the same editor for an existing profile.
Or save the tab you are in
Set the model, mode, routing and skills by hand, then choose Save this tab as a profile, or type
/profile save qain the terminal. Add--globalto keep it for every project.
Use itLink to this section
Pick it
Type
/profileand pick from the list. Typing part of the name is enough:/profile qaor/profile rev./profilesopens the full picker, and the desktop composer has a profile button.Work
The tab shows the profile's name. Anything you change afterwards, like another model, wins over the profile.
Turn it off
Click the X next to its name, pick it again, or type
/profile off. The model, routing and skills go back to what the tab had. The mode stays where it is.
Start with a profileLink to this section
Launch the terminal app on a profile with empryo --profile qa. The first tab and every new tab you open in that window start with it. A name that does not exist stops the launch and lists the profiles you have.
To use one profile everywhere, make it the default. Every new tab then starts with it, in the terminal, the desktop app and headless runs, on every project:
| Where | How |
|---|---|
| Terminal | /profile default qa, or /profile default and pick from the list |
| Desktop | Turn the profile on, open the profile button and choose Start new tabs with qa |
| Ask Empryo | "make qa my default profile" |
| Settings | defaultProfile in ~/.empryo/config.json |
/profile default off (or Start new tabs plain on desktop) goes back to the plain agent. Tabs that are already open keep their profile, and a resumed session keeps the profile it was saved with. empryo --no-profile starts one launch plain even when a default is set.
Headless runs take the same flags: empryo --headless --profile qa "check the login flow", or --no-profile to skip the default. --agent still works as another name for --profile.
A repository's own config can set defaultProfile. A profile can change the permission mode, so check it before you open a repository you did not write.
Routing jobsLink to this section
routing sends each kind of helper work to its own model, and each job can use a different provider.
| Job | What it covers |
|---|---|
research | Helper agents that read and search your code |
editing | Helper agents that edit files |
explore | The single explore agent |
web-search | Web search |
cleanup | The clean-up pass after edits |
verify | The check after edits |
review | /review |
goal-review | The reviewer in the goal loop |
summaries | Compacting a long conversation |
marionette | The code map built before an answer |
Other router jobs (the advisor, the council, workflows, routines, tab names and Genome summaries) take their model from your global or project task router and are not part of a profile. When one of them has no model set there, it borrows from the profile: the council uses its research model and workflow judges use its review model.
The task router slot names (spark, ember, compact and so on) work too.
Where profiles live and which one wins
Profiles are agent files, so Empryo reads them from the same folders as agents, including .claude/agents/. When two files use the same name, the project folder wins over the global one.
Profiles and custom agents
Every custom agent can run a tab, and a profile is a custom agent with tab settings added. Empryo can still hand a profile to a helper agent as a specialist; the tab settings only apply when a tab runs it.
Read-only modes
A profile can put a tab in architect or another read-only mode. The profiles tool still works there, so you can ask Empryo to switch profiles without leaving the mode by hand.