Starship 高级配置完全指南:Transient Prompt、右侧提示、Claude Code 状态栏与样式字符串
本篇技术指南聚焦 Starship shell 提示符项目(docs/advanced-config 主题 及其中文简体翻译所对应的 docs/es-ES/advanced-config/README.md)中无法仅靠编辑 starship.toml 完成的进阶配置技巧。当你需要控制多行提示的“瞬时化”(transient)行为、在 bash/zsh/cmd 中注入 pre-prompt 与 pre-execution 钩子、启用右侧提示与续行提示、自定义窗口标题、为 Claude Code 定制 statusline,或深入理解样式字符串(Style String)时,本文将逐一给出可直接复制运行的配置片段,并结合仓库初始化脚本与模块源码揭示其底层实现原理。读完后,你将能够把 Starship 从“开箱即用的提示符”升级为完全贴合个人工作流的交互终端核心。
[!WARNING] 本文介绍的配置方案位于高级范畴,Starship 后续版本可能会调整相关行为与 API。若升级后出现异常,请以新版官方文档与 CHANGELOG.md 为准。
一、Transient Prompt(瞬时提示符):让历史命令提示符“退场”
所谓瞬时提示符,是指在你执行命令后,用一段自定义字符串替换掉上一次打印出来的提示符。它的典型价值在于:当屏幕上的历史命令已经堆积很长时,不必再保留每一行的完整提示信息,从而降低视觉噪音。Starship 官方文档针对不同 shell 给出了各自的启用与自定义方案。
1. PowerShell:Enable-TransientPrompt
在 PowerShell 会话中执行 Enable-TransientPrompt 即可开启,写入 $PROFILE 后则永久生效;需要临时关闭时使用 Disable-TransientPrompt。
默认情况下,输入行的左侧会被替换为 >。若要自定义替换内容,请定义名为 Invoke-Starship-TransientFunction 的函数。例如让此处显示 Starship 的 character 模块:
function Invoke-Starship-TransientFunction {
&starship module character
}
Invoke-Expression (&starship init powershell)
Enable-TransientPrompt
从仓库的 PowerShell 初始化脚本 可以看到这些函数名是 Starship 初始化逻辑真正检查的“约定钩子”:当内部状态 $script:TransientPrompt 为真且存在 Invoke-Starship-TransientFunction 时,渲染逻辑会转而调用它来生成替换文本;同时脚本会扫描并导出 Enable-TransientPrompt / Disable-TransientPrompt 两个会话命令,并在渲染 prompt 前检查是否存在 Invoke-Starship-PreCommand(见下文“pre-execution”章节)。也就是说,你只需要“定义同名函数”,Starship 的初始化脚本会自动接入这些自定义行为。
2. Cmd:clink set prompt.transient + Lua 钩子
在 Cmd 中,Clink 允许用自定义字符串替换先前打印的提示符。开启命令只需执行一次:
clink set prompt.transient <value>
其中 <value> 支持三档取值:
always:总是替换上一次的提示符;same_dir:仅当工作目录与上次相同时才替换;off:关闭瞬时提示(即不替换)。
左侧默认替换为 >。要自定义,请在 starship.lua 中定义 starship_transient_prompt_func,该函数会把当前 prompt 以字符串形式传入供你复用。例如在这里显示 character 模块(注意通过 rl.getvariable('keymap') 传递当前按键映射,保证 character 模块能按 vi/emacs 模式切换提示符号):
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"))()
右侧默认为空。要自定义右侧替换内容,定义 starship_transient_rprompt_func。例如显示最后一条命令启动的时间:
function starship_transient_rprompt_func(prompt)
return io.popen("starship module time"):read("*a")
end
load(io.popen('starship init cmd'):read("*a"))()
需要留意的是,starship module time 这类调用实际上每次都启动一次 starship 子进程,再经由 io.popen 捕获其标准输出,因此请保持函数内部逻辑轻量,避免让每个 prompt 周期产生明显延迟。
3. Fish:enable_transience
Fish 使用内建函数 enable_transience 开启,写入 ~/.config/fish/config.fish 后永久生效,用 disable_transience 随时关闭。与其它 shell 不同,Fish 只在“命令行非空且语法正确”时打印瞬时提示符,即空行或残缺命令不会触发替换。
左侧默认替换为一个粗体绿色的 ❯。自定义方式同样是定义 starship_transient_prompt_func:
function starship_transient_prompt_func
starship module character
end
starship init fish | source
enable_transience
右侧默认为空,定义 starship_transient_rprompt_func 即可自定义,例如显示最后一条命令启动的时间:
function starship_transient_rprompt_func
starship module time
end
starship init fish | source
enable_transience
查看仓库的 Fish 初始化脚本 可以发现,enable_transience / disable_transience 的真实作用是注册/擦除回车键的临时绑定:它把 \r 绑定到内部函数 __starship_transient_execute,并在 fish_postexec 事件(__starship_reset_transient)后重置状态。同时脚本在执行时会把 --terminal-width、--status、--pipestatus、--keymap、--cmd-duration、--jobs 等上下文参数透传给 starship_transient_prompt_func,这与 Cmd 场景下手动透传 --keymap 的意图一致——自定义函数相当于一次对 starship module 子命令的代理调用。
4. Bash:基于 Ble.sh v0.4+ 的瞬时提示
Bash 需要借助 Ble.sh(v0.4 及以上版本)框架来实现瞬时提示。在 ~/.bashrc 中加入:
bleopt prompt_ps1_transient=<value>
这里的 <value> 是冒号分隔的字段组合,可用字段为 always、same-dir、trim,规则如下:
- 当
prompt_ps1_final为空且prompt_ps1_transient非空时,离开当前命令行后PS1指定的 prompt 会被擦除; - 若
<value>含trim,多行PS1只保留最后一行,其余行被擦除; - 否则命令行会如同设置了
PS1=一样被重绘; - 若
<value>含same-dir且当前工作目录与上一条命令结束时不同,则忽略prompt_ps1_transient选项(即回到不替换的行为)。
左右两侧的自定义写入 ~/.blerc(或 ~/.config/blesh/init.sh):
- 配置左侧替换内容:设置 Ble.sh 的
prompt_ps1_final选项,例如显示character模块:
bleopt prompt_ps1_final='$(starship module character)'
- 配置右侧替换内容:设置
prompt_rps1_final选项,例如显示最后一条命令启动的时间:
bleopt prompt_rps1_final='$(starship module time)'
二、自定义 pre-prompt 与 pre-execution 钩子
pre-prompt 钩子在每次绘制提示符之前执行,pre-execution 钩子在每条命令真正运行之前执行。Starship 依据各 shell 的能力给出了不同的注入方式。
Cmd(Clink):最灵活的 starship.lua 钩子
Clink 为 Cmd 提供了非常灵活的 pre-prompt / pre-exec API。按需修改 starship.lua 即可:
在每次绘制 prompt 之前运行自定义函数——定义 starship_preprompt_user_func,该函数接收当前 prompt 字符串。例如在 prompt 前打印一个火箭:
function starship_preprompt_user_func(prompt)
print("🚀")
end
load(io.popen('starship init cmd'):read("*a"))()
在每条命令执行之前运行自定义函数——定义 starship_precmd_user_func,该函数接收即将执行的命令行字符串。例如打印将要执行的命令:
function starship_precmd_user_func(line)
print("Executing: "..line)
end
load(io.popen('starship init cmd'):read("*a"))()
Bash:starship_precmd_user_func 与 DEBUG trap
Bash 不像多数 shell 那样具备正式的 preexec/precmd 框架,因此难以提供完全可自定义的钩子;但 Starship 允许你在 prompt 渲染流程中有限地插入自己的函数:
- 绘制 prompt 之前:定义函数并把其名字赋给
starship_precmd_user_func。例如:
function blastoff(){
echo "🚀"
}
starship_precmd_user_func="blastoff"
- 命令执行之前:可借助 Bash 的
DEBUGtrap 机制。但必须在初始化 Starship 之前捕获 DEBUG 信号——Starship 会保留 DEBUG trap 的值,但如果 trap 在 Starship 启动之后被覆盖,部分功能将失效:
function blastoff(){
echo "🚀"
}
trap blastoff DEBUG # Trap DEBUG *before* running starship
set -o functrace
eval $(starship init bash)
set +o functrace
对应的 Bash 初始化脚本见 src/init/starship.bash,其内部会读取 starship_precmd_user_func 变量并将其整合进 prompt 渲染流程。
PowerShell:Invoke-Starship-PreCommand
PowerShell 同样没有官方 preexec/precmd 框架,但可以通过定义 Invoke-Starship-PreCommand 有限地插入自己的函数:
function Invoke-Starship-PreCommand {
$host.ui.Write("🚀")
}
由前文可知,src/init/starship.ps1 的渲染流程会在合适时机调用该函数,因此定义完成后重启会话或重新 source 初始化即可生效。
三、修改终端窗口标题
部分 shell prompt 会自动修改窗口标题(例如反映当前目录,Fish 默认就这么做),但 Starship 本身不负责标题管理。官方文档给出了在 bash、zsh、cmd、powershell 中手动实现的方法。
首先定义一个修改标题的函数(Bash 与 zsh 中写法相同),其中可自由使用 $USER、$HOSTNAME、$PWD 等变量:
function set_win_title(){
echo -ne "\033]0; YOUR_WINDOW_TITLE_HERE \007"
}
- 在 Bash 中,把它设为 Starship 的 precmd 函数:
starship_precmd_user_func="set_win_title"
- 在 zsh 中,把它加入
precmd_functions数组:
precmd_functions+=(set_win_title)
效果满意后,把这些行写入对应 shell 配置文件(~/.bashrc 或 ~/.zshrc)即可永久生效。
例如,想要在终端标签页标题中显示当前目录名,向 ~/.bashrc 或 ~/.zshrc 追加:
function set_win_title(){
echo -ne "\033]0; $(basename "$PWD") \007"
}
starship_precmd_user_func="set_win_title"
在 Cmd 中,改用前文提到的 starship_preprompt_user_func 函数来设置标题:
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"))()
在 PowerShell 中,创建名为 Invoke-Starship-PreCommand 的函数即可实现类似输出:
# edit $PROFILE
function Invoke-Starship-PreCommand {
$host.ui.RawUI.WindowTitle = "$env:USERNAME@$env:COMPUTERNAME`: $pwd `a"
}
Invoke-Expression (&starship init powershell)
注意 PowerShell 示例中反引号的作用:`: 对冒号转义以阻止其被当作 drive 限定符解析,`a 则输出 BEL 字符用于结束 OSC 标题序列。
四、启用右侧提示(right_format)
部分 shell 支持在与输入同一行渲染“右侧提示”(right prompt)。Starship 通过 right_format 选项设置其内容:凡可用于 format 的模块都能用于 right_format;而 $all 变量只会包含那些没有在 format 或 right_format 中被显式使用的模块。
[!NOTE] 右侧提示是跟随输入位置的单行内容。若想在多行 prompt 中把模块对齐到输入行上方的右端,应使用 fill 模块(仓库各语言对应文档见 docs/es-ES/config/README.md)。
right_format 目前支持以下 shell:elvish、fish、zsh、xonsh、cmd、nushell、bash。其中 bash 需要安装 Ble.sh v0.4 及以上版本才能使用右侧提示(相关机制见上文瞬时提示章节)。
示例
# ~/.config/starship.toml
# 一个极简的左侧 prompt
format = """$character"""
# 把其余模块移到右侧
right_format = """$all"""
效果类似:
▶ starship on rprompt [!] is 📦 v0.57.0 via 🦀 v1.54.0 took 17s
使用 zsh(v5.0.5+)时,zsh 会给右侧 prompt 默认追加一个尾随空格。当结合 Starship 的 $fill 模块使用时,这个空格会造成对齐问题;在 .zshrc 中加入以下配置即可消除间隙:
ZLE_RPROMPT_INDENT=0
五、续行提示(continuation_prompt)
部分 shell 除普通提示符外还支持“续行提示符”:当用户输入了不完整的语句(例如只输入了左括号或引号)时,它取代普通提示符显示。Starship 通过 continuation_prompt 选项设置续行内容,默认值为 '∙ '。
[!NOTE]
continuation_prompt必须设置为不包含任何变量的字面字符串。续行提示仅适用于以下 shell:
bash、zsh、PowerShell。
示例
# ~/.config/starship.toml
# 一个显示两个实心箭头的续行提示
continuation_prompt = '▶▶ '
六、为 Claude Code 定制 Statusline
Starship 支持在 Claude Code(Anthropic 面向 Claude 的交互式编码 CLI)内部运行时,显示一条自定义的 statusline,实时反映 Claude 会话信息,包括当前使用的模型、上下文窗口占用以及会话费用。官方文档给出的是《Claude Code statusline 文档》中的完整机制说明,这里基于仓库源码给出仓库侧的落地细节。
启用与整体概览
在 Claude Code 中执行 /statusline 并让其配置 Starship,或手动在 .claude/settings.json 中加入:
{
"statusLine": {
"type": "command",
"command": "starship statusline claude-code"
}
}
随后在 ~/.config/starship.toml 中定制外观。当以 starship statusline claude-code 调用时,Starship 通过 stdin 接收 Claude Code 会话数据,并使用名为 claude-code 的专用 profile 渲染状态栏。该 profile 内建三个专用模块:
claude_model:显示当前使用的 Claude 模型;claude_context:以可视化刻度(gauge)显示上下文窗口占用;claude_cost:显示会话费用与统计信息。
默认的 profile 格式为:
[profiles]
claude-code = "$claude_model$git_branch$claude_context$claude_cost"
从源码侧看,stdin 会话数据由 src/utils/statusline.rs 中的 ClaudeCodeData 结构体反序列化而来,其字段与各模块变量一一对应:ModelInfo { id, display_name }、ContextWindow { context_window_size, total_input_tokens, total_output_tokens, used_percentage, current_usage }、CostInfo { total_cost_usd, total_duration_ms, total_api_duration_ms, total_lines_added, total_lines_removed } 等。仓库测试用例(见同一文件 #[cfg(test)] 部分)验证了“会话开始时 current_usage / used_percentage 为 null 也可正常解析(按 0 处理)”、“完整载荷字段解析正确”以及“类型错误会抛错而非静默降级”等边界行为——这解释了为什么会话刚开始、尚无 token 统计时 statusline 依然能稳定渲染。
基础定制示例
你可以通过修改 claude-code profile 及各模块配置来自定义状态栏:
# ~/.config/starship.toml
# 自定义 claude-code profile
[profiles]
claude-code = "$claude_model$claude_context$claude_cost"
# 配置各模块
[claude_model]
format = "$symbol$model "
symbol = "🤖 "
style = "bold blue"
[claude_context]
format = "$gauge $percentage "
gauge_width = 10
[claude_cost]
format = "$symbol$cost "
symbol = "💰 "
模块一:claude_model
显示当前会话使用的 Claude 模型。
选项:
| 选项 | 默认值 | 说明 |
|---|---|---|
format |
'$symbol$model ' |
模块的格式字符串。 |
symbol |
'🤖 ' |
模型名称前显示的符号。 |
style |
'bold blue' |
模块样式。 |
model_aliases |
{} |
将模型 ID 或显示名映射为较短别名的表,优先匹配 ID,再匹配显示名。 |
disabled |
false |
是否禁用 claude_model 模块。 |
变量:
| 变量 | 示例 | 说明 |
|---|---|---|
| model | Claude 3.5 Sonnet |
当前模型的显示名 |
| model_id | claude-3-5-sonnet |
模型 ID |
| symbol | 对应 symbol 选项的值 |
|
| style* | 对应 style 选项的值 |
*:该变量只能用于样式字符串的一部分。
示例: 基础定制,以及为供应商特定模型 ID / 显示名设置别名:
# ~/.config/starship.toml
# 基础定制
[claude_model]
format = "on $symbol$model "
symbol = "🧠 "
style = "bold cyan"
# 为供应商特定模型名设置别名,可按模型 ID 或显示名
[claude_model.model_aliases]
# 按供应商模型 ID 设置别名(例如 AWS Bedrock)
"global.anthropic.claude-sonnet-4-5-20250929-v1:0" = "Sonnet 4.5"
# 按显示名设置别名
"Claude Sonnet 4.5 (Vendor Proxy)" = "Sonnet"
模块二:claude_context
以百分比与可视化刻度展示上下文窗口占用,样式会依据可配置阈值自动切换。该模块的配置结构定义于 src/configs/claude_context.rs。
选项:
| 选项 | 默认值 | 说明 |
|---|---|---|
format |
'$gauge $percentage ' |
模块的格式字符串。 |
symbol |
'' |
刻度之前显示的符号。 |
gauge_width |
5 |
刻度宽度(字符数)。 |
gauge_full_symbol |
'█' |
刻度中“已填满”段使用的符号。 |
gauge_partial_symbol |
'▒' |
刻度中“部分填充”段使用的符号。 |
gauge_empty_symbol |
'░' |
刻度中“空白”段使用的符号。 |
display |
见下文 | 阈值与样式配置数组。 |
disabled |
false |
是否禁用 claude_context 模块。 |
Display(阈值显示配置): display 是一个对象数组,定义不同占用档位的阈值与样式。模块采用“匹配到的最高阈值”对应样式;若该档 hidden 为 true 则隐藏模块。
| 选项 | 默认值 | 说明 |
|---|---|---|
threshold |
0.0 |
匹配该配置所需的最低上下文占用百分比(注意:百分比数值按百分比读数理解,见下方示例中的 0/30/60/80)。 |
style |
bold green |
命中该配置时使用的 style 值。 |
hidden |
false |
命中该配置时是否隐藏模块。 |
[[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"
变量:
| 变量 | 示例 | 说明 |
|---|---|---|
| gauge | ██▒░░ |
上下文占用的可视化表示 |
| percentage | 65% |
以百分比表示的上下文占用 |
| input_tokens | 45.2k |
会话累计输入 token 数 |
| output_tokens | 12.3k |
会话累计输出 token 数 |
| curr_input_tokens | 5.1k |
最近一次 API 调用的输入 token 数 |
| curr_output_tokens | 1.2k |
最近一次 API 调用的输出 token 数 |
| curr_cache_creation_tokens | 1.5k |
最近一次 API 调用的缓存创建 token 数 |
| curr_cache_read_tokens | 23.4k |
最近一次 API 调用的缓存读取 token 数 |
| total_tokens | 200k |
上下文窗口总大小 |
| symbol | 对应 symbol 选项的值 |
|
| style* | 与命中的 display 阈值对应的样式 |
*:该变量只能用于样式字符串的一部分。
示例:
只显示刻度的极简模式:
# ~/.config/starship.toml
[claude_context]
format = "$gauge "
gauge_width = 10
展示详细 token 信息:
# ~/.config/starship.toml
[claude_context]
format = "$percentage ($input_tokens in / $output_tokens out) "
自定义刻度符号(可用 "" 留空部分符号):
# ~/.config/starship.toml
[claude_context]
gauge_full_symbol = "▰"
gauge_partial_symbol = ""
gauge_empty_symbol = "▱"
gauge_width = 10
format = "$gauge "
自定义阈值档位:
# ~/.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
以美元为单位显示当前 Claude Code 会话的累计费用。与 claude_context 一样支持基于阈值的样式切换。配置结构定义于 src/configs/claude_cost.rs。
选项:
| 选项 | 默认值 | 说明 |
|---|---|---|
format |
'$symbol(\\$$cost) ' |
模块的格式字符串。 |
symbol |
'💰 ' |
费用数字之前显示的符号。 |
display |
见下文 | 阈值与样式配置数组。 |
disabled |
false |
是否禁用 claude_cost 模块。 |
[!NOTE] 默认
format中的\\$表示一个转义后的美元符号,因此渲染结果形如💰 $1.23。这同样解释了为何自定义格式里写$cost时要搭配\\$$cost——首个\\$输出字面量$,$cost才是模块变量。
Display(阈值显示配置): 与 claude_context 类似,按美元费用匹配最高阈值并使用其样式,命中 hidden = true 的配置则隐藏模块。其默认配置(即官方文档给出的默认档位)在源码 Default for ClaudeCostConfig 中实现:
| 选项 | 默认值 | 说明 |
|---|---|---|
threshold |
0.0 |
匹配该配置所需的最低费用(美元) |
style |
bold green |
命中该配置时使用的 style 值 |
hidden |
false |
命中该配置时是否隐藏模块 |
默认配置:
[[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"
变量:
| 变量 | 示例 | 说明 |
|---|---|---|
| cost | 1.23 |
会话总费用(美元,保留两位小数) |
| duration | 1m 30s |
会话总时长 |
| api_duration | 45s |
API 调用总耗时 |
| lines_added | 1.2k |
新增代码行数 |
| lines_removed | 500 |
删除代码行数 |
| symbol | 对应 symbol 选项的值 |
|
| style* | 与命中的 display 阈值对应的样式 |
*:该变量只能用于样式字符串的一部分。
示例:
带代码变更统计的费用显示、先隐藏直到费用超过 $0.10、以及时长信息展示:
# ~/.config/starship.toml
# 费用 + 代码变更统计
[claude_cost]
format = "$symbol$cost (+$lines_added -$lines_removed) "
# 费用未超过 $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"
# 展示时长信息
[claude_cost]
format = "$symbol$cost ($duration) "
七、样式字符串(Style Strings)精解
样式字符串是 Starship 模块中最常出现的组成部分,理解它才能真正自定义上面所有配置中 style = "..." 的含义。
样式字符串是一组以空白分隔的单词列表,不区分大小写(bold 与 BoLd 等价)。每个单词可以是以下之一:
bold(加粗)italic(斜体)underline(下划线)dimmed(暗化/减弱)inverted(反转前景与背景色)blink(闪烁)hidden(隐藏)strikethrough(删除线)bg:<color>(背景色)fg:<color>(前景色)<color>(前景色简写)none(无样式)
其中 <color> 是颜色说明符(详见下文)。fg:<color> 与 <color> 目前行为相同,但未来可能变化。<color> 还可以取 prev_fg 或 prev_bg,它们会分别求值为前一个元素的背景/前景色,若不可用则为 none。inverted 会交换前景与背景色,且单词顺序不影响结果。
关于 none 的语义需要格外注意:
- 只要
none不是bg:说明符的一部分,它会覆盖字符串中的其余所有 token——例如fg:red none fg:blue最终仍是“无任何样式”; bg:none会把背景设为终端默认色,因此fg:red bg:none等价于red或fg:red,而bg:green fg:red bg:none也等价于fg:red或red;- 未来版本可能把
none与其它样式 token 混用视为错误,故不建议依赖这一覆盖行为。
颜色说明符可以是以下三种之一:
- 标准终端色:
black、red、green、blue、yellow、purple、cyan、white;可加bright-前缀得到亮色版本(如bright-white); #+ 六位十六进制数,即 RGB 十六进制色码(如#ff0000);- 0–255 之间的数字,表示 8 位 ANSI 256 色码。
若为前景/背景指定了多个颜色,字符串中最后一个颜色优先。
终端兼容性提醒: 并非所有样式字符串都能在所有终端正确显示,已知问题包括:
- 多数终端默认禁用
blink(闪烁)支持; - iTerm 不支持
hidden; - macOS 自带 Terminal.app 默认不支持
strikethrough。
在设计跨平台配置时,建议避免把这些样式作为承载关键信息的唯一手段。
结语:从配置到机制的理解闭环
回顾整篇内容可以看到 Starship 高级配置存在两条清晰的线索:其一是各 shell 约定函数名——无论是 PowerShell 的 Invoke-Starship-*、Fish 的 starship_transient_*_func、Bash 的 starship_precmd_user_func 与 DEBUG trap,还是 Cmd 下 starship.lua 中的同名函数,底层都由 src/init 目录下对应的初始化脚本在渲染流程的特定时点统一调用;其二是**starship module <name> 子命令**——所有“用模块替换瞬时提示符/右侧提示”的示例本质上都是对模块渲染能力的复用。而对 Claude Code statusline、right_format、continuation_prompt 等特性的理解,则可直接回溯至 src/modules/claude_model.rs、src/modules/claude_context.rs、src/modules/claude_cost.rs 等模块实现与 src/configs 目录下的默认值定义。若你希望进一步定制这些模块行为,建议先查阅 docs/config/README.md 掌握基础配置语法,再回到本指南组合出属于你自己的提示符工作流。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0626
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00