firestart:一行命令启动你的日常应用和网页
为什么做这个
发现自己每天每次使用电脑时都要一系列固定的操作:
码代码时要打开 VSCode,查资料要打开浏览器,记笔记会打开Typora,遇到难题问 AI 要启动 Deepseek Harness、Chatbox,喜欢边听歌边工作,摸鱼时偶尔还会刷会知乎、 bilibili…… 于是想着能不能把这些高频操作“打包”起来,做个 CLI 工具,一行命令启动我常用的软件和网页。
安装

已发布到PyPi,可通过以下命令安装
pip install firestart
如果显示报错,可能是您所用的PyPI 镜像并未同步更新,请临时使用PyPI官方源
pip install --index-url https://pypi.org/simple firestart
安装完成后,终端里直接用 fire 命令。
核心概念
firestart 里存的东西,分两类:
| 类型 | 存的是什么 | 能直接启动吗 | 例子 |
|---|---|---|---|
| “单发弹药” | 实际内容(网站 URL 或 exe 路径 + 启动参数) | 能 | bilibili、vscode |
| “组合弹药” | 一组“单发弹药名” | 一行命令逐个启动 | dev(启动 vscode + terminal + typora) |
命令详解


🔹add — 添加单发弹药
fire add <名称> <目标> [--args "参数1,参数2"] [--cwd "工作目录"]
最常见的三个场景:
1. 添加网站
fire add bilibili https://www.bilibili.com
fire add zhihu https://www.zhihu.com
2. 添加本地应用
fire add typora "C:\Program Files\Typora\Typora.exe"
3. 带启动参数和工作目录
# VSCode 启动后直接打开指定项目
fire add code "C:\Users\你\AppData\Local\Programs\Microsoft VS Code\Code.exe" --args "C:\project\myapp"
--args 多个参数用逗号分隔:例如--args "-p,8080,-v" → ['-p', '8080', '-v']
🔹workspace — 管理组合弹药
fire workspace add <名称> <弹药1> <弹药2> ... # 创建组合弹药
fire workspace list # 列出所有组合弹药
fire workspace remove <名称> # 删除组合弹药
创建组合弹药前必须先有单发弹药——组合弹药存的是单发弹药的引用名,不是拷贝。
# 先储备弹药
fire add vscode "C:\...\vscode.exe" --args "C:\project"
fire add terminal "wt.exe"
fire add typora "C:\Program Files\Typora\Typora.exe"
# 再组合成组合弹药
fire workspace add dev vscode terminal typora
# 以后一条命令同时启动全部
fire dev
🔹点火
fire <弹药名>
直接敲名字就点燃——不需要写 open、不需要写 start。如果是组合弹药,会同时启动里面所有弹药。
fire bilibili # 打开 B 站
fire dev # 点燃组合弹药:VSCode + 终端 + Notion 一起开
fire morning # 摸鱼组合弹药:知乎 + B 站 + 网易云
remove — 删除单发弹药
fire remove <名称>
⚠️ 组合弹药请用 fire workspace remove <名称>,不用 fire remove。
🔹list — 列出弹药库
fire list # 简洁模式
fire list -v # 详细模式(显示完整路径和参数)
输出示例:
单发弹药:
bilibili
zhihu
code
组合弹药:
dev (3 发)
morning (3 发)
🔹browser — 管理默认浏览器
打开网站时,默认用系统浏览器。如果你常用的是其他浏览器,可以全局设置一次:
fire browser set "C:\Program Files\Mozilla Firefox\firefox.exe" # 设置
fire browser show # 查看当前设置
fire browser clear # 清除,恢复系统默认
设置后,用FireStart启动所有网站都会用这个浏览器打开。如果浏览器被卸载了、启动失败,会自动更改到系统默认浏览器,不会卡死。
🔹config — 打开配置文件
fire config
用系统默认编辑器(Windows 是记事本)打开配置文件。配置文件是纯 JSON,你可以直接手写或手动编辑。
配置文件位置:~/.firestart.json(用户主目录下,比如C:\Users\Administrator\.firestart.json)
🔹export / import — 导入导出(换电脑必备)
fire export # 输出到终端
fire export my-config.json # 导出到文件
fire import my-config.json # 导入(默认合并到现有配置)
fire import my-config.json --overwrite # 覆盖现有配置
示例配置文件格式
~/.firestart.json 的完整格式:
{
"_settings": {
"browser": "C:\\Program Files\\Mozilla Firefox\\firefox.exe"
},
"bilibili": "https://www.bilibili.com",
"zhihu": "https://www.zhihu.com",
"code": {
"target": "C:\\Users\\你\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
"args": ["C:\\project\\myapp"]
},
"dev": {
"items": ["bilibili", "zhihu", "code"]
}
}
| key | 含义 |
|---|---|
_settings | 全局设置默认浏览器 |
| 字符串值 | 网站 URL 或 本地程序路径 |
{target, args} | {本地程序路径,启动参数} |
{items: [...]} | 组合弹药格式 |
项目结构
firestart/
├── __init__.py # 版本号
├── cli.py # 核心
└── config.py # 配置文件读写 + 常量
setup.py # 打包配置
requirements.txt # 依赖(click>=8.0.0)
核心技术点速览
| 技术 | 说明 |
|---|---|
click 框架 | 作为 CLI 入口框架,定义 add/workspace 等核心命令组 |
继承 click.Group | 重写 resolve_command,将非子命令参数识别为「弹药」触发启动 |
subprocess.Popen | 非阻塞,启动后立即返回,CLI不卡壳 |
webbrowser 标准库 | 没配自定义浏览器时的 fallback使用默认浏览器 |
| JSON + pathlib | 跨平台,配置文件在用户主目录 |
创作声明
灵感源于日常使用电脑的高频痛点。技术栈选择及项目整体设计由本人完成,代码编写有采用 AI 辅助实现。二次开发请注明出处。
遵循Unix设计哲学:“只做并做好一件事”。对我而言,能用技术解决自身一个微小而真切的需求,便是最大的欣慰。
更多推荐


所有评论(0)