(^· ·^)⟆ gatto · an AI assistant that runs on your own PC

Roles

A role is a file. It sets how gatto behaves, which checks it has to satisfy, and what it is supposed to be doing. Eight of them ship, and you can read or change any of them in Notepad.


A role really is just a file

Roles live in ~\.gatto\roles\, one small JSON file each. Switching role is /role coder in a session, and gatto swaps the instructions it is working under.

The clearest proof that a role is nothing more than a file is the default one. Here is generalist.json, complete:

{}

Empty, on purpose. The generalist is gatto with nothing added: no extra instructions, no extra checks. Everything the other two do, they do by putting something in that file.


Three of the eight

/l、 (^、^7 l ~ヽ じしf_,)ノ

generalist

The default, and the one you get if you never think about roles at all, unless default_role in gatto.json names another. It reads files, writes them, searches, runs commands, and answers questions. Use it for anything that is not specifically writing code or specifically thinking a problem through.

/l、 (▀、▀ 7 l ~ヽ じしf_,)ノ

coder

Wears the visor. Its file holds instructions and nothing else, and they push it towards implementing what was already decided rather than redesigning it: read the plan first, work in small steps, run the tests, and never say something passes without having watched it pass.

▲ ╱☆╲ ⌒‾‾‾⌒ (^、^7 l ~ヽ じしf_,)ノ

oracle

The one in the pointed hat. It is for research, specifications, plans and working out what is actually wrong, and it does not implement. Ask the oracle what to do; ask the coder to do it.

Its file turns on a check the others do not have: it keeps a record of every page it fetched, and warns when it writes a source it never fetched.

The three share one body deliberately. They differ where the role differs (the coder's eyes, the oracle's hat) because three unrelated cats would read as three mascots rather than one cat wearing a role. A role file can carry its own cat, up to six rows of sixteen cells, and a tint, one colour every role-tinted surface takes, with tint_light for the light theme. A role can open with a first_message, and /card writes one from a Character Card.


architect

A fourth role is planned, for the shape of a system rather than its code: the decisions that are expensive to reverse, the boundaries between parts, and what should not be built at all. Coming soon.


Changing one, or writing your own

Open any of the files in ~\.gatto\roles\ and edit it. A role file can add instructions to what gatto is told, switch checks on, set which model that role uses, and adjust how adventurous the model's answers are.

Adding a new one is the same thing under a new name: put architect.json in that folder and /role architect will find it. Nothing has to be registered, compiled or restarted: the folder is the list.

The manual's roles section lists every key a role file can carry, and the checks the oracle turns on.

A fourth role to sit in, raw, leaves out the instructions gatto writes on its own; the manual covers it.

Four more files in that folder are reviewers, there for another role to call through run_agent rather than to sit in: code-review, plan-review, spec-review and security-review.

GGitHub XX BBluesky MMastodon RReddit Windows 10 / 11 GPL-3.0
(^· ·^)⟆   zzz

nothing here yet: a game goes in this space

Close gatto.computer
(^· ·^)⟆

Are you sure you want to close this window?

It's now safe to close
this tab.
…or come back.