Crucix
Crucix 是一款专为个人打造的开源智能情报终端,旨在帮助用户实时掌控全球动态。它解决了关键信息分散在数十个政府 API、科研机构和公开数据源中,导致普通人难以高效获取和交叉验证的痛点。
通过整合卫星火情监测、航班追踪、辐射水平、地缘冲突、经济指标及社交媒体情绪等 27 类开源情报(OSINT),Crucix 每 15 分钟并行更新一次数据,并将所有信息汇聚在一个类似"Jarvis"风格的本地仪表盘上直观呈现。其独特之处在于完全去中心化:无需依赖云端服务、无遥测监控、零订阅费用,仅需一条命令即可在本地运行,确保数据隐私与安全。此外,它还支持对接大语言模型,变身双向智能助手,能通过 Telegram 或 Discord 推送分级警报,并响应自然语言指令生成基于真实数据的分析简报。
这款工具非常适合研究人员、记者、交易员、开源情报分析师以及任何希望低成本获取高质量全球实时信息的普通用户。无论您是想洞察市场先机,还是单纯关心世界正在发生什么,Crucix 都能成为您不知疲倦的私人分析师。
使用场景
一位关注地缘政治风险的对冲基金分析师,需要在夜间实时监控全球突发事件以调整次日交易策略。
没有 Crucix 时
- 数据分散且获取困难:必须手动轮流刷新卫星火点、航班追踪、辐射监测及制裁名单等二十多个独立的政府或科研网站,耗时费力。
- 信息滞后严重:无法做到每 15 分钟自动轮询所有数据源,往往在新闻大规模报道后才知晓冲突或灾害发生,错失最佳反应窗口。
- 缺乏关联分析:面对孤立的原始数据,难以快速将“某地突发火灾”与“附近航线改变”或“能源价格波动”进行跨域关联,依赖人工拼凑线索。
- 夜间监控盲区:分析师无法 24 小时值守,睡眠期间发生的重大事件只能等到第二天上班处理,导致决策被动。
使用 Crucix 后
- 一站式全景监控:Crucix 通过单一命令本地聚合 27 个开源情报源,在 Jarvis 风格的仪表盘上实时呈现全球卫星、经济及冲突数据,无需切换网页。
- 毫秒级主动预警:系统每 15 分钟并行抓取最新数据,一旦检测到异常变化(如辐射值飙升或特定航班备降),立即通过 Telegram 或 Discord 推送多级警报。
- 智能交叉洞察:结合 LLM 后,Crucix 能自动分析跨领域数据,直接生成基于实情的交易建议(如“某港口封锁可能导致航运股波动”),而非罗列枯燥数字。
- 全天候无人值守:作为私人智能代理,Crucix 在分析师睡眠时持续“观察”世界,确保任何风吹草动都能被即时捕获并推送到手机端。
Crucix 将原本需要团队轮班完成的多源情报监控工作,转化为个人可掌控的自动化实时决策流,让信息获取不再受限于预算与人力。
运行环境要求
- Linux
- macOS
- Windows
不需要 GPU
未说明

快速开始
在线网站: https://www.crucix.live/ 先探索公开演示,再克隆仓库以在本地运行Crucix。
Crucix从27个开源情报源并行、每15分钟拉取卫星火灾探测、航班跟踪、辐射监测、卫星星座跟踪、经济指标、实时市场价格、冲突数据、制裁名单以及社会情绪等信息,并将所有内容渲染到一个独立的Jarvis风格仪表盘上。
若接入大型语言模型,它便成为双向情报助手——当有重要变化时向Telegram和Discord推送多级警报,响应手机上的/brief和/sweep等指令,并基于真实的跨领域数据生成可操作的交易建议。这就像一位属于您的分析师,在您熟睡时时刻关注着全球动态。
请先在https://www.crucix.live/体验在线演示,待您准备好完整的本地环境后再克隆仓库。
无需云端、无需遥测、无需订阅。只需运行node server.mjs即可启动。
代币/资产警告
[!WARNING] Crucix尚未推出任何官方代币、币种、NFT、空投、预售或其他基于区块链的资产。 任何使用Crucix名称、标志或品牌标识的代币或数字资产均与Crucix无关,也未得到Crucix的认可。 请勿根据第三方帖子、私信或网站购买、推广、连接钱包领取、签署交易或转账资金。
为何存在
世界上大部分实时情报——卫星图像、辐射水平、冲突事件、经济指标、航班跟踪、海上活动——都是公开可用的。只是这些信息分散在数十个政府API、研究机构和开放数据源中,没有人有时间逐一查看。
Crucix将这一切汇聚到一处。既不在付费墙后,也不被锁定在企业级平台中,更不需要安全许可。只是开放数据,在您的设备上聚合并交叉关联,每15分钟更新一次。
它专为那些希望了解当前世界真实状况的人而打造——研究人员、记者、交易员、开源情报分析师,或是仅仅相信信息获取不应受预算限制的好奇人士。
快速开始
# 1. 克隆仓库
git clone https://github.com/calesthio/Crucix.git
cd Crucix
# 2. 安装依赖(仅需Express)
npm install
# 3. 复制环境模板并添加您的API密钥(见下文)
cp .env.example .env
# 4. 启动仪表盘
npm run dev
如果
npm run dev静默失败(无输出直接退出),请改用Node直接运行:node --trace-warnings server.mjs这样可以绕过npm的脚本运行器,因为它在某些系统上可能会吞掉错误(尤其是在Windows的PowerShell中)。您也可以运行
node diag.mjs来诊断具体问题——它会检查您的Node版本、逐个测试每个模块的导入,并验证端口是否可用。更多信息请参阅故障排除。
仪表盘会自动在http://localhost:3117打开,并立即开始首次情报扫描。首次扫描会并行查询所有27个源,通常需要30–60秒——在此期间仪表盘会显示为空,直到扫描完成并推送第一条数据更新。之后,它将通过SSE(服务器发送事件)每15分钟自动刷新,无需手动刷新页面。
要求: Node.js 22+(使用原生fetch、顶级await、ESM)
Docker
git clone https://github.com/calesthio/Crucix.git
cd Crucix
cp .env.example .env # 添加您的API密钥
docker compose up -d
仪表盘地址为http://localhost:3117。扫描数据通过卷挂载保存在./runs/目录中。包含健康检查端点。
您将获得
实时仪表盘
一个自包含的Jarvis风格HUD,具备:
- 3D WebGL地球仪(Globe.gl),带有大气辉光、星空背景和流畅旋转效果——还可切换至经典平面地图
- 9种标记类型,覆盖两种视图:火灾探测、航空交通、辐射站点、海上咽喉要道、SDR接收器、开源情报事件、健康警报、地理定位新闻、冲突事件
- 动画化的3D飞行走廊弧线,连接航空热点与全球枢纽
- 区域过滤器(全球、美洲、欧洲、中东、亚太、非洲)——可旋转地球仪或缩放平面地图
- 实时市场数据——指数、加密货币、能源、大宗商品,通过Yahoo Finance获取(无需API密钥)
- 风险指标——VIX、高收益利差、供应链压力指数
- OSINT信息流——来自17个Telegram情报频道的英文帖子(可扩展)
- 新闻滚动条——整合RSS + GDELT头条 + Telegram帖子,自动滚动
- 扫描增量——实时面板,显示自上次扫描以来的变化(新信号、升级、降级及其严重程度)
- 跨源信号——卫星、经济、冲突和社会领域的相关情报
- 核监控——来自Safecast和EPA RadNet的实时辐射读数
- 太空监控——CelesTrak卫星跟踪:近期发射、国际空间站、军用星座、Starlink/OneWeb数量
- 可利用的想法——由AI生成的交易建议(结合LLM)或基于信号的相关建议(无需LLM)
性能模式
顶部栏中的“VISUALS FULL”/“VISUALS LITE”按钮仅改变渲染行为,并不会移除数据源或减少扫描覆盖范围。
切换到“VISUALS LITE”时,仪表盘会:
- 禁用装饰性背景效果,如径向/网格叠加层和扫描线;
- 移除面板和叠加层上的高开销模糊/背景滤镜效果;
- 停止非必要的动画,例如标志环闪烁、冲突环以及走廊流动效果;
- 禁用地球仪自动旋转,并关闭飞行轨迹的动画虚线;
- 将水平新闻滚动条和OSINT信息流转换为静态可滚动列表,而非持续动画的跑马灯。
移动端特定行为:
- 在移动端,“VISUALS LITE”还会在当前显示地球仪视图时,强制将仪表盘切换至平面地图模式;
- 未来在启用低性能模式的情况下,移动端加载时将继续以平面地图模式启动。
该偏好设置会保存在浏览器的本地存储中,因此界面会记住您上次的选择。
自动刷新
服务器每15分钟(可配置)执行一次扫描周期。每个周期包括以下步骤:
- 并发查询所有27个数据源(约30秒);
- 将原始数据整合为仪表盘格式;
- 计算与上一次运行的差异(哪些内容发生变化、升级或降级),这些信息会在仪表盘的“扫描差异”面板中显示;
- 生成LLM交易建议(若已配置);
- 评估突发新闻警报——采用多层级(紧急/优先/常规)机制,并进行语义去重处理。如果已配置,则通过Telegram和/或Discord发送警报。当LLM可用时,使用LLM评估;若LLM不可用,则回退到基于规则的警报系统;
- 通过SSE将更新推送至所有已连接的浏览器。
Telegram机器人(双向)
Crucix同时也是一个交互式的Telegram机器人。除了发送警报外,它还能直接响应您的聊天指令:
| 命令 | 功能 |
|---|---|
/status |
显示系统健康状况、上次扫描时间、数据源状态及LLM状态 |
/sweep |
手动触发一次扫描周期 |
/brief |
提供最新情报的简洁文本摘要(方向、关键指标、顶级OSINT) |
/portfolio |
显示投资组合状态(若已连接Alpaca) |
/alerts |
最近的警报历史及层级 |
/mute / /mute 2h |
静音警报1小时(或自定义时长) |
/unmute |
恢复警报 |
/help |
显示所有可用命令 |
这需要在.env文件中配置TELEGRAM_BOT_TOKEN和TELEGRAM_CHAT_ID。机器人每5秒轮询一次消息(可通过TELEGRAM_POLL_INTERVAL配置轮询间隔)。
Discord机器人(双向)
Crucix还支持作为功能齐全的Discord机器人,具备斜杠命令和富嵌入式警报功能。其功能与Telegram机器人相同,但采用Discord原生格式。
| 命令 | 功能 |
|---|---|
/status |
显示系统健康状况、上次扫描时间、数据源状态及LLM状态 |
/sweep |
手动触发一次扫描周期 |
/brief |
提供最新情报的简洁文本摘要 |
/portfolio |
显示投资组合状态(若已连接Alpaca) |
警报以富嵌入式消息形式发送,带有颜色编码的侧边栏:红色代表紧急,黄色代表优先,蓝色代表常规。每条嵌入消息包含信号详情、置信度评分以及跨领域关联信息。
设置要求: 需要配置DISCORD_BOT_TOKEN、DISCORD_CHANNEL_ID,以及可选的DISCORD_GUILD_ID以便即时注册斜杠命令。详细信息请参阅[API密钥设置]部分。
Webhook备用方案: 如果您不想运行完整的机器人,可以设置DISCORD_WEBHOOK_URL。这样即可实现单向警报(无斜杠命令),且无需任何依赖——不需要discord.js。
可选依赖: 完整版机器人需要discord.js。您可以通过npm install discord.js进行安装。若未安装,Crucix会自动回退到仅使用Webhook的模式。
可选的LLM层
您可以连接8家LLM提供商之一,以获得更强大的分析能力:
- AI交易建议——量化分析师会根据具体数据生成5–8条可操作的交易建议;
- 更智能的警报评估——LLM会将信号分类为紧急/优先/常规三个级别,并结合跨领域关联和置信度评分;
- 支持的提供商包括:Anthropic Claude、OpenAI、Google Gemini、OpenRouter(统一API)、OpenAI Codex(ChatGPT订阅用户)、MiniMax、Mistral、Grok;
- 好的回退机制——当LLM不可用时,基于规则的引擎将接管警报评估工作。LLM故障绝不会导致扫描周期崩溃。
API密钥设置
将项目根目录下的.env.example复制为.env:
cp .env.example .env
为获得最佳效果所需(全部免费)
| 键 | 来源 | 获取方式 |
|---|---|---|
FRED_API_KEY |
联邦储备经济数据 | fred.stlouisfed.org — 即刻获取,免费 |
FIRMS_MAP_KEY |
NASA FIRMS(卫星火灾数据) | firms.modaps.eosdis.nasa.gov — 即刻获取,免费 |
EIA_API_KEY |
美国能源信息管理局 | api.eia.gov — 即刻获取,免费 |
以上三项能够解锁最有价值的经济和卫星数据。每项注册大约需要60秒。
可选(用于启用更多数据源)
| 键 | 来源 | 获取方式 |
|---|---|---|
ACLED_EMAIL + ACLED_PASSWORD |
武装冲突事件数据 | acleddata.com/register — 免费,OAuth2认证 |
AISSTREAM_API_KEY |
海事AIS船舶追踪 | aisstream.io — 免费 |
ADSB_API_KEY |
未过滤的航班追踪 | RapidAPI — 大约10美元/月 |
LLM提供商(可选,用于AI增强型建议)
将LLM_PROVIDER设置为以下选项之一:anthropic、openai、gemini、codex、openrouter、minimax、mistral、grok。
| 提供商 | 所需密钥 | 默认模型 |
|---|---|---|
anthropic |
LLM_API_KEY |
claude-sonnet-4-6 |
openai |
LLM_API_KEY |
gpt-5.4 |
gemini |
LLM_API_KEY |
gemini-3.1-pro |
openrouter |
LLM_API_KEY |
openrouter/auto |
codex |
无需密钥(使用~/.codex/auth.json) |
gpt-5.3-codex |
minimax |
LLM_API_KEY |
MiniMax-M2.5 |
mistral |
LLM_API_KEY |
mistral-large-latest |
grok |
LLM_API_KEY |
grok-4-latest |
对于Codex,您需要运行npx @openai/codex login来通过您的ChatGPT订阅进行身份验证。
Telegram机器人+警报(可选)
| 键 | 获取方式 |
|---|---|
TELEGRAM_BOT_TOKEN |
通过Telegram上的@BotFather创建 |
TELEGRAM_CHAT_ID |
通过@userinfobot获取 |
TELEGRAM_CHANNELS |
(可选) 除内置的17个频道外,额外监控的频道ID,用逗号分隔 |
TELEGRAM_POLL_INTERVAL |
(可选) 机器人命令轮询间隔,单位为毫秒(默认值:5000) |
Discord 机器人 + 警报(可选)
| 键 | 获取方式 |
|---|---|
DISCORD_BOT_TOKEN |
在 Discord 开发者门户 → 机器人 → 令牌 中创建 |
DISCORD_CHANNEL_ID |
在 Discord 中右键点击频道(启用开发者模式)→ 复制频道 ID |
DISCORD_GUILD_ID |
(可选) 右键点击服务器 → 复制服务器 ID。启用即时 slash 命令注册(否则全局命令可能需要长达 1 小时) |
DISCORD_WEBHOOK_URL |
(可选) 频道设置 → 集成 → Webhook → 新建 Webhook → 复制 URL。用于仅警报模式,无需机器人 |
Discord 机器人设置:
- 前往 Discord 开发者门户,创建一个新的应用
- 进入 机器人 → 点击 重置令牌 → 将令牌复制到
DISCORD_BOT_TOKEN - 在 特权网关意图 中,启用 消息内容意图
- 进入 OAuth2 → URL 生成器 → 选择
bot和applications.commands权限范围 → 选择发送消息和嵌入链接权限 - 复制生成的 URL,在浏览器中打开以将机器人邀请到您的服务器
- 安装依赖:
npm install discord.js
警报功能在 Telegram 和 Discord 上均可使用,无论是否配备 LLM。配置了 LLM 后,信号评估会更加丰富且更具上下文感知能力。如果没有 LLM,则由确定性规则引擎根据严重性、跨领域相关性以及信号数量来评估信号。
无需任何密钥
Crucix 即使不使用任何 API 密钥也能正常运行。超过 18 个数据源完全不需要身份验证。而需要密钥的数据源则会返回结构化错误,其余部分的扫描仍会正常进行。
架构
crucix/
├── server.mjs # Express 开发服务器(SSE、自动刷新、LLM、机器人命令)
├── crucix.config.mjs # 配置文件,支持环境变量覆盖及增量阈值
├── diag.mjs # 诊断脚本 — 如果服务器无法启动则运行
├── .env.example # 所有已记录的环境变量
├── package.json # 运行时:express | 可选:discord.js
├── docs/ # README 的截图
│
├── apis/
│ ├── briefing.mjs # 主调度器 — 并行运行所有 27 个数据源
│ ├── save-briefing.mjs # CLI:保存带时间戳和最新 JSON 文件
│ ├── BRIEFING_PROMPT.md # 情报整合协议
│ ├── BRIEFING_TEMPLATE.md # 简报输出结构
│ ├── utils/
│ │ ├── fetch.mjs # safeFetch() — 超时、重试、取消、自动解析 JSON
│ │ └── env.mjs # .env 加载器(无需 dotenv 依赖)
│ └── sources/ # 27 个自包含的数据源模块
│ ├── gdelt.mjs # 每个模块导出 briefing() → 结构化数据
│ ├── fred.mjs # 可独立运行:node apis/sources/fred.mjs
│ ├── space.mjs # CelesTrak 卫星跟踪
│ ├── yfinance.mjs # Yahoo Finance — 免费实时市场数据
│ └── ... # 另外 23 个
│
├── dashboard/
│ ├── inject.mjs # 数据合成 + 独立 HTML 注入
│ └── public/
│ └── jarvis.html # 自包含的 Jarvis HUD
│
├── lib/
│ ├── llm/ # LLM 抽象层(8 家提供商,原生 fetch,无 SDK)
│ │ ├── provider.mjs # 基类
│ │ ├── anthropic.mjs # Claude
│ │ ├── openai.mjs # GPT
│ │ ├── gemini.mjs # Gemini
│ │ ├── grok.mjs # Grok
│ │ ├── openrouter.mjs # OpenRouter(统一 API)
│ │ ├── codex.mjs # Codex(ChatGPT 订阅)
│ │ ├── minimax.mjs # MiniMax(M2.5,204K 上下文)
│ │ ├── mistral.mjs # Mistral AI
│ │ ├── ideas.mjs # LLM 驱动的交易想法生成
│ │ └── index.mjs # 工厂:createLLMProvider()
│ ├── delta/ # 扫描之间的变化追踪
│ │ ├── engine.mjs # 增量计算 — 语义去重、可配置阈值、严重性评分
│ │ ├── memory.mjs # 热存储(3 次运行,原子写入)+ 冷存储(每日归档)
│ │ └── index.mjs # 重新导出
│ └── alerts/
│ ├── telegram.mjs # 多层级警报(紧急/优先/常规)+ 双向机器人命令
│ └── discord.mjs # Discord 机器人(slash 命令、丰富嵌入)+ webhook 备用
│
└── runs/ # 运行时数据(被 .gitignore 忽略)
├── latest.json # 最新扫描输出
└── memory/ # 增量内存(hot.json + cold/YYYY-MM-DD.json)
设计原则
- 纯 ESM — 每个文件都是
.mjs,并使用显式导入 - 最小依赖 — Express 是唯一的运行时依赖。
discord.js是可选的(用于 Discord 机器人)。LLM 提供商使用原生fetch(),无需 SDK。 - 并行执行 — 使用
Promise.allSettled()同时触发所有 27 个数据源 - 优雅降级 — 缺少密钥只会产生错误,不会导致崩溃。LLM 故障也不会中断整个扫描过程。
- 每个数据源独立运行 — 可以通过运行
node apis/sources/gdelt.mjs来单独测试任意一个数据源 - 自包含仪表盘 — HTML 文件无论是否有服务器都能正常工作
数据源(27 个)
第一层:核心 OSINT 和地缘政治(11 个)
| 数据源 | 追踪内容 | 身份验证 |
|---|---|---|
| GDELT | 全球新闻事件、冲突地图(100 多种语言) | 无 |
| OpenSky | 实时 ADS-B 飞行跟踪,覆盖 6 个热点地区 | 无 |
| NASA FIRMS | 卫星火灾/热异常检测(3 小时延迟) | 免费密钥 |
| Maritime/AIS | 船舶跟踪、暗影船只、制裁规避 | 免费密钥 |
| Safecast | 公民科学辐射监测,靠近 6 个核设施 | 无 |
| ACLED | 武装冲突事件:战斗、爆炸、抗议活动 | 免费(OAuth2) |
| ReliefWeb | 联合国人道主义危机追踪 | 无 |
| WHO | 疾病爆发和卫生紧急情况 | 无 |
| OFAC | 美国财政部制裁名单(SDN 名单) | 无 |
| OpenSanctions | 全球制裁汇总(30 多个来源) | 部分需要 |
| ADS-B Exchange | 未过滤的飞行跟踪,包括军用航班 | 收费 |
第二层:经济与金融(7 个)
| 数据源 | 追踪内容 | 身份验证 |
|---|---|---|
| FRED | 22 个关键指标:收益率曲线、CPI、VIX、联邦基金利率、M2 | 免费密钥 |
| 美国财政部 | 国家债务、收益率、财政数据 | 无 |
| BLS | CPI、失业率、非农就业人数、PPI | 无 |
| EIA | WTI/Brent 原油、天然气、库存 | 免费密钥 |
| GSCPI | 纽约联储全球供应链压力指数 | 无 |
| USAspending | 联邦支出和国防合同 | 无 |
| UN Comtrade | 主要大国之间的战略商品贸易流动 | 无 |
第三层级:天气、环境、科技、社交、信号情报(7个)
| 来源 | 追踪内容 | 认证方式 |
|---|---|---|
| NOAA/NWS | 美国实时天气预警 | 无 |
| EPA RadNet | 美国政府辐射监测 | 无 |
| USPTO专利 | 7个战略科技领域的专利申请 | 无 |
| Bluesky | 地缘政治/市场话题的社交情绪 | 无 |
| 关键子版块的社交情绪 | OAuth | |
| Telegram | 17个精选的开源情报/冲突/金融频道(网页抓取,可通过配置扩展) | 无 |
| KiwiSDR | 全球短波无线电接收网络(约600台接收器) | 无 |
第四层级:太空与卫星(1个)
| 来源 | 追踪内容 | 认证方式 |
|---|---|---|
| CelesTrak | 卫星发射、国际空间站跟踪、军事星座、Starlink/OneWeb数量 | 无 |
第五层级:实时市场数据(1个)
| 来源 | 追踪内容 | 认证方式 |
|---|---|---|
| Yahoo Finance | 实时行情:SPY、QQQ、BTC、黄金、WTI、VIX等9种 | 无 |
npm脚本
| 脚本 | 命令 | 描述 |
|---|---|---|
npm run dev |
node --trace-warnings server.mjs |
启动带自动刷新的仪表盘 |
npm run sweep |
node apis/briefing.mjs |
执行一次数据采集,将JSON输出到标准输出 |
npm run inject |
node dashboard/inject.mjs |
将最新数据注入静态HTML |
npm run brief:save |
node apis/save-briefing.mjs |
执行数据采集并保存带时间戳的JSON文件 |
npm run diag |
node diag.mjs |
运行诊断程序(Node版本、模块导入、端口检查) |
配置
所有设置均在.env文件中,默认值合理:
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT |
3117 |
仪表盘服务器端口 |
REFRESH_INTERVAL_MINUTES |
15 |
自动刷新间隔 |
LLM_PROVIDER |
已禁用 | 支持anthropic、openai、gemini、codex、openrouter、minimax、mistral或grok |
LLM_API_KEY |
— | API密钥(codex无需) |
LLM_MODEL |
各提供商默认 | 覆盖模型选择 |
TELEGRAM_BOT_TOKEN |
已禁用 | 用于Telegram提醒及机器人命令 |
TELEGRAM_CHAT_ID |
— | 您的Telegram聊天ID |
TELEGRAM_CHANNELS |
— | 需要监控的额外频道ID(逗号分隔) |
TELEGRAM_POLL_INTERVAL |
5000 |
机器人命令轮询间隔(毫秒) |
DISCORD_BOT_TOKEN |
已禁用 | 用于Discord提醒及slash命令 |
DISCORD_CHANNEL_ID |
— | 用于发送提醒的Discord频道 |
DISCORD_GUILD_ID |
— | 服务器ID(可即时注册slash命令) |
DISCORD_WEBHOOK_URL |
— | Webhook URL(仅用于提醒,无需机器人) |
Delta引擎的阈值(系统对两次采集间变化的敏感度)可在crucix.config.mjs文件的delta.thresholds部分自定义。默认设置旨在过滤噪声,同时捕捉有意义的变化。
API端点
运行npm run dev时:
| 端点 | 描述 |
|---|---|
GET / |
Jarvis HUD仪表盘 |
GET /api/data |
当前合成的情报数据(JSON) |
GET /api/health |
服务器状态、运行时间、数据源数量、LLM状态 |
GET /events |
SSE流,用于实时推送更新 |
故障排除
npm run dev静默退出(无输出,无错误)
这是已知问题,npm的脚本运行器可能会吞掉错误,尤其是在Windows PowerShell上。请按以下顺序尝试:
1. 直接运行Node(绕过npm):
node --trace-warnings server.mjs
这与npm run dev功能相同,但会显示完整的错误信息。
2. 运行诊断脚本:
node diag.mjs
该脚本会逐一测试每个模块的导入情况,检查Node.js版本,并验证3117端口是否可用。它会明确指出具体失败原因。
3. 检查3117端口是否已被占用:
可能是之前的Crucix实例仍在后台运行。
# Windows PowerShell
netstat -ano | findstr 3117
taskkill /F /PID <上述PID>
# 或者直接终止所有Node进程
taskkill /F /IM node.exe
# macOS / Linux
lsof -ti:3117 | xargs kill
然后再次尝试启动。您也可以通过在.env文件中设置PORT=3118来更改端口。
4. 检查Node.js版本:
node --version
Crucix需要Node.js 22或更高版本。如果您的版本较旧,请从https://nodejs.org下载最新的LTS版本。
仪表盘首次启动后显示为空白面板
这是正常现象——首次采集需要30–60秒来查询所有27个数据源。一旦采集完成,仪表盘会自动填充。请查看终端中的采集进度日志。
部分数据源显示错误
这是预期行为。需要API密钥的数据源若未设置密钥,会返回结构化错误。其余数据源的采集仍会正常进行。请查看仪表盘中的“数据源完整性”部分(或服务器日志),以了解哪些数据源失败及其原因。最值得添加的三个免费密钥是FRED_API_KEY、FIRMS_MAP_KEY和EIA_API_KEY。
OpenSky在公共热点被过度查询时也可能返回HTTP 429错误。Crucix不会试图规避这一限制,而是会在数据源健康状况中显示限流/错误信息,并保留来自runs/目录的最近一次非空航空交通快照,以防止仪表盘飞行图层在被限流的采集中突然变为空白。
Telegram机器人不响应命令
请确保.env文件中已设置TELEGRAM_BOT_TOKEN和TELEGRAM_CHAT_ID。机器人仅响应来自配置聊天ID的消息(安全措施)。启动时,您应在服务器日志中看到[Crucix] Telegram提醒已启用和[Crucix] 机器人命令轮询已开始。如果没有,请使用curl https://api.telegram.org/bot<YOUR_TOKEN>/getMe再次确认您的令牌。
Discord机器人不响应slash命令
请按以下步骤检查:
- 确保
.env文件中已设置DISCORD_BOT_TOKEN和DISCORD_CHANNEL_ID。 - 验证
discord.js是否已安装:npm ls discord.js。若缺失,运行npm install discord.js。 - 如果slash命令未出现,请设置
DISCORD_GUILD_ID——没有它,全局命令可能需要长达1小时才能生效。而针对特定服务器的命令则会立即生效。 - 确认机器人是以包含
bot和applications.commands权限范围受邀加入,并且在目标频道中拥有发送消息和嵌入链接权限。 - 查看服务器日志,确认启动时是否有
[Discord] 机器人已登录为...。若出现[Discord] discord.js未安装,请安装后重启。 - 仅使用Webhook作为备用方案: 如果您只希望接收提醒而不需要slash命令,可以设置
DISCORD_WEBHOOK_URL,而非机器人令牌。这样就不需要discord.js了。
截图
docs/ 文件夹包含本 README 引用的仪表板截图:
| 文件 | 描述 |
|---|---|
https://oss.gittoolsai.com/images/calesthio_Crucix_readme_fa9cc960c245.png |
完整仪表板 — 位于本 README 顶部的英雄图片 |
https://oss.gittoolsai.com/images/calesthio_Crucix_readme_57f7da3f506b.png |
影视级启动动画 |
https://oss.gittoolsai.com/images/calesthio_Crucix_readme_ff600ea15d7b.png |
带有标记类型和飞行弧线的 D3 世界地图 |
https://oss.gittoolsai.com/images/calesthio_Crucix_readme_acd305d6ff32.png |
带有大气辉光和标记的 3D WebGL 地球仪视图 |
要更新这些截图:运行仪表板,等待一次扫描完成,然后使用浏览器的开发者工具(F12 → Ctrl+Shift+P → “捕获全尺寸截图”)或像 LICEcap 这样的工具来生成 GIF 动画。
贡献
发现 bug?想添加第 28 个数据源?欢迎提交 PR。每个数据源都是 apis/sources/ 中的一个独立模块——只需导出一个返回结构化数据的 briefing() 函数,并将其添加到 apis/briefing.mjs 中的编排器即可。
如果你觉得这个项目有用,请给它点个赞,这样其他人也能更容易找到它。
有关贡献指南、评审期望以及添加数据源的规则,请参阅 CONTRIBUTING.md。如需报告安全问题,请参阅 SECURITY.md。
联系方式
如需洽谈合作、集成或其他非问题相关的咨询,可通过 celesthioailabs@gmail.com 联系我。
对于 bug 和功能请求,请使用 GitHub Issues,以便讨论内容保持可见且可操作。
星标历史
许可证
AGPL-3.0
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器



