mirror of
https://github.com/starship/starship.git
synced 2026-06-23 02:05:51 +07:00
8bcced8f34
[ci skip]
630 lines
27 KiB
Markdown
630 lines
27 KiB
Markdown
# Configurazione Avanzata
|
||
|
||
Nonostante Starship sia una shell versatile, a volte devi fare qualche modifica in più in `starship.toml` per ottenere alcune cose. Questa pagina descrive alcune tecniche di configurazione avanzate utilizzate in Starship.
|
||
|
||
> [!WARNING] The configurations in this section are subject to change in future releases of Starship.
|
||
|
||
## TransientPrompt su PowerShell
|
||
|
||
È possibile rimpiazzare il prompt precedente con una stringa di testo personalizzata. È utile nei casi in cui alcune informazioni sulla shell non ci servono. Per attivarlo, esegui `Enable-TransientPrompt` sulla shell. Per mantenerlo permanente, metti questa dichiarazione nel tuo `$PROFILE`. Può essere disattivata al volo con `Disable-TransientPrompt`.
|
||
|
||
By default, the left side of input gets replaced with a bold-green `❯`. To customize this, define a new function called `starship_transient_prompt_func`. Ad esempio, per mostrare il modulo dei `character`, dovresti fare
|
||
|
||
```powershell
|
||
function Invoke-Starship-TransientFunction {
|
||
&starship module character
|
||
}
|
||
|
||
Invoke-Expression (&starship init powershell)
|
||
|
||
Enable-TransientPrompt
|
||
```
|
||
|
||
## TransientPrompt e TransientRightPrompt in Cmd
|
||
|
||
È possibile rimpiazzare il prompt precedente con una stringa di testo personalizzata. È utile nei casi in cui alcune informazioni sulla shell non ci servono. Per attivarlo, esegui `clink set prompt.transient <value>` dove \<value\> può essere uno tra:
|
||
|
||
- `always`: sostituisce sempre il prompt precedente
|
||
- `same_dir`: sostituisce il prompt precedente solo se la directory di lavoro è la stessa
|
||
- `off`: non sostituisce il prompt (cioè disattiva la transizione)
|
||
|
||
Devi fare questo solo una volta. Fai le seguenti modifiche alla tua `starship.lua` per personalizzare ciò che viene visualizzato a sinistra e a destra:
|
||
|
||
- Per impostazione predefinita, il simbolo predefinito prima dell'input sarà rimpiazzato con `>`. To customize this, define a new function called `starship_transient_prompt_func`. This function receives the current prompt as a string that you can utilize. Ad esempio, per mostrare il modulo dei `character`, dovresti fare
|
||
|
||
```lua
|
||
function starship_transient_prompt_func(prompt)
|
||
return io.popen("starship module character"
|
||
.." --keymap="..rl.getvariable('keymap')
|
||
):read("*a")
|
||
end
|
||
load(io.popen('starship init cmd'):read("*a"))()
|
||
```
|
||
|
||
- Per impostazione predefinita, il simbolo predefinito prima dell'input sarà rimpiazzato con `>`. To customize this, define a new function called `starship_transient_rprompt_func`. This function receives the current prompt as a string that you can utilize. For example, to display the time at which the last command was started here, you would do
|
||
|
||
```lua
|
||
function starship_transient_rprompt_func(prompt)
|
||
return io.popen("starship module time"):read("*a")
|
||
end
|
||
load(io.popen('starship init cmd'):read("*a"))()
|
||
```
|
||
|
||
## TransientPrompt and TransientRightPrompt in Fish
|
||
|
||
È possibile rimpiazzare il prompt precedente con una stringa di testo personalizzata. È utile nei casi in cui alcune informazioni sulla shell non ci servono. To enable this, run `enable_transience` in the shell session. To make it permanent, put this statement in your `~/.config/fish/config.fish`. Transience can be disabled on-the-fly with `disable_transience`.
|
||
|
||
Note that in case of Fish, the transient prompt is only printed if the commandline is non-empty, and syntactically correct.
|
||
|
||
- By default, the right side of input is empty. To customize this, define a new function called `starship_transient_rprompt_func`. For example, to display the time at which the last command was started here, you would do
|
||
|
||
```fish
|
||
function starship_transient_prompt_func
|
||
starship module character
|
||
end
|
||
starship init fish | source
|
||
enable_transience
|
||
```
|
||
|
||
- Per impostazione predefinita, il simbolo predefinito prima dell'input sarà rimpiazzato con `>`. Per personalizzarlo, definisci una nuova funzione chiamata `Invoke-Starship-TransientFunction`. Ad esempio, per mostrare il modulo dei `character`, dovresti fare
|
||
|
||
```fish
|
||
function starship_transient_rprompt_func
|
||
starship module time
|
||
end
|
||
starship init fish | source
|
||
enable_transience
|
||
```
|
||
|
||
## TransientPrompt and TransientRightPrompt in Bash
|
||
|
||
The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework at v0.4 or higher allows you to replace the previous-printed prompt with custom strings. This is useful in cases where all the prompt information is not always needed. To enable this, put this in `~/.bashrc` `bleopt prompt_ps1_transient=<value>`:
|
||
|
||
The \<value\> here is a colon-separated list of `always`, `same-dir` and `trim`.
|
||
When `prompt_ps1_final` is empty and the option `prompt_ps1_transient` has a non-empty \<value\>, the prompt specified by `PS1` is erased on leaving the current command line.
|
||
If \<value\> contains a field `trim`, only the last line of multiline `PS1` is preserved and the other lines are erased. Otherwise, the command line will be redrawn as if `PS1=` is specified. When a field `same-dir` is contained in \<value\> and the current working directory is different from the final directory of the previous command line, this option `prompt_ps1_transient` is ignored.
|
||
|
||
Make the following changes to your `~/.blerc` (or in `~/.config/blesh/init.sh`) to customize what gets displayed on the left and on the right:
|
||
|
||
- To customize what the left side of input gets replaced with, configure the `prompt_ps1_final` Ble.sh option. For example, to display Starship's `character` module here, you would do
|
||
|
||
```bash
|
||
bleopt prompt_ps1_final='$(starship module character)'
|
||
```
|
||
|
||
- To customize what the right side of input gets replaced with, configure the `prompt_rps1_final` Ble.sh option. For example, to display the time at which the last command was started here, you would do
|
||
|
||
```bash
|
||
bleopt prompt_rps1_final='$(starship module time)'
|
||
```
|
||
|
||
## Custom pre-prompt and pre-execution Commands in Cmd
|
||
|
||
Clink provides extremely flexible APIs to run pre-prompt and pre-exec commands in Cmd shell. It is fairly simple to use with Starship. Make the following changes to your `starship.lua` file as per your requirements:
|
||
|
||
- To run a custom function right before the prompt is drawn, define a new function called `starship_preprompt_user_func`. This function receives the current prompt as a string that you can utilize. For example, to draw a rocket before the prompt, you would do
|
||
|
||
```lua
|
||
function starship_preprompt_user_func(prompt)
|
||
print("🚀")
|
||
end
|
||
|
||
load(io.popen('starship init cmd'):read("*a"))()
|
||
```
|
||
|
||
- To run a custom function right before a command is executed, define a new function called `starship_precmd_user_func`. This function receives the current commandline as a string that you can utilize. For example, to print the command that's about to be executed, you would do
|
||
|
||
```lua
|
||
function starship_precmd_user_func(line)
|
||
print("Executing: "..line)
|
||
end
|
||
|
||
load(io.popen('starship init cmd'):read("*a"))()
|
||
```
|
||
|
||
## Comandi personalizzati di pre-prompt e pre-esecuzione per Bash
|
||
|
||
Bash non ha un framework preexec/precmd formale come la maggior parte delle altre shell.
|
||
Per questo motivo, è difficile fornire hook completamente personalizzabile in `bash`.
|
||
Tuttavia, Starship dà la limitata possibilità di inserire le tue funzioni nella procedura prompt-rendering:
|
||
|
||
- Per eseguire una funzione personalizzata a destra del prompt prima che venga disegnato, definisci una nuova funzione e assegna il suo nome a `starship_precmd_user_func`. Per esempio, per visualizzare l'icona di un razzo prima del prompt, si può usare il codice seguente
|
||
|
||
```bash
|
||
function blastoff(){
|
||
echo "🚀"
|
||
}
|
||
starship_precmd_user_func="blastoff"
|
||
```
|
||
|
||
- Per eseguire una funzione personalizzata prima dell'esecuzione di un comando, è possibile utilizzare il meccanismo trappola [`DEBUG`](https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/).
|
||
Tuttavia, **devi** intrappolare il segnale DEBUG _prima di_ inizializzare Starship!
|
||
Starship può preservare il valore trappola di DEBUG, ma se la trappola viene sovrascritta dopo l'avvio di Starship, alcune funzionalità non funzioneranno.
|
||
|
||
```bash
|
||
function blastoff(){
|
||
echo "🚀"
|
||
}
|
||
trap blastoff DEBUG # Trap DEBUG *before* running starship
|
||
set -o functrace
|
||
eval $(starship init bash)
|
||
set +o functrace
|
||
```
|
||
|
||
## Custom pre-prompt and pre-execution Commands in PowerShell
|
||
|
||
PowerShell does not have a formal preexec/precmd framework like most other shells.
|
||
Because of this, it is difficult to provide fully customizable hooks in `powershell`.
|
||
Tuttavia, Starship dà la limitata possibilità di inserire le tue funzioni nella procedura prompt-rendering:
|
||
|
||
Create a function named `Invoke-Starship-PreCommand`
|
||
|
||
```powershell
|
||
function Invoke-Starship-PreCommand {
|
||
$host.ui.Write("🚀")
|
||
}
|
||
```
|
||
|
||
## Cambia il titolo della finestra
|
||
|
||
Alcune shell prompt cambieranno automaticamente il titolo della finestra (ad esempio per riflettere la directory di lavoro). Fish lo fa per impostazione predefinita.
|
||
Starship does not do this, but it's fairly straightforward to add this functionality to `bash`, `zsh`, `cmd` or `powershell`.
|
||
|
||
Innanzitutto, bisogna definire una funzione per il cambio del titolo della finestra (identica sia per bash che zsh):
|
||
|
||
```bash
|
||
function set_win_title(){
|
||
echo -ne "\033]0; IL_TUO_TITOLO_QUI \007"
|
||
}
|
||
```
|
||
|
||
Puoi usare delle variabili per personalizzare questo titolo (`$USER`, `$HOSTNAME`, e `$PWD` sono le scelte più popolari).
|
||
|
||
In `bash`, impostare questa funzione per essere la precmd Starship function:
|
||
|
||
```bash
|
||
starship_precmd_user_func="set_win_title"
|
||
```
|
||
|
||
In `zsh`, aggiungi questo `precmd_functions` all'array:
|
||
|
||
```bash
|
||
precmd_functions+=(set_win_title)
|
||
```
|
||
|
||
Se ti piace il risultato, aggiungi queste righe al tuo file shell di configurazione (`~/.bashrc` o `~/.zshrc`) per renderlo permanente.
|
||
|
||
Ad esempio, se desideri visualizzare la directory corrente nel titolo della scheda del terminale, aggiungi la seguente snippet al tuo `~/.bashrc` or `~/.zshrc`:
|
||
|
||
```bash
|
||
function set_win_title(){
|
||
echo -ne "\033]0; $(basename "$PWD") \007"
|
||
}
|
||
starship_precmd_user_func="set_win_title"
|
||
```
|
||
|
||
For Cmd, you can change the window title using the `starship_preprompt_user_func` function.
|
||
|
||
```lua
|
||
function starship_preprompt_user_func(prompt)
|
||
console.settitle(os.getenv('USERNAME').."@"..os.getenv('COMPUTERNAME')..": "..os.getcwd())
|
||
end
|
||
|
||
load(io.popen('starship init cmd'):read("*a"))()
|
||
```
|
||
|
||
You can also set a similar output with PowerShell by creating a function named `Invoke-Starship-PreCommand`.
|
||
|
||
```powershell
|
||
# edit $PROFILE
|
||
function Invoke-Starship-PreCommand {
|
||
$host.ui.RawUI.WindowTitle = "$env:USERNAME@$env:COMPUTERNAME`: $pwd `a"
|
||
}
|
||
|
||
Invoke-Expression (&starship init powershell)
|
||
```
|
||
|
||
## Enable Right Prompt
|
||
|
||
Some shells support a right prompt which renders on the same line as the input. Starship can set the content of the right prompt using the `right_format` option. Any module that can be used in `format` is also supported in `right_format`. The `$all` variable will only contain modules not explicitly used in either `format` or `right_format`.
|
||
|
||
Note: The right prompt is a single line following the input location. To right align modules above the input line in a multi-line prompt, see the [`fill` module](../config/#fill).
|
||
|
||
`right_format` is currently supported for the following shells: elvish, fish, zsh, xonsh, cmd, nushell, bash.
|
||
|
||
Note: The [Ble.sh](https://github.com/akinomyoga/ble.sh) framework v0.4 or higher should be installed in order to use right prompt in bash.
|
||
|
||
### Esempio
|
||
|
||
```toml
|
||
# ~/.config/starship.toml
|
||
|
||
# A minimal left prompt
|
||
format = """$character"""
|
||
|
||
# move the rest of the prompt to the right
|
||
right_format = """$all"""
|
||
```
|
||
|
||
Produces a prompt like the following:
|
||
|
||
```
|
||
▶ starship on rprompt [!] is 📦 v0.57.0 via 🦀 v1.54.0 took 17s
|
||
```
|
||
|
||
When using `zsh` (v5.0.5+), the shell adds a default trailing space to the right prompt. This can cause alignment issues specifically when using the Starship `$fill` module. To remove this gap, add the following to your `.zshrc`:
|
||
|
||
```zsh
|
||
ZLE_RPROMPT_INDENT=0
|
||
```
|
||
|
||
## Continuation Prompt
|
||
|
||
Some shells support a continuation prompt along with the normal prompt. This prompt is rendered instead of the normal prompt when the user has entered an incomplete statement (such as a single left parenthesis or quote).
|
||
|
||
Starship can set the continuation prompt using the `continuation_prompt` option. The default prompt is `'[∙](bright-black) '`.
|
||
|
||
Note: `continuation_prompt` should be set to a literal string without any variables.
|
||
|
||
Note: Continuation prompts are only available in the following shells:
|
||
|
||
- `bash`
|
||
- `zsh`
|
||
- `PowerShell`
|
||
|
||
### Esempio
|
||
|
||
```toml
|
||
# ~/.config/starship.toml
|
||
|
||
# A continuation prompt that displays two filled-in arrows
|
||
continuation_prompt = '▶▶ '
|
||
```
|
||
|
||
## Statusline for Claude Code
|
||
|
||
Starship supports displaying a custom statusline when running inside Claude Code, Anthropic's CLI tool for interactive coding with Claude. This statusline provides real-time information about your Claude session, including the model being used, context window usage, and session costs.
|
||
|
||
For more information about the Claude Code statusline feature, see the [Claude Code statusline documentation](https://code.claude.com/docs/en/statusline).
|
||
|
||
### Setup
|
||
|
||
To use Starship as your Claude Code statusline:
|
||
|
||
1. Run `/statusline` in Claude Code and ask it to configure Starship, or manually add the following to your `.claude/settings.json`:
|
||
|
||
```json
|
||
{
|
||
"statusLine": {
|
||
"type": "command",
|
||
"command": "starship statusline claude-code"
|
||
}
|
||
}
|
||
```
|
||
|
||
2. Customize the statusline appearance in your `~/.config/starship.toml` (see [Configuration](#configuration) below)
|
||
|
||
### Overview
|
||
|
||
When invoked with `starship statusline claude-code`, Starship receives Claude Code session data via stdin and renders a statusline using a dedicated profile named `claude-code`.
|
||
|
||
The profile includes three specialized modules:
|
||
|
||
- `claude_model`: Displays the current Claude model being used
|
||
- `claude_context`: Shows context window usage with a visual gauge
|
||
- `claude_cost`: Displays session cost and statistics
|
||
|
||
The default profile format is:
|
||
|
||
```toml
|
||
[profiles]
|
||
claude-code = "$claude_model$git_branch$claude_context$claude_cost"
|
||
```
|
||
|
||
### Configurazione
|
||
|
||
You can customize the Claude Code statusline by modifying the `claude-code` profile and individual module configurations in your `~/.config/starship.toml`:
|
||
|
||
```toml
|
||
# ~/.config/starship.toml
|
||
|
||
# Customize the claude-code profile
|
||
[profiles]
|
||
claude-code = "$claude_model$claude_context$claude_cost"
|
||
|
||
# Configure individual modules
|
||
[claude_model]
|
||
format = "[$symbol$model]($style) "
|
||
symbol = "🤖 "
|
||
style = "bold blue"
|
||
|
||
[claude_context]
|
||
format = "[$gauge $percentage]($style) "
|
||
gauge_width = 10
|
||
|
||
[claude_cost]
|
||
format = "[$symbol$cost]($style) "
|
||
symbol = "💰 "
|
||
```
|
||
|
||
### Claude Model
|
||
|
||
The `claude_model` module displays the current Claude model being used in the session.
|
||
|
||
#### Opzioni
|
||
|
||
| Opzione | Default | Descrizione |
|
||
| --------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
||
| `format` | `'[$symbol$model]($style) '` | The format for the module. |
|
||
| `symbol` | `'🤖 '` | The symbol shown before the model name. |
|
||
| `style` | `'bold blue'` | Lo stile per il modulo. |
|
||
| `model_aliases` | `{}` | Map of model IDs or display names to shorter aliases. Checks ID first, then display name. |
|
||
| `disabled` | `false` | Disables the `claude_model` module. |
|
||
|
||
#### Variables
|
||
|
||
| Variable | Esempio | Descrizione |
|
||
| ----------------------------- | ------------------- | ------------------------------------- |
|
||
| model | `Claude 3.5 Sonnet` | The display name of the current model |
|
||
| model_id | `claude-3-5-sonnet` | The model ID |
|
||
| symbol | | Mirrors the value of option `symbol` |
|
||
| style\* | | Mirrors the value of option `style` |
|
||
|
||
\*: This variable can only be used as a part of a style string
|
||
|
||
#### Examples
|
||
|
||
```toml
|
||
# ~/.config/starship.toml
|
||
|
||
# Basic customization
|
||
[claude_model]
|
||
format = "on [$symbol$model]($style) "
|
||
symbol = "🧠 "
|
||
style = "bold cyan"
|
||
|
||
# Using model aliases for vendor-specific model names
|
||
# You can alias by model ID or display name
|
||
[claude_model.model_aliases]
|
||
# Alias by vendor model ID (e.g. AWS Bedrock)
|
||
"global.anthropic.claude-sonnet-4-5-20250929-v1:0" = "Sonnet 4.5"
|
||
# Alias by display name
|
||
"Claude Sonnet 4.5 (Vendor Proxy)" = "Sonnet"
|
||
```
|
||
|
||
### Claude Context
|
||
|
||
The `claude_context` module displays context window usage as a percentage and visual gauge. The style automatically changes based on configurable thresholds.
|
||
|
||
#### Opzioni
|
||
|
||
| Opzione | Default | Descrizione |
|
||
| ---------------------- | --------------------------------- | ------------------------------------------------------------------ |
|
||
| `format` | `'[$gauge $percentage]($style) '` | The format for the module. |
|
||
| `symbol` | `''` | The symbol shown before the gauge. |
|
||
| `gauge_width` | `5` | The width of the gauge in characters. |
|
||
| `gauge_full_symbol` | `'█'` | The symbol used for filled segments of the gauge. |
|
||
| `gauge_partial_symbol` | `'▒'` | The symbol used for partial segments of the gauge. |
|
||
| `gauge_empty_symbol` | `'░'` | The symbol used for empty segments of the gauge. |
|
||
| `display` | [see below](#display) | Threshold and style configurations. |
|
||
| `disabled` | `false` | Disables the `claude_context` module. |
|
||
|
||
##### Display
|
||
|
||
The `display` option is an array of objects that define thresholds and styles for different usage levels. The module uses the style from the highest matching threshold or hides the module if `hidden` is `true`.
|
||
|
||
| Opzione | Default | Descrizione |
|
||
| ----------- | ------------ | ------------------------------------------------------------------------ |
|
||
| `threshold` | `0.0` | The minimum context windows usage percentage to match this configuration |
|
||
| `style` | `bold green` | The value of `style` if this display configuration is matched |
|
||
| `hidden` | `false` | Hide this module if this the configuration is matched. |
|
||
|
||
```toml
|
||
[[claude_context.display]]
|
||
threshold = 0
|
||
hidden = true
|
||
|
||
[[claude_context.display]]
|
||
threshold = 30
|
||
style = "bold green"
|
||
|
||
[[claude_context.display]]
|
||
threshold = 60
|
||
style = "bold yellow"
|
||
|
||
[[claude_context.display]]
|
||
threshold = 80
|
||
style = "bold red"
|
||
```
|
||
|
||
#### Variables
|
||
|
||
| Variable | Esempio | Descrizione |
|
||
| ----------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------- |
|
||
| gauge | `██▒░░` | Visual representation of context usage |
|
||
| percentage | `65%` | Context usage as a percentage |
|
||
| input_tokens | `45.2k` | Total input tokens in conversation |
|
||
| output_tokens | `12.3k` | Total output tokens in conversation |
|
||
| curr_input_tokens | `5.1k` | Input tokens from most recent API call |
|
||
| curr_output_tokens | `1.2k` | Output tokens from most recent API call |
|
||
| curr_cache_creation_tokens | `1.5k` | Cache creation tokens from most recent API call |
|
||
| curr_cache_read_tokens | `23.4k` | Cache read tokens from most recent API call |
|
||
| total_tokens | `200k` | Total context window size |
|
||
| symbol | | Mirrors the value of option `symbol` |
|
||
| style\* | | Mirrors the style from the matching display threshold |
|
||
|
||
\*: This variable can only be used as a part of a style string
|
||
|
||
#### Examples
|
||
|
||
**Minimal gauge-only display**
|
||
|
||
```toml
|
||
# ~/.config/starship.toml
|
||
|
||
[claude_context]
|
||
format = "[$gauge]($style) "
|
||
gauge_width = 10
|
||
```
|
||
|
||
**Detailed token information**
|
||
|
||
```toml
|
||
# ~/.config/starship.toml
|
||
|
||
[claude_context]
|
||
format = "[$percentage ($input_tokens in / $output_tokens out)]($style) "
|
||
```
|
||
|
||
**Custom gauge symbols**
|
||
|
||
```toml
|
||
# ~/.config/starship.toml
|
||
|
||
[claude_context]
|
||
gauge_full_symbol = "▰"
|
||
gauge_partial_symbol = ""
|
||
gauge_empty_symbol = "▱"
|
||
gauge_width = 10
|
||
format = "[$gauge]($style) "
|
||
```
|
||
|
||
**Custom thresholds**
|
||
|
||
```toml
|
||
# ~/.config/starship.toml
|
||
|
||
[[claude_context.display]]
|
||
threshold = 0
|
||
style = "bold green"
|
||
|
||
[[claude_context.display]]
|
||
threshold = 50
|
||
style = "bold yellow"
|
||
|
||
[[claude_context.display]]
|
||
threshold = 75
|
||
style = "bold orange"
|
||
|
||
[[claude_context.display]]
|
||
threshold = 90
|
||
style = "bold red"
|
||
```
|
||
|
||
### Claude Cost
|
||
|
||
The `claude_cost` module displays the total cost of the current Claude Code session in USD. Like `claude_context`, it supports threshold-based styling.
|
||
|
||
#### Opzioni
|
||
|
||
| Opzione | Default | Descrizione |
|
||
| ---------- | ---------------------------------- | --------------------------------------------------- |
|
||
| `format` | `'[$symbol(\\$$cost)]($style) '` | The format for the module. |
|
||
| `symbol` | `'💰 '` | The symbol shown before the cost. |
|
||
| `display` | [see below](#display-1) | Threshold and style configurations. |
|
||
| `disabled` | `false` | Disables the `claude_cost` module. |
|
||
|
||
##### Display
|
||
|
||
The `display` option is an array of objects that define cost thresholds and styles. The module uses the style from the highest matching threshold or hides the module if `hidden` is `true`.
|
||
|
||
| Opzione | Default | Descrizione |
|
||
| ----------- | ------------ | ------------------------------------------------------------------ |
|
||
| `threshold` | `0.0` | The minimum cost in USD to match this configuration |
|
||
| `style` | `bold green` | The value of `style` if this display configuration is matched |
|
||
| `hidden` | `false` | Hide this module if this configuration is matched. |
|
||
|
||
**Default configuration:**
|
||
|
||
```toml
|
||
[[claude_cost.display]]
|
||
threshold = 0.0
|
||
hidden = true
|
||
|
||
[[claude_cost.display]]
|
||
threshold = 1.0
|
||
style = "bold yellow"
|
||
|
||
[[claude_cost.display]]
|
||
threshold = 5.0
|
||
style = "bold red"
|
||
```
|
||
|
||
#### Variables
|
||
|
||
| Variable | Esempio | Descrizione |
|
||
| ---------------------------------- | -------- | ---------------------------------------------------------------------- |
|
||
| cost | `1.23` | Total session cost in USD (formatted to 2 decimals) |
|
||
| duration | `1m 30s` | Total session duration |
|
||
| api_duration | `45s` | Total API call duration |
|
||
| lines_added | `1.2k` | Total lines of code added |
|
||
| lines_removed | `500` | Total lines of code removed |
|
||
| symbol | | Mirrors the value of option `symbol` |
|
||
| style\* | | Mirrors the style from the matching display threshold |
|
||
|
||
\*: This variable can only be used as a part of a style string
|
||
|
||
#### Examples
|
||
|
||
```toml
|
||
# ~/.config/starship.toml
|
||
|
||
# Cost with code change statistics
|
||
[claude_cost]
|
||
format = "[$symbol$cost (+$lines_added -$lines_removed)]($style) "
|
||
|
||
# Hide module until cost exceeds $0.10
|
||
[[claude_cost.display]]
|
||
threshold = 0.0
|
||
hidden = true
|
||
|
||
[[claude_cost.display]]
|
||
threshold = 0.10
|
||
style = "bold yellow"
|
||
|
||
[[claude_cost.display]]
|
||
threshold = 2.0
|
||
style = "bold red"
|
||
|
||
# Show duration information
|
||
[claude_cost]
|
||
format = "[$symbol$cost ($duration)]($style) "
|
||
```
|
||
|
||
## Stile delle Stringhe
|
||
|
||
Le stringhe di stile sono un elenco di parole, separate da spazi bianchi. Le parole non sono sensibili alle maiuscole (cioè `grassetto` e `BoLd` sono considerate la stessa stringa). Ogni parola può essere una delle seguenti:
|
||
|
||
- `bold`
|
||
- `italic`
|
||
- `underline`
|
||
- `dimmed`
|
||
- `inverted`
|
||
- `blink`
|
||
- `hidden`
|
||
- `strikethrough`
|
||
- `bg:<color>`
|
||
- `fg:<color>`
|
||
- `<color>`
|
||
- `none`
|
||
|
||
dove `<color>` è un colore specifico (discusso in seguito). `fg:<color>` e `<color>` attualmente fanno la stessa cosa, anche se questo potrebbe cambiare in futuro.
|
||
`<color>` can also be set to `prev_fg` or `prev_bg` which evaluates to the previous item's foreground or background color respectively if available or `none` otherwise.
|
||
`inverted` scambia lo sfondo e i colori in primo piano. L'ordine delle parole nella stringa non conta.
|
||
|
||
Il token `none` sovrascrive tutti gli altri token in una stringa se non fa parte di uno specificatore `bg:`, così ad esempio `fg:red none fg:blue` creerà una stringa senza stile. `bg:none` imposta come colore di sfondo quello predefinito così `fg:red bg:none` è equivalente a `red` o `fg:red` e `bg:green fg:red bg:none` è equivalente a `fg:red` o `red`. Potrà diventare un errore usare `none` in combinazione con altri token in futuro.
|
||
|
||
Uno colore specifico può essere uno di questi:
|
||
|
||
- One of the standard terminal colors: `black`, `red`, `green`, `blue`, `yellow`, `purple`, `cyan`, `white`. You can optionally prefix these with `bright-` to get the bright version (e.g. `bright-white`).
|
||
- Un `#` seguito da un valore esadecimale a sei cifre. Questo specifica un [colore esagesimale in RGB](https://www.w3schools.com/colors/colors_hexadecimal.asp).
|
||
- Un numero compreso tra 0-255. Specifica un [codice colore ANSI a 8 bit](https://i.stack.imgur.com/KTSQa.png).
|
||
|
||
Se sono specificati più colori per il primo piano/sfondo, l'ultimo nella stringa avrà la priorità.
|
||
|
||
Not every style string will be displayed correctly by every terminal. In particular, the following known quirks exist:
|
||
|
||
- Many terminals disable support for `blink` by default.
|
||
- `hidden` is [not supported on iTerm](https://gitlab.com/gnachman/iterm2/-/issues/4564).
|
||
- `strikethrough` is not supported by the default macOS Terminal.app.
|