Skip to content

Profiles ​

A profile is a named memory space tied to one or more folders. Almost everything Neuronz.ai stores — memory, rules, knowledge, topics, assets — belongs to a profile, and a session reads and writes only the profile its working folder belongs to.

How it works ​

Folders map to profiles automatically. At session start the plugin looks up the profile for the folder the session runs in — you don't pick one. A folder that no route covers gets a new profile named after it. A folder inside a recursive route uses that route's profile; to give it its own, create one (see Creating a profile).

A route ties a folder to a profile. A route says "this folder belongs to this profile". A route can cover only that folder, or be recursive and also cover every folder beneath it. When several routes match, the one for the deepest folder wins. Routes are private to your account: a teammate in the same organization can route the same folder to a different profile, and neither of you sees the other's routes.

Routes follow you across machines. Write a folder under your home directory as ~/dev/myrepo (or $HOME/dev/myrepo) and the route matches that folder on every machine you use, whatever your home directory is called there, /home/you on Linux or /Users/you on a Mac. Folders under your home that get a route automatically are saved this way too. A trailing / does not matter: ~/dev/myrepo/ and ~/dev/myrepo are the same folder.

Many folders, one profile. Route several repos to the same profile and they share memory. With a recursive route on a parent folder, every repo you later clone beneath it uses that profile with no extra setup.

Wrong profile? Move the record. If a fact, action, doc or topic lands in the wrong profile, open it in the dashboard, edit it and pick another profile. Its history moves with it; links to records in the old profile are dropped.

Routing a folder ​

Say you keep all your client work for Acme under ~/work/acme/ and want it to share one memory. Ask your agent:

Route ~/work/acme and everything under it to the profile acme.

The agent calls set_dir_profile with dir: "/home/you/work/acme", profile: "acme" and recursive: true. From the next session on, every repo under ~/work/acme/ reads and writes the acme profile. unset_dir_profile removes a route again, and list_profiles lists every profile with its routes.

You can do the same in the Profiles page of the dashboard: each profile lists its routes, + Route adds one, and a route can be made recursive or switched back. Edit route (the pencil on a route) changes its folder, moves it to another profile, or turns Include subdirectories on or off. A folder that already has a route is refused. Turning on Include subdirectories and nothing else takes you to Cover subtree, which lists the routes already under that folder and merges them only once you confirm. Combined with another change, it is refused while some of those subfolders are routed to other profiles: save the other change first, then use Cover subtree.

Creating a profile ​

Say ~/work/acme/ is routed recursively to acme, and you want the ~/work/acme/website repo to keep its own memory. A session started there uses acme, because the parent's route covers it. In that session, run:

/neuronzai:new-profile acme-website

It creates the empty acme-website profile, routes ~/work/acme/website to it and moves the current session onto it. The new route is for the deeper folder, so it wins: every later session in ~/work/acme/website uses acme-website, while the rest of ~/work/acme/ keeps acme. Ask for its subfolders too and the route covers them as well.

The command refuses a name that already exists (route the folder to that profile instead) and a folder that already has its own route.

Without the plugin, ask your agent to create the profile: it calls create_profile with the name and, optionally, the folder to route to it. In the dashboard, the Profiles page has a New profile button that does the same.

A new profile starts empty. To fill it from your repositories, GitHub, Notion and docs, run /neuronzai:init-profile in a session using it.

Switching profile for one session ​

If you started a session in the wrong folder, run /neuronzai:switch-profile <name>. The rest of this session reads and writes the chosen profile. Switching affects this session only; it doesn't change which profile the folder uses next time. A resumed session keeps the switch. Run /neuronzai:switch-profile with no argument (or reset) to go back to the folder's own profile. If the switch cannot be saved, the command fails and the session keeps its previous profile. Work done before the switch stays in the profile it was done in.

To change the folder's profile for good, route it instead (see above).

Switching also syncs the new profile's assets right away. On Claude Code, run /neuronzai:reload-assets afterwards to pick up the new skills in place; on Oh-My-Pi, run /reload-plugins. The switch message says which applies. /neuronzai:reload-assets also re-syncs assets on its own when the profile has not changed.

Default chat profile ​

A chat or Cowork task in the Claude app, or a chat on claude.ai, has no working folder, so no route can pick its profile. It uses your default chat profile instead. On the Profiles page of the dashboard, click the star on a profile's card (Set as default); that profile shows a default badge. Only one profile is the default at a time, so setting another one moves the badge. Click the crossed-out star on the default profile (Clear default) to have no default; a new chat then asks you which profile to use.

The default is yours alone: teammates in the same organization each set their own. Changing it affects new chats only. See Choose a default chat profile.

Record language ​

Each profile has a record language: the language its memory is written in. Whatever language a session runs in, the facts, actions and notes saved from it are written in the profile's record language, so the profile's memory stays in one language. Code, identifiers, error strings and quotes are always kept as they are.

New profiles default to English. To change it, send this request with an API key from Security → API keys in the dashboard:

bash
curl -X POST "https://app.neuronz.ai/api/profiles/acme/language" \
  -H "Authorization: Bearer nzk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"language": "fr"}'

Replace acme with the profile name. language accepts an ISO code (en, fr), a locale (fr-FR) or a name (French); a value it does not recognize falls back to English.

Records stay findable across languages: a question in French still finds the English fact it is about, and the other way round, without pulling in unrelated matches. Keyword search also ignores accents: deploye matches déployé.