llamafile 命令速查表 - 单文件本地 LLM 运行与推理

llamafile 是 Mozilla 提出的"单个可执行文件跑本地 LLM"方案,面向想要零依赖、拷贝即运行模型,尤其适合分发/离线/演示场景的开发者。它把模型权重与 llama.cpp 打包进一个跨平台可执行文件,并内置 OpenAI 兼容服务;本表帮你掌握单文件启动、--server 服务化、-m 加载 GGUF、-ngl 设置 GPU 层数与 --temp 采样温度。

AI 命令行·共 25 条命令·最后更新 2026-08-23
llamafilelocal-llmaicliggufoffline

获取与运行 5

curl -L <release-url> > llamafile && chmod +x llamafile
下载并赋予可执行权限
./mistral.llamafile
直接运行(自带权重则起 Web UI :8080)
./llamafile --help
查看全部参数
Windows 改名为 llamafile.exe
Windows 需 .exe 后缀才能运行
sh -c ./llamafile
zsh 老旧版本兜底启动方式

OpenAI 兼容服务 5

./xxx.llamafile --server --nobrowser
起 OpenAI 兼容服务(默认 :8080)
./xxx.llamafile --server --port 8081
指定端口
./xxx.llamafile --server --host 0.0.0.0
允许局域网/外部访问
curl http://localhost:8080/v1/models
列出服务暴露的模型
openai_api_base=http://localhost:8080/v1
OpenAI SDK 指向本地服务

加载外部权重 5

./llamafile -m ~/weights/foo.gguf
用外部 GGUF 权重运行
./llamafile -m model.gguf --temp 0.7 -p "..."
设温度并给提示词
./llamafile -m model.gguf --n-gpu-layers 35
开 GPU 加速(层数越多越快)
./llamafile -m model.gguf --image photo.jpg -p "描述这张图"
多模态(需 mmproj)
./llamafile -m model.gguf --grammar 'root ::= "yes" | "no"'
用 BNF 约束输出格式

嵌入与离线 5

./embed.llamafile --server --embedding --port 8081
起嵌入模型服务(RAG 用)
offline 完全本地,无数据出网
隐私/离线场景优势
./llamafile -m w.gguf --no-display-prompt
脚本化时隐藏提示符噪声
zipalign 把 .args 嵌进可执行
固化默认参数,双击即跑
单文件分发,跨平台(mac/win/linux/bsd)
构建一次到处跑

实用技巧 5

服务默认 :8080
与 vLLM 的 :8000 不同,注意客户端
--ngl 越多越快但吃显存
按显卡显存设层数
自带权重版起 Web UI
免命令行也能聊
离线优先选它
无网/涉密环境最稳
--grammar 控输出
脚本里要稳定结构用它

命令示例

自带权重的文件直接跑,起 Web UI

./mistral.llamafile

不起 --server 时它会自己拉起 :8080 上的界面,浏览器打开就能聊。端口被占用时改用 --server --port 另开一个。

起无头服务并确认暴露的模型

./xxx.llamafile --server --nobrowser curl http://localhost:8080/v1/models

返回里带的是服务实际加载的模型标识,客户端写模型名时要用它。openai_api_base=http://localhost:8080/v1 把 SDK 指过来。

加载外部权重并打开 GPU 加速

./llamafile -m model.gguf --n-gpu-layers 35

层数是偏好的量:全部放上 GPU 最快,也最吃显存。报显存不足就把 35 往下调,一步步试。

用 BNF 把输出锁死在固定取值上

./llamafile -m model.gguf --grammar 'root ::= "yes" | "no"'

脚本里要比对返回字符串时,这是最省心的做法:模型只能在 yes 和 no 里选。再配上 --no-display-prompt,输出里连提示符都不会有。

常见坑与注意事项

  • Windows 上必须把文件改名为 llamafile.exe 才认得出来执行,改完先用 ./llamafile --help 确认能跑通再往下走。
  • --server --host 0.0.0.0 会把一个没有鉴权的推理端点暴露到局域网甚至公网,任何人拿到地址就能用它跑推理;只在你信任的网络里这么开。
  • --n-gpu-layers 设得超过显存承受范围会直接加载失败或把系统拖到交换;按显卡实际显存逐级调,别照抄别人的 35。
  • -m 路径写错、或 GGUF 与 llama.cpp 版本不兼容都会在加载阶段报错而不是在生成阶段;先用 ./llamafile --help 确认参数名与当前版本一致。
  • 自带权重版直跑同样会占用 8080,和已经在跑的服务撞端口;脚本里别忘了 --no-display-prompt,否则管道里会混进提示符。sh -c ./llamafile 只是 zsh 老版本的兜底写法,别当成通用启动方式照抄。

提示

  • llamafile 把 llama.cpp + Cosmopolitan Libc 打包成"单文件可执行",构建一次跨 macOS/Windows/Linux/BSD 运行,是本地/离线跑 LLM 最省事的方案。
  • 带权重的 server 版直接起 Web UI(:8080);用外部 GGUF 时 -m 指定路径,--ngl 控制 GPU 层数(越多越快但越吃显存)。
  • OpenAI 兼容服务默认 :8080(注意不是 vLLM 的 :8000),客户端改 base_url 即可接入;嵌入模型用 --embedding 起服务做 RAG。
  • 完全本地、数据不出网——隐私/涉密/无网环境首选;--grammar 能用 BNF 约束输出格式,脚本化调用更稳。

常见问题

直接运行和 --server 有什么区别?

自带权重的可执行文件直接跑(./mistral.llamafile)会在 :8080 起一个浏览器能打开的 Web UI,适合演示和随手聊。--server --nobrowser 则是起 OpenAI 兼容的无头服务,不开浏览器,供程序通过 HTTP 调用。两者默认端口都是 8080。

默认端口是多少,接 OpenAI SDK 要改哪里?

默认 8080,注意这和 vLLM 常用的 8000 不同,抄别人配置时很容易踩。把 openai_api_base 指向 http://localhost:8080/v1 即可;用 curl http://localhost:8080/v1/models 确认服务真的起来了、暴露的模型名是什么。端口冲突时用 --server --port 改。

怎么用外部的 GGUF 权重,并控制速度?

用 -m 指定权重文件路径,例如 ./llamafile -m ~/weights/foo.gguf。速度靠 --n-gpu-layers 调:层数越多越快,也越吃显存,从能跑的层数往上加,显存不够时会直接加载失败。采样随机性用 --temp 控制。

脚本化调用时输出里混进了提示符和闲聊,怎么处理?

加 --no-display-prompt 去掉提示符噪声,剩下的就是模型正文。如果脚本还需要稳定的结构化输出,用 --grammar 写一段 BNF 把可选值限死,例如只允许 yes 或 no,这样每次返回都能被下游程序解析。

要做 RAG 或者看图,参数怎么加?

RAG 用嵌入服务:./embed.llamafile --server --embedding --port 8081,把端口和主服务错开避免冲突。多模态用 ./llamafile -m model.gguf --image photo.jpg -p "Describe this image",这要求权重本身支持视觉,通常还需要配套的 mmproj 文件。

官方参考来源

下方为命令对应的官方权威文档,供你核对最新用法与深入查阅。

由 巧匠 维护

公开更新于 2026年8月23日,内容持续校对官方文档。

联系我们

命令或描述有误?提交反馈、商务合作或产品建议都可发送邮件给我们。

联系我们