终端与 AI

joppa 命令

安装 joppa 命令,从终端或脚本控制 Joppa:状态、进程、服务、日志、诊断、数据库和代理,支持文本或 JSON 输出。

joppa 用于控制正在运行的应用。它能做的事与窗口相同,只是在终端或脚本中进行。

安装

设置 › 命令行 › 安装 joppa。Joppa 会为应用内附带的命令创建一个链接,尽可能放在 /usr/local/bin,否则放在 ~/.local/bin。如果该文件夹不在你的 PATH 中,设置中会给出需要添加到 ~/.zshrc 的那一行。

joppa version

命令

joppa                         # 终端中的全屏应用(TUI)
joppa status                  # 代理、CA、项目和域名、服务
joppa services                # 服务及其状态
joppa start postgres          # 启动一个服务
joppa stop redis              # 停止一个服务
joppa logs postgres -n 200 -f # 日志,加 -f 持续输出
joppa procs                   # 项目的进程
joppa start acme              # 启动整个项目(全部启动)
joppa restart acme web        # 重启一个进程
joppa logs acme api --grep error # 某个进程的日志,经过筛选
joppa diagnose api.acme.test  # 这个域名为什么无响应
joppa share app.acme.test     # 在局域网中共享,附二维码
joppa dbs postgres            # 数据库及其连接 URL
joppa proxy start             # 或 stop
joppa open                    # 显示 Joppa 窗口
joppa mcp                     # MCP 服务器(见下文)
joppa uninstall               # 卸载 Joppa,包括此命令
命令 别名 作用
joppa 或 joppa tui 打开 TUI
joppa status st 代理、CA、项目、域名及其健康状态、服务
joppa services svc 服务及其状态
joppa start <service> 启动一个服务
joppa stop <service> 停止一个服务
joppa logs <service> log 日志:-n / --lines N(默认 100)、-f / --follow、--grep
joppa procs [项目] ps、processes 某个项目的进程,或所有有进程的项目:状态、端口、域名、运行时长、重启次数
joppa start <项目> [进程] 启动一个进程(及其依赖的进程),或整个项目
joppa stop <项目> [进程] 停止一个进程,或整个项目
joppa restart <项目> [进程] 重启一个进程,或所有正在运行或已勾选的进程
joppa logs <项目> [进程] log 一个进程的输出,或所有进程的输出(以进程名为前缀):-n、-f、--grep
joppa diagnose <域名|项目> doctor 域名为什么无响应:代理、DNS、证书、端口、进程、响应
joppa share [域名|项目] partager 在局域网中共享域名;--public 通过隧道共享(参见 共享域名)。不带参数时:列出已打开的共享
joppa share stop <域名> 停止共享(--public:只关闭隧道)
joppa dbs <service> databases 某个服务器上的数据库及其 URL
joppa db <操作> <服务> … 数据库的导出、导入、复制和快照(参见 数据库的数据)
joppa proxy start|stop 启动或停止代理
joppa open 显示窗口
joppa mcp 在 stdio 上运行 MCP 服务器
joppa uninstall 卸载 Joppa(见卸载)
joppa help、joppa version 帮助和版本

指定服务

你可以用任意方式指定服务:postgres、pg17、"PostgreSQL 17"、它的端口 5432 或它的标识符。

指定项目及其进程

项目可以用它的名称、标识符或其中一个域名来指定;进程用它在 进程 标签页中的名称来指定(web、api、queue…)。joppa start、stop 和 logs 既接受服务也接受项目:只给一个词时,Joppa 会先查找服务。如果这个词同时指向一个服务和一个项目,命令会提示你:请改写服务的端口或项目的某个域名。

joppa start 和 joppa restart 会等待进程响应或崩溃(最多 30 秒),然后显示它们的状态;崩溃的进程后面会附上其日志的最后几行,命令以 1 退出。

joppa diagnose 检查浏览器与开发服务器之间的每个环节,并说明如何修复缺失的部分(详细信息为英文,与 MCP 工具 diagnose 相同)。如果某个域名无响应,它以 1 退出。

选项

选项 效果
--json、-j JSON 输出,供脚本使用(适用于所有命令)
--launch 如果 Joppa 未运行,则直接启动它,不再询问
--grep <文本>、-g joppa logs:只显示包含该文本的行(不区分大小写)
--public joppa share:通过隧道生成公开链接(Joppa Pro)
--tunnel <客户端> joppa share:cloudflared(默认)、ngrok、localhost-run 或 pinggy;隐含 --public
--install joppa share --public:缺少 cloudflared 时下载它(会校验指纹)
--theme nuit|jour|auto TUI 主题
--no-motion 关闭动画(或 JOPPA_NO_MOTION=1)
-h、-v 帮助、版本

共享域名

joppa share 在终端中完成 共享 窗口所做的事(参见 共享网站)。共享存在于应用中:命令结束后它仍保持打开,直到 joppa share stop 或 Joppa 退出。

joppa share app.acme.test                    # http://192.168.1.20:41306 及其二维码
joppa share acme                             # 项目的第一个已启用域名
joppa share app.acme.test --public           # https://….trycloudflare.com(Joppa Pro)
joppa share app.acme.test --public --install # 缺少 cloudflared 时先下载
joppa share app.acme.test --tunnel pinggy    # 或 ngrok、localhost-run
joppa share                                  # 已共享的域名
joppa share stop app.acme.test               # 关闭局域网共享和隧道
joppa share stop app.acme.test --public      # 只关闭隧道

在终端中,地址会连同一个可扫描的二维码一起显示。使用 --public 时,命令会等待隧道获得地址(最多 50 秒);如果隧道在此之前关闭,命令会显示其最后的消息并以 1 退出。

数据库的数据

joppa db 在终端中完成服务页面上 导出…、导入…、复制… 和 快照… 所做的事(参见 数据库)。服务器必须正在运行;相对路径从当前文件夹开始。

joppa db export postgres acme                       # ./acme-2026-10-23.sql.gz
joppa db export mysql shop ~/shop.sql               # .sql、.sql.gz 或 .dump(PostgreSQL)
joppa db import postgres ~/acme.sql.gz              # 导入 acme 数据库(按文件名)
joppa db import postgres ~/acme.dump --into acme_test
joppa db import postgres ~/joppa-postgres-17-2026-10-20.sql --replace   # 整个服务器
joppa db clone postgres acme acme_feature
joppa db snapshot postgres acme --name "迁移之前"
joppa db snapshots postgres acme                    # 标识、日期、大小、名称
joppa db restore postgres acme 20261023-142501
命令 作用
joppa db export <服务> <数据库> [文件] 导出数据库;格式取决于扩展名(默认 .sql.gz)
joppa db import <服务> <文件> 导入 .sql、.sql.gz、.dump 或整个服务器的导出;--into <数据库> 选择数据库,--replace 替换已存在的数据库
joppa db clone <服务> <数据库> <副本> 在同一服务器上复制数据库
joppa db snapshot <服务> <数据库> 创建快照(Joppa Pro);--name <名称> 为其命名
joppa db snapshots <服务> <数据库> 数据库的快照,从新到旧
joppa db restore <服务> <数据库> <快照> 让数据库回到某个快照(Joppa Pro),之前会先为当前内容创建快照

没有 --replace 时,会替换数据库的导入会在改动任何内容之前停止,并建议另一个名称。服务器上缺少的 PostgreSQL 扩展会在导入前提示。

卸载

joppa uninstall 与 设置 › 卸载 的作用相同:列出 Joppa 在这台电脑上安装的内容,确认后将其移除。joppa 命令本身也会一并移除。默认移除现有的所有内容,服务的数据除外;Joppa 文件夹和应用会在 Joppa 退出后删除。参见文件和文件夹 › 完全移除。

joppa uninstall --dry-run            # 显示将移除的内容,不做任何改动
joppa uninstall                      # 先请求确认(o/N)
joppa uninstall --yes --volumes      # 不询问,连同服务的数据
joppa uninstall -y --keep license,app
选项 作用
--dry-run 只显示列表,不移除任何内容
--yes、-y 不请求确认(在终端之外必须使用)
--volumes 同时删除服务的数据(卷)及其容器
--keep <项目> 保留指定项:mcp、cli、shell、containers、volumes、ca、dns、license、data、app

如果某个步骤失败(取消了密码输入、运行时已停止…),其他步骤会继续,但 Joppa 文件夹和应用会保留,命令以 1 退出:修复后再次运行 joppa uninstall。

在脚本中

# 需要时启动 Joppa,然后在测试前启动 PostgreSQL
joppa start postgres --launch
joppa services --json | jq .

# 启动项目,如果有进程崩溃则失败
joppa start acme --json | jq '.processes[] | {name, status}'

退出码

代码 含义
0 成功
1 错误;启动时有进程崩溃,或 joppa diagnose 发现某个域名出现故障,也会返回此代码
2 命令或选项有误
3 Joppa 未运行

工作原理

应用会在其配置文件夹中写入一个 control.json 文件(包含一个端口和一个令牌,只有你可以读取)。命令通过它与应用的本地 API 通信。如果 Joppa 没有运行,joppa 会提示你并提议启动它。

getjoppa.com › support

加载中

发送不了?请写信至 [email protected]。只是简单的问题:[email protected]。