AI知识管理平台

Tartarus是一个双界面平台(MCP服务器+Web应用),用于结构化、AI驱动的日志记录、项目文档和个人知识管理,支持多种AI模型和工具集成。

  • by GuiArSt
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 GuiArSt/mcp-dev-journal

使用说明

塔耳塔罗斯

一个双界面平台(MCP服务器+web应用程序),用于结构化、人工智能驱动的日志记录、项目文档和个人知识管理。

这是什么

  1. MCP服务器 (src/)-22个工具、26个资源和3个AI代理提示(Claude Code、Cursor等),用于创建日记条目、管理项目摘要、查询文档以及与Linear交互
  2. Tartarus网络应用程序 (web/)-带有人工智能聊天(Kronus)、期刊阅读器、文本校正、翻译和统一知识库的深色主题仪表板

主要特点

  • 对象注册表 -每个数据对象的通用UUID索引。两种通用工具(search + fetch)让Kronus统一访问14种类型的所有1400多个对象
  • 代理克朗 -带工具调用的知识预言机(AI SDK 6.0 stepCountIs).用途 search/fetch 深入数据而不是静态提示
  • 结构化日记账分录 链接到带有AI生成摘要的git提交
  • 条目0 v2(生活项目摘要) -模式驱动的项目文档,具有部分历史跟踪和浅/深视图
  • Kronus聊天 -多模型人工智能对话(Gemini 3.1 Pro、Claude Opus 4.6/4.7、GPT-5.4),配备85多种集成工具
  • Kronus技能 -按需加载上下文(开发人员、作家、求职者、全能者)——启动精益,在需要时加载上下文
  • 代蒙 -发送写作助手之前进行内联润色(Cmd+Enter)。单词级别差异、更正历史、翻译支持
  • 阿特洛波斯 -AI拼写检查器和文本校正,带内联差异视图
  • 赫尔墨斯 -AI翻译工具
  • 图书馆 -用于写作、提示、笔记、简历(技能、经验、教育)、投资组合项目和人工智能集成记忆的统一知识库
  • 线性积分 -同步线性项目和手动+自动小时同步问题
  • Slite集成 -同步知识后调
  • 概念整合 -已同步的工作区页面
  • 谷歌工作区 -驱动器、Gmail、日历集成(读+写)
  • 媒体库 -链接到条目或独立的图像、图表、PDF
  • Git 集成 -只读GitHub/GitLab仓库浏览(文件树、文件内容)
  • 可观测性 -人工智能使用跟踪(跟踪、令牌、成本、延迟)
  • 快照历史记录 -仅附加所有注册表对象的版本跟踪

建筑

┌─────────────────┐     ┌──────────────────────┐
│   AI Agents     │     │       Humans         │
│ (Claude, etc.)  │     │                      │
└────────┬────────┘     └──────────┬───────────┘
         │                         │
         ▼                         ▼
┌─────────────────┐     ┌──────────────────────┐
│   MCP Server    │     │   Tartarus Web App   │
│                 │     │                      │
│ • 22 tools      │     │ • Kronus Chat (AI)    │
│ • 26 resources  │     │ • Journal Reader      │
│ • 3 prompts     │     │ • Daimon / Atropos    │
│ • Kronus oracle │     │ • Library Browser     │
│   (agentic,     │     │ • Linear/Slite/Notion │
│    search+fetch)│     │ • Google Workspace    │
└────────┬────────┘     └──────────┬───────────┘
         │                         │
         └───────────┬─────────────┘
                     ▼
       ┌──────────────────────────┐
       │       SQLite DB          │
       │      (journal.db)        │
       │                          │
       │  tartarus_objects (UUID) │
       │  tartarus_object_history │
       │  journal_entries         │
       │  chat_conversations      │
       │  documents / prompts     │
       │  linear / slite / notion │
       │  skills / experience     │
       └──────────────────────────┘

数据流: 外部API→ Tartarus同步→ SQLite→ 对象注册表(UUID)→ MCP资源。每个数据对象在接收时都会得到一个UUID,并且Kronus可以搜索/获取。

对象注册表

Tartarus中的每个数据对象都通过 tartarus_objects table——一个通用索引,位于现有表旁边,无需对其进行修改。

tartarus_objects
  uuid          TEXT PRIMARY KEY
  type          TEXT    (journal_entry, document, conversation, linear_issue, ...)
  source_table  TEXT    (the actual SQLite table)
  source_id     TEXT    (the original ID — commit hash, slug, integer, external ID)
  title         TEXT
  summary       TEXT
  tags          TEXT    (JSON array)
  importance    INTEGER (1-5)

两种通用工具 替换7+特定查找工具:

  • search(query, type?) --在标题、摘要和标签之间进行全文搜索
  • fetch(uuid) --解析类型→ 从源表读取→ 返回完整内容

快照历史记录 (tartarus_object_history)使用仅追加版本控制跟踪更改——每次更新都会保存之前的状态 changed_by 和 change_summary.

食饵钩 在所有途径上:文档、对话、线性/狭缝/通知同步、简历数据、媒体、提示、日记条目。现有数据的回填脚本: npx tsx web/scripts/backfill-object-registry.ts.

批量汇总: POST /api/conversations/summarize-batch --动态令牌预算(24K上限),flash lite模型,将标签+重要性写回注册表。

快速开始

选项1:Docker(推荐)

cp .env.example .env
# Edit .env with your API keys

docker compose up -d
# Access at http://localhost:3777

方案2:地方发展

# MCP server
npm install && npm run build

# Web app
cd web && npm install
export JOURNAL_DB_PATH="/path/to/data/journal.db"
export GOOGLE_GENERATIVE_AI_API_KEY="your-key"
npm run dev
# Access at http://localhost:3005

MCP服务器

MCP服务器是 只读 对于缓存数据,使用通过Tartarus API的写入工具。

工具(22)

期刊(10):

工具 说明
journal_create_entry 为git提交创建日记条目
journal_list_by_repository 列出带分页的条目
journal_list_by_branch 按分支列出条目
journal_create_project_summary 创建条目0--代理直接填充第1/2/3层架构
journal_update_project_technical 使用历史跟踪更新技术部分
journal_submit_summary_report 更新叙述部分(人工智能辅助或直接)
journal_list_project_summaries 列出所有存储库概述(条目0)行
journal_list_media_library 查询统一媒体资产
registry_search_objects 搜索统一的Tartarus对象注册表
registry_fetch_object 通过UUID或源引用获取注册表对象

图书馆(9):

工具 说明
repository_search_documents 使用过滤器和分页搜索文档
repository_create_document 创建注释或提示
repository_update_document 更新现有文档
repository_create_from_report 从自由形式的代理报告创建文档(AI提取结构)
repository_list_skills 按类别列出简历技能
repository_list_experience 列出工作经验
repository_list_education 列出教育历史
repository_list_portfolio_projects 列出投资组合项目
repository_upload_media 上传媒体资源

克罗诺斯(3):

工具 说明
kronus_ask 询问知识预言家(快速或深度模式)
kronus_history 获取Kronus最近的对话
kronus_stats AI可观察性统计数据(跟踪、令牌、成本)

资源

期刊(7):

URI 描述
journal://repositories 列出所有存储库
journal://project-summary/{repository} 条目0浅视图(平坦,令牌高效)
journal://project-summary/{repository}/deep 条目0深度视图(完整章节历史)
journal://entry/{commit_hash} 获取日记条目
journal://branches/{repository} 列出分支
journal://attachments/{commit_hash} 列出条目附件
journal://attachment/{id} 获取附件元数据

注册表(2):

URI 描述
registry://object/{uuid} 通过UUID获取任何注册表对象
registry://source/{source_table}/{source_id} 通过源引用获取任何注册表对象

图书馆(7):

URI 描述
repository://document/{slug_or_id} 获取文档内容
repository://tags 列出所有文档标签
repository://documents/{type} 按类型列出文档(书写/提示/注释)
repository://portfolio-project/{id} 获取投资组合项目
repository://cv/skills 技术技能
repository://cv/experience 工作经历
repository://cv/education 教育历程

线性缓存(7):

URI 描述
linear://cache/stats 缓存统计信息
linear://projects 列出缓存的项目
linear://project/{id} 获取项目详细信息
linear://issues 列出缓存问题
linear://issue/{identifier} 获取问题详细信息
linear://project/{projectId}/updates 项目状态更新
linear://project-updates 所有项目更新

可观察性(3):

URI 描述
observability://chats Kronus聊天记录
observability://traces AI痕迹
observability://stats AI使用统计

提示(3)

提示 描述
create-entry 创建日记账分录指南
update-summary 项目摘要更新指南(条目0 v2)
explore-repo 探索存储库指南

Tartarus网络应用程序

页面

第页 描述
聊天 与Kronus的人工智能对话——7个模型选项、85多种工具、技能驱动的上下文、Daimon波兰语(Cmd+Enter)
读者 使用过滤、搜索、附件查看器、美人鱼图浏览日记条目
阿特洛波斯 AI文本校正,带内联差异视图和更改导航
赫尔墨斯 AI翻译工具
图书馆 统一的知识库——文档、简历、作品集、媒体、人工智能集成(标签布局)
提示 通过版本控制和项目组织进行快速管理
集成 线性、狭缝、通知与预览/批准工作流同步
多媒体 带有Mermaid图编辑器的媒体库

Kronus技能(按需环境)

Kronus开始 倾斜 (约6k个令牌)——只是灵魂提示和写入协议。上下文和工具通过技能按需加载,这些技能作为文档存储在数据库中(type="prompt", metadata.type="kronus-skill").

技能叠加——激活多个技能通过OR逻辑合并它们的上下文。不可能有冲突。

技能 灵魂语境 工具 用例
开发者 日志 Git、Web搜索 编码会话
作者 写作 期刊、Repo、媒体、图像生成、网络搜索 创意作品
求职者 简历、作品集、期刊 期刊、报告、媒体、网络搜索 工作申请
全能 所有核心上下文 所有核心工具 完全访问权限(手动切换集成)

新技能可以添加到数据库中——Kronus在运行时动态地发现它们。

聊天模特

模型 上下文 提供者 注释
Gemini 3.1 Pro 1M代币 谷歌 默认
Gemini 3.1 Flash Lite 1M代币 谷歌 超快速,最便宜
克劳德·十四行诗4.6 100万代币 Anthropic 物超所值
Claude Opus 4.6 100万代币 Anthropic 稳定旗舰
克劳德作品4.7 100万代币 人类学 最新作品
GPT-5.4 40万个代币 OpenAI 极端推理
GPT-5.3即时 40万代币 OpenAI 快速聊天

Kronus MCP(askKronus) 使用flash lite 3.1(快速)、flash(深度)、Opus 4.6(严重)——针对速度和成本进行了优化。

Daimon(写作助理)

在发送聊天输入插件之前进行内联抛光。将Atropos(语法)+Hermes(翻译)合并为一个流程:

  • Cmd+Enter 启用时触发Daimon(在标题栏中切换)
  • 显示单词级差异面板,并突出显示更正
  • 三项行动: 接受 (就地编辑), 按原样发送, 发送抛光
  • 带有日期和状态的更正历史查看器
  • 清洁文本→ 文本无错误时不会中断

关键概念

条目0 v2(生活项目摘要)

每个项目都有一个模式驱动的、不断发展的知识库。编码代理是扫描器——它直接填充模式,不需要人工智能规范化。

架构: 每个部分都承载 current 状态+进化 history[] 带有时间戳和提交参考。

第1级(必填): file_structure, tech_stack, patterns, commands, architecture

第2级(可选): frontend, backend, database_info, services, data_flow

第3级(可选): custom_tooling, purpose, summary

叙述部分 (通过Kronus更新): summary, purpose, key_decisions, technologies, status, extended_notes

两种观点:

  • 浅 (journal://project-summary/{repo})--电流值平坦,对LLM上下文令牌高效
  • 深 (journal://project-summary/{repo}/deep)--每个部分的完整历史时间线

日记账条目结构

Workspace/project slug (stored in the journal `repository` field, e.g., "my-project")
  └── Branch (e.g., "main")
      └── Entry (commit_hash: "abc1234")
          ├── why, what_changed, decisions
          ├── technologies, kronus_wisdom
          └── files_changed: [{ path, action, diff_summary }]

文档类型

文档有两级分类:

  • 主要类型: writing, prompt, note
  • 标签:中的其他标签 metadata.tags

配置

环境变量

# AI Providers (at least one required for Kronus chat)
GOOGLE_GENERATIVE_AI_API_KEY=your-key    # Gemini 3 Pro/Flash
ANTHROPIC_API_KEY=your-key                # Claude Opus/Haiku
OPENAI_API_KEY=your-key                   # GPT-5.2

# Database
JOURNAL_DB_PATH=/path/to/journal.db       # Optional, defaults to ./data/journal.db

# Web App URL (for MCP → Tartarus API calls)
TARTARUS_URL=http://localhost:3005

# Optional integrations
LINEAR_API_KEY=lin_api_...                # Linear project management
MCP_API_KEY=your-mcp-key                  # Authenticated MCP requests
GITHUB_TOKEN=ghp_...                      # GitHub repo browsing
GITLAB_TOKEN=glpat-...                    # GitLab repo browsing
GITLAB_HOST=https://gitlab.com            # GitLab instance URL

# Optional integrations (continued)
SLITE_API_KEY=your-slite-key             # Slite knowledge base
NOTION_API_KEY=your-notion-key           # Notion workspace pages
GOOGLE_CLIENT_ID=...                      # Google Workspace (Drive, Gmail, Calendar)
GOOGLE_CLIENT_SECRET=...
GOOGLE_REFRESH_TOKEN=...

# Optional AI features
REPLICATE_API_TOKEN=r8_...                # Image generation (FLUX, Imagen)
PERPLEXITY_API_KEY=pplx-...              # Web search

# Agent Configuration
AGENT_NAME=Kronus                         # Name of your AI agent (default: "Kronus")
AGENT_SOUL_PATH=Soul.xml                 # Path to agent personality file

MCP客户端安装

从开发人员日志迁移: 将MCP客户端配置更新到密钥 tartarus,点 args 在这个回购 dist/index.js (之后 npm run build),并使用 tartarus 如果全局链接,则使用npm二进制。确保根 package.json name 是 tartarus-workspace --MCP服务器从该字段解析monorepo根;旧名称 developer-journal-workspace 在代码中不再被识别。

克劳德桌面/光标/VS代码/克劳德代码:

{
  "mcpServers": {
    "tartarus": {
      "command": "node",
      "args": ["/absolute/path/to/your-clone/dist/index.js"]
    }
  }
}

特定于平台的配置位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
  • 光标: ~/.cursor/mcp.json
  • 克劳德代码: ~/.claude/settings.json

代理配置

系统支持自定义AI代理名称和个性文件。

  • AGENT_NAME:您的AI代理的名称(默认:“Kronus”)
  • AGENT_SOUL_PATH:代理提示文件的路径(默认:“Soul.xml”)

Soul文件定义了代理的个性、沟通风格、知识框架和交互协议。名称显示在整个UI中(聊天、上下文选择器、API响应)。

线性同步

线性数据同步到本地SQLite缓存。两种同步方法:

  • 手册:技能弹出窗口中的“同步线性”按钮(高级配置部分)
  • 自动(仅限macOS):洗衣店 config/com.tartarus.linear-sync.plist 每小时运行一次 curl 反对 localhost:3005同步端点仅可从本地主机访问,无需身份验证。

要安装自动同步,请执行以下操作:

ln -sf "$(pwd)/config/com.tartarus.linear-sync.plist" ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.tartarus.linear-sync.plist

停止: launchctl unload ~/Library/LaunchAgents/com.tartarus.linear-sync.plist

日志: /tmp/tartarus-linear-sync.log

备注:自动同步要求Tartarus在端口3005上运行。如果服务器宕机,curl会悄无声息地失败——不会造成任何伤害。如果你分叉这个仓库,launchd-plist不会自动安装;请改用手动同步按钮。

测试

npm test                    # All tests (43 total)
npm run test:registry       # Object registry unit tests (23)
npm run test:mcp            # MCP integration tests (20)

注册表测试 (tests/object-registry.test.ts):注册、查找、搜索、快照/历史、约束、级联删除——针对内存中的SQLite运行。

MCP集成测试 (tests/mcp-integration.test.ts):构建验证、数据库健康状况、所有表是否存在、UUID完整性(格式+唯一性)、注册表填充、环境验证。

发展

# MCP server
npm run build      # Build (esbuild → dist/index.js)
npm run dev        # Watch mode
npm test           # Run test suite

# Web app
cd web
npm run dev        # Dev server on :3005
npm run build      # Production build

# Both (via Makefile)
make dev           # Start Tartarus dev server
make build         # Build MCP server

# Docker
docker compose up -d --build
docker compose logs -f tartarus

# Object registry backfill (run once after fresh setup)
JOURNAL_DB_PATH=./data/journal.db npx tsx web/scripts/backfill-object-registry.ts

技术栈

组件 技术
MCP服务器 TypeScript、MCP SDK、better squelite3、esbuild
Web应用程序 Next.js 16、React、顺风CSS、shadcn/ui
AI Vercel AI SDK 6.0、谷歌Gemini、拟人克劳德、OpenAI GPT
数据库 SQLite(在MCP和web之间共享),UUID对象注册表
ORM Drizzle(web),原始SQL(MCP)
集成 线性、狭缝、概念、谷歌工作区、GitHub、GitLab、复制、困惑
测试 Node.js断言+tsx(43次测试)

许可证

此项目根据MIT许可证获得许可——请参阅 LICENSE.

归因

  • 由创建和维护 吉列尔莫·斯图普夫
  • 组织机构: Ouroboros创意集体
  • 角色: 创始人/独立建设者
  • 作为开源项目内置于公共环境中,与人工智能工具共同构建

第三方许可证

此存储库中包含的第三方组件保留其原始许可证。

  • 人类 skill-creator: /.claude/skills/skill-creator/LICENSE.txt