Pular para o conteúdo principal

Configuration

Parolsh reads two TOML files, both optional:

FileScope
~/.config/parolsh/config.toml (or $XDG_CONFIG_HOME/parolsh/config.toml)Global
<project>/.parolsh/config.tomlThe current project

The project file is applied on top of the global one, field by field: it only needs the values it changes. Unknown keys are an error, so a typo is reported instead of being ignored.

Start from the sample​

The package installs a sample with every option and a ready block for each agent, all commented out:

mkdir -p ~/.config/parolsh
cp /usr/share/doc/parolsh/config.sample.toml ~/.config/parolsh/config.toml

# Installed with Homebrew:
cp "$(brew --prefix)/share/parolsh/config.sample.toml" ~/.config/parolsh/config.toml

Uncomment the agents you use and set default_agent. The sample is also in the repository as config.sample.toml.

Example​

Global:

shell = ["bash", "-ic"]
default_agent = "qwen"

[agents.qwen]
command = "qwen"
args = ["--acp"]

[agents.claude]
command = "claude-agent-acp"
mode = "plan"

Project:

default_agent = "claude"

[agents.claude]
mode = "auto"

In that project, the default agent is claude in its auto mode, still launched as claude-agent-acp.

Keys​

KeyDefaultMeaning
shell["bash", "-ic"]Command line for !command; the command is added as the last argument. Must not be empty.
prompt"parolsh"Prompt style: parolsh, starship or minimal. See Prompt.
default_agentnoneAgent used when Parolsh starts. Must name a configured agent. #agent <name> switches until you leave Parolsh.
agents.<name>.commandrequiredProgram that speaks ACP over stdio
agents.<name>.args[]Arguments for command
agents.<name>.env{}Environment variables added for the agent, such as a base URL or a model. See API keys before putting a key here.
agents.<name>.modethe agent's defaultThe agent's own session mode id, set on every new conversation. See Modes.

shell only affects commands you type with !. parolsh -c always uses a plain bash -c.

env merges key by key: a project can change one variable without repeating the others.

Prompt​

promptLooks like
parolsh (default)wallet ❯
minimal❯
starshipYour Starship prompt, from ~/.config/starship.toml

#prompt <name> switches until you leave Parolsh; #prompt prints the style in use.

Starship​

With prompt = "starship", Parolsh runs starship prompt before every line, so the prompt looks as it does in your shell. Starship gets:

  • the exit code of the last ! command or agent turn: its ❯ turns red after a failure, as in bash;
  • how long it took, for its cmd_duration module;
  • the terminal width, and the right prompt (right_format) when you have one.

Starship does not know Parolsh, but it can show the agent in use. Parolsh sets PAROLSH_AGENT and PAROLSH_MODE for it, so an env_var module in ~/.config/starship.toml shows them only inside Parolsh:

[env_var.PAROLSH_AGENT]
format = "with [🤖 $env_value]($style) "
style = "bold purple"

Your bash PS1 is not used: Parolsh is not bash and cannot evaluate it. Starship is configured outside the shell, which is why it works in both.

If starship is missing or fails, Parolsh prints why and uses the parolsh prompt for the rest of the session. Without an ANSI terminal, starship also falls back to parolsh.

Other files​

PathContent
~/.local/state/parolsh/history (or $XDG_STATE_HOME/parolsh/history)Input history, last 1000 lines
/usr/share/doc/parolsh/config.sample.tomlThe commented sample configuration (Linux packages)
$(brew --prefix)/share/parolsh/config.sample.tomlThe same, installed with Homebrew