Velos
High-performance AI-friendly process manager
Zig core + Rust shell. Next-gen PM2 alternative with native MCP server and zero-LLM smart log analysis.
______________________________________________________________________
为什么选择维洛斯?
PM2和Supervisor等流程管理器是在人工智能时代之前构建的。Velos是为AI代理管理您的基础设施的世界从头开始设计的:原生MCP服务器允许Claude、Codex或Gemini直接启动、停止和调试您的进程。当有东西坏了,Velos会实时检测错误,用人工智能进行分析,并可以自动修复错误——所有这些都不需要你打开终端。
在引擎盖下,Zig内核使守护进程保持在 约3 MB RAM 空闲,每个托管进程仅增长约65 KB(而PM2在Node.js/V8运行时的基线约为60 MB)。Rust shell提供了一个现代的CLI、智能日志分析和可观察性堆栈——所有这些都在一个二进制文件中,没有运行时依赖关系。
| Velos | PM2 | 主管 | |
|---|---|---|---|
| 守护进程内存 | 约3 MB | 约60 MB | 约30 MB |
| 用于AI代理的MCP服务器 | 内置(13个工具) | - | - |
| AI碰撞分析+自动修复 | 内置 | - | - |
| 运行时错误检测 | 哨兵般的 | - | - |
| 碰撞警报(电报) | 内置 | - | - |
| 智能日志分析 | 算法(零LLM成本) | - | - |
| 普罗米修斯+开放遥测 | 内置 | 插件 | - |
| REST API+WebSocket | 内置 | 插件 | - |
| 群集模式 | 是 | 是 | - |
| TUI仪表板 | 是 | 是 | - |
| 观看模式 | kqueue/inotify | chokidar | - |
快速开始
安装
# One-line installer (macOS / Linux)
curl -fsSL https://releases.velospm.dev/install.sh | bash
# macOS (Homebrew)
brew install Dave93/tap/velos
# Debian / Ubuntu
curl -fsSL https://releases.velospm.dev/setup-apt.sh | sudo bash
# RHEL / Fedora / CentOS
curl -fsSL https://releases.velospm.dev/setup-yum.sh | sudo bash
# From source (requires Zig 0.15+ and Rust 1.75+)
git clone https://github.com/Dave93/velos.git
cd velos
make build用法
# Start managing processes (daemon starts automatically)
velos start server.js --name api
velos start worker.py --name bg -i 4 # cluster mode: 4 instances
velos list # show all processes
velos logs api --summary # smart log summary
velos monit # TUI dashboard注: 守护程序在您的第一个CLI命令下自动启动。无需奔跑 velos daemon 手动。壳牌完井
# Bash
velos completions bash > ~/.bash_completion.d/velos
# Zsh
velos completions zsh > ~/.zfunc/_velos
# Fish
velos completions fish > ~/.config/fish/completions/velos.fish______________________________________________________________________
特性
进程管理
- 启动/停止/重新启动/重新加载 正常关机(SIGTERM->SIGKILL)
- 自动重启 具有崩溃循环检测(max_restart、min_uptime、exp_backoff)
- 群集模式 --多实例
velos start -i N或-i max - 观看模式 --文件更改时自动重新启动(kqueue/inotify)
- 内存限制 --当RSS超过阈值时重新启动(
--max-memory 150M) - Cron重新启动 --按计划定期重启(
--cron-restart "0 3 * * *") - 就绪信号 --通过IPC报告流程准备情况(
--wait-ready) - 平滑关闭 --通过IPC而不是SIGTERM发送JSON消息(
--shutdown-with-message) - 状态持久性 --跨守护进程重启保存/恢复进程列表
- 自动守护进程 --守护进程在第一个CLI命令时自动启动,无需手动设置
运行时错误检测(类似哨兵)
Velos监控正在运行的进程的stderr错误模式(回溯、TypeError、恐慌、致命、分段错误等),并发送通知 无需进程崩溃 --类似于Sentry检测运行时错误的方式。
- 可通过Telegram通知进行配置
- 每个进程60秒冷却,以防止通知垃圾邮件
- AI自动修复重启后被抑制(无重复警报)
- 独立于碰撞检测工作
智能日志引擎(零LLM成本)
所有“智能”功能都是算法——正则表达式、统计、启发式。没有LLM API调用。
- 自动分类器 --检测日志级别(正则表达式+JSON感知)
- 去重 --用计数和时间范围折叠重复的消息
- 模式检测 --趋势频率分析(上升/稳定/下降)
- 异常检测 --滑动窗口,平均值+标准偏差,2σ/3σ阈值
- 摘要 --健康评分(0-100)、顶部模式、异常、上次错误
velos logs api --summary
velos logs api --level error --grep "timeout" --dedupeMCP服务器(AI代理集成)
内建 模型上下文协议 配备13个AI代理工具的服务器。支持 标准 (当地)和 流式HTTP (远程)运输。
本地(stdio)——同一台机器上的AI客户端和Velos
Claude Code — .mcp.json in project root
{
"mcpServers": {
"velos": { "command": "velos", "args": ["mcp-server"] }
}
}Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"velos": { "command": "/Users/you/.velos/bin/velos", "args": ["mcp-server"] }
}
}Cursor — .cursor/mcp.json
{
"mcpServers": {
"velos": { "command": "velos", "args": ["mcp-server"] }
}
}OpenAI Codex — ~/.codex/config.toml
[mcp_servers.velos]
command = "velos"
args = ["mcp-server"]或者通过CLI: codex mcp add velos -- velos mcp-server
Gemini CLI — ~/.gemini/settings.json
{
"mcpServers": {
"velos": { "command": "velos", "args": ["mcp-server"] }
}
}远程(HTTP)——VPS上的Velos,笔记本电脑上的AI客户端
在您的VPS上启动MCP服务器:
velos mcp-server --port 8080然后使用远程URL配置您的AI客户端:
Claude Code / Claude Desktop / Cursor
{
"mcpServers": {
"velos": { "type": "url", "url": "http://your-vps:8080/mcp" }
}
}OpenAI Codex — ~/.codex/config.toml
[mcp_servers.velos]
url = "http://your-vps:8080/mcp"Gemini CLI — ~/.gemini/settings.json
{
"mcpServers": {
"velos": { "url": "http://your-vps:8080/mcp" }
}
}提示: 对于生产环境,请通过反向代理(nginx/caddy)或SSH隧道使用HTTPS: ``bash ssh -L 8080:localhost:8080 user@your-vps ``可用工具
| 工具 | 说明 |
|---|---|
process_list | 列出进程的状态、内存、正常运行时间 |
process_start | 启动新流程 |
process_stop | 按姓名或ID停止 |
process_restart | 按名称或ID重新启动 |
process_delete | 删除已停止的进程 |
process_info | 详细信息(配置+状态+指标) |
log_read | 最后N行带电平滤波器 |
log_search | 带时间范围的正则表达式搜索 |
log_summary | 健康评分、模式、异常(~150个标记vs 50K行) |
health_check | 总体+每个流程的健康评分 |
metrics_snapshot | 当前CPU、RAM、重启、正常运行时间 |
config_get | 工艺配置 |
config_set | 修改配置 *(计划中)* |
完整参考: docs/mcp-tools.md
AI输出模式(--ai)
这 --ai flag输出带有缩写键的紧凑JSON,旨在将Velos输出传输到LLM或AI代理时最大限度地减少令牌使用。
# Standard output
velos list
# ID Name PID Status Memory Uptime Restarts
# 0 api 1234 online 45.2 MB 2h 30m 0
# JSON output (full keys)
velos list --json
# [{"id": 0, "name": "api", "pid": 1234, "status": "online", "memory_bytes": 47395840, ...}]
# AI output (abbreviated keys, ~40% fewer tokens)
velos list --ai
# [{"n":"api","i":0,"s":"online","m":47395840,"u":9000000,"r":0,"p":1234}]关键缩写: n=名称, i=id, s=状态, p=pid, m=内存(字节), u=正常运行时间(ms), r=重新启动, c=cpu(%), t=时间戳, l=水平
支持的命令: velos list --ai, velos info --ai, velos logs --ai
AI碰撞分析与自动修复
当进程崩溃时,Velos可以使用AI分析错误并自动修复错误。支持 人类 (克劳德)和 OpenAI兼容 供应商(OpenAI、OpenRouter、Groq、Ollama、xAI)。
# Configure AI provider
velos config set ai.provider anthropic
velos config set ai.api_key sk-ant-...
velos config set ai.model claude-sonnet-4-20250514
# Optional: enable auto-analysis on crash
velos config set ai.auto_analyze true
# Configure Telegram for crash notifications
velos config set telegram.bot_token 123456:ABC...
velos config set telegram.chat_id -100123456789
velos config set notifications.language ru # en or ru崩溃或运行时错误:收集日志、解析堆栈跟踪、提取源代码、运行AI分析,并发送Telegram通知 修复 / 忽略 内联按钮。人工智能修复成功后,该过程会自动重新启动,并抑制通知以防止重复警报。
# Manual commands
velos ai list # list crash records
velos ai analyze # re-analyze a crash
velos ai fix # run AI agent to auto-fix
velos ai ignore # mark as ignoredAI修复代理有9个工具:读取/编辑/创建/删除文件、grep、glob、列表目录、运行命令和git diff——所有这些都被沙盒到项目目录中。
支持的AI提供商: 人类 (克劳德), 开放人工智能, 开放路由, 格罗克, 奥拉玛, 扩展应用识别 -任何与OpenAI兼容的API。
监控和指标
- TUI仪表板 (
velos monit)--实时进程表、内存火花线、实时日志 - 普罗米修斯端点 (
velos metrics -p 9615)--刮/metrics - 开放遥测 --OTLP导出(
--otel-endpoint) - REST API (
velos api -p 3100)-JSON API+WebSocket实时更新
______________________________________________________________________
CLI参考
所有命令支持 --json 用于机器可读输出。
| 命令 | 描述 | |
|---|---|---|
velos daemon | 在前台运行守护进程 | |
velos start | 启动一个进程(或 --config velos.toml) | |
velos stop | 停止进程 | |
velos restart | 重新启动进程 | |
velos reload | 优雅的重新加载 | |
velos list | 列出所有进程(别名: ls) | |
velos info | 详细工艺信息 | |
velos logs | 使用智能分析显示日志 | |
velos delete | 删除进程 | |
velos save | 将进程列表保存到状态文件 | |
velos resurrect | 恢复已保存的进程 | |
| `velos flush [name\ | id]` | 刷新日志文件 |
velos scale | 扩展集群实例(+N,-N,最大值) | |
velos monit | TUI监控仪表板 | |
velos metrics | 启动Prometheus导出程序 | |
velos api | 启动REST API+WebSocket服务器 | |
velos mcp-server | 启动MCP服务器(stdio或 --port 适用于流式HTTP) | |
velos startup | 启动时自动启动守护程序(launchd/systemd) | |
velos unstartup | 删除自动启动配置 | |
velos completions | 生成外壳完井 | |
velos config set | 设置全局配置值 | |
velos config get [key] | 显示配置值 | |
velos ai list | 列出碰撞记录 | |
velos ai fix | 使用AI代理自动修复崩溃 | |
velos ai analyze | 用AI重新分析碰撞 | |
velos ai ignore | 将碰撞标记为忽略 | |
velos ping | 检查守护进程连接 |
关键标志
# Start options
velos start app.js --name api --watch --max-memory 256M
velos start app.js -i 4 # cluster: 4 instances
velos start app.js -i max # cluster: CPU count instances
velos start app.js --cron-restart "0 3 * * *"
velos start app.js --wait-ready --shutdown-with-message
velos start --config velos.toml
# Log options
velos logs api -l 200 # last 200 lines
velos logs api --level error,warn # filter by level
velos logs api --grep "timeout" # regex filter
velos logs api --since "1h" --dedupe # last hour, deduplicated
velos logs api --summary # health score + patterns
# Output modes
velos list --json # full JSON
velos list --ai # compact JSON for LLM______________________________________________________________________
配置(TOML)
[apps.api]
script = "server.js"
cwd = "/app"
interpreter = "node"
autorestart = true
max_restarts = 15
min_uptime = 1000
kill_timeout = 5000
max_memory_restart = "150M"
# File watching
watch = true
watch_paths = ["src/", "config/"]
watch_ignore = ["node_modules", ".git", "*.log"]
watch_delay = 1000
# Environment variables
[apps.api.env]
NODE_ENV = "production"
PORT = "3000"
# Profile-specific env (--env production)
[apps.api.env_production]
DATABASE_URL = "postgres://prod:5432/db"
[apps.worker]
script = "worker.py"
interpreter = "python3"
autorestart = true
max_memory_restart = "256M"velos start --config velos.toml
velos start --config velos.toml --env production完整示例: config/velos.example.toml
堆栈示例
| 堆栈 | 配置 | 描述 |
|---|---|---|
| velos.toml | 通过文件监视、内存限制、环境配置文件进行快速/快速 | |
| Python快速API | velos.toml | Uvicorn+芹菜工人 |
| Rust二进制文件 | velos.toml | 编译的二进制文件具有指数回退重启功能 |
| 多进程 | velos.toml | 前端+后端+工作器在一个配置中 |
______________________________________________________________________
建筑
┌──────────────┐ Unix socket ┌──────────────────────┐
│ velos CLI │ │ Zig Daemon Core │
│ (Rust) │ binary protocol │ fork/exec, kqueue, │
│ clap, tokio │ │ CPU/RAM monitoring, │
└──────────────┘ │ log collector, │
│ file watcher, │
│ cron scheduler │
└──────────────────────┘Zig核心 (zig/src/):守护进程、fork/exec、IPC服务器、事件循环(kqueue/epoll)、通过系统调用进行CPU/RAM监控、具有错误模式检测的日志收集器、环形缓冲区、文件监视器、cron解析器、IPC通道(套接字对)。
锈壳 (crates/):带有27+命令的CLI(clap)、IPC客户端、TOML配置、智能日志引擎、MCP服务器(JSON-RPC stdio+Streamable HTTP)、Prometheus/OpenTelemetry、REST API(axum)、TUI(ratatui)、AI崩溃分析代理。
桥:Zig编译为 libvelos_core.a (静态库,C ABI)->通过FFI链接Rust。
| 板条箱 | 角色 |
|---|---|
velos-ffi | FFI绑定到Zig(extern“C”,安全包装) |
velos-core | 共享类型:ProcessConfig、ProcessState、IPC协议、错误 |
velos-client | IPC客户端(Unix套接字->守护进程) |
velos-config | TOML解析和验证 |
velos-log-engine | 智能日志:分类器、去重、模式、异常、摘要 |
velos-mcp | MCP服务器(标准输入、JSON-RPC、13个工具) |
velos-metrics | Prometheus导出器,OpenTetry |
velos-api | REST API+WebSocket(axum) |
velos-ai | AI崩溃分析、带工具的代理、多提供商 |
velos-cli | CLI二进制文件(clap、ratatui TUI) |
IPC协议:二进制,7字节标头(magic 0xVE10 +版本+长度LE u32)+消息包有效载荷。Unix套接字位于 ~/.velos/velos.sock.
完整架构: docs/ARCHITECTURE.md
______________________________________________________________________
运行时目录
~/.velos/
├── velos.sock # IPC Unix socket
├── velos.pid # Daemon PID file
├── config.toml # Global config (velos config set/get)
├── state.bin # Saved process state (velos save / auto-save)
├── crashes/ # AI crash records and agent logs
│ ├── .json # Crash context + analysis
│ └── .log # AI agent execution log
└── logs/ # Process log files
├── api-out.log # stdout
└── api-err.log # stderr______________________________________________________________________
从源头构建
需求
- 之字形 0.15+
- 锈 1.75+(含货物)
- macOS 或 Linux
构建
make dev # Debug: Zig + Rust (fast iteration)
make build # Release: Zig (ReleaseFast) + Rust (release)
make test # All tests: Zig unit + Rust unit
make clean # Clean build artifacts管道: zig build -> libvelos_core.a -> cargo build -> target/release/velos
测试
# Zig unit tests
cd zig && zig build test
# Rust unit tests
cargo test --workspace
# Integration tests (49 tests, full lifecycle)
bash tests/integration_lifecycle.sh______________________________________________________________________
文档
| 文档 | 描述 |
|---|---|
| 更改日志.md | 发行说明 |
| 贡献.md | 开发设置和贡献指南 |
| 安全.md | 安全策略和漏洞报告 |
| docs/ARCHITECTURE.md | 完整架构(1200多条线路) |
| docs/mcp-tools.md | MCP服务器工具参考(13个工具) |
______________________________________________________________________
贡献
我们欢迎捐款!请参阅 贡献.md 用于开发设置、代码风格和PR指南。
在投稿之前,请阅读:
- 贡献.md --开发设置和工作流程
- 代码_OF_CONDUCT.md --社区标准
- docs/ARCHITECTURE.md --Zig+Rust混合架构
有关安全漏洞,请参阅 安全.md.
______________________________________________________________________
许可证
麻省理工学院或阿帕奇-2.0
