内容
# 克里亚
极简、MIT许可的事务追踪器,AI代理是首要团队成员。

## 功能描述
克里亚是为小型团队(1-10人)设计的Jira替代品,提供项目、事务、固定工作流、列表和看板视图、评论以及实时同步等功能。其独特之处在于内置的MCP服务器 - 连接克劳德代码(或任何MCP客户端),代理可以创建、分类和更新事务,每个代理操作都在活动日志中记录(如“克劳德代码,为里特维克”)。无冲刺、无史诗、无自定义字段、无仪表板 - 设计如此。
## 本地运行
```bash
# 1. 后端:创建免费的Supabase项目,然后应用架构
# (将backend/supabase/migrations/*.sql粘贴到SQL编辑器中,按顺序)
# 2. 桌面应用
cd frontend
cp .env.example .env # 填写Supabase网址和匿名密钥(设置 → API)
npm install
npm run tauri dev
# 3. MCP服务器(连接克劳德代码)
cd backend/mcp-server
npm install && npm run build
```
### 远程MCP(推荐 - 整个团队使用一个网址)
当设置`PORT`时,相同的服务器会使用MCP的可流式HTTP传输。将其部署到任何可以运行容器的地方(云运行显示):
```bash
cd backend/mcp-server
gcloud run deploy kriya-mcp --source . --region asia-south1 --allow-unauthenticated \
--set-env-vars "SUPABASE_URL=https://<项目>.supabase.co,SUPABASE_ANON_KEY=<匿名密钥>" \
--set-secrets "SUPABASE_SERVICE_ROLE_KEY=<您的秘密引用>"
```
(`--allow-unauthenticated`公开网址;服务器本身验证每个MCP请求。)然后,每个队友打开应用中的**连接您的代理**,生成个人代理密钥并连接:
```bash
claude mcp add --transport http kriya https://<云运行网址>/mcp \
--header "Authorization: Bearer kriya_<个人密钥>"
```
密钥充当创建它们的成员 - 活动日志显示“克劳德代码(为普里亚)”,无论哪个代理执行操作 - 并且可以在应用中随时撤销。(共享令牌模式也存在:设置`MCP_AUTH_TOKEN` + `KRIYA_EMAIL`/`KRIYA_PASSWORD`,所有人共享一个身份。)
提示:在`frontend/.env`中设置`VITE_KRIYA_MCP_URL=https://<云运行网址>/mcp`,连接您的代理屏幕将预先填充团队的网址。
### 本地MCP(标准输入/输出)
将以下内容添加到MCP客户端配置中:
```json
{
"mcpServers": {
"kriya": {
"command": "node",
"args": ["/path/to/kriya/backend/mcp-server/dist/index.js"],
"env": {
"SUPABASE_URL": "https://<项目>.supabase.co",
"SUPABASE_ANON_KEY": "<匿名密钥>",
"KRIYA_EMAIL": "您@团队.com",
"KRIYA_PASSWORD": "<您的克里亚密码>",
"KRIYA_AGENT_NAME": "克劳德代码"
}
}
}
}
```
## 邀请您的团队
应用中的“邀请队友”会发送真正的注册电子邮件。一次性设置,仅需仪表板:
1. Supabase仪表板 → Edge Functions → 部署新函数 → 命名为`invite`,粘贴`backend/supabase/functions/invite/index.ts`(保持“验证JWT”开启)。
2. 身份验证 → SMTP设置 → 启用自定义SMTP以实际发送电子邮件。免费Gmail可以使用:创建[谷歌应用密码](https://myaccount.google.com/apppasswords),然后使用`smtp.gmail.com`,端口`465`,您的Gmail作为用户名,应用密码作为密码(每天约500封邮件)。
3. 身份验证 → 电子邮件模板 → “邀请用户” → 在正文中添加一次性代码`{{ .Token }}`。桌面应用邀请者使用该代码加入(登录屏幕上的“邀请?使用您的电子邮件代码”)而不是浏览器链接。
跳过步骤1仍然有效 - 邀请只是预授权,队友手动使用受邀的电子邮件注册。
## GitHub
在PR标题或分支名称中提及事务ID,如`KRI-42`,克里亚会保持事务同步 - PR打开将移动到进行中,PR合并将移动到完成,每个操作都带有链接到PR的评论,在活动日志中归因于代理“GitHub”。设置只需一个边缘函数,仅需仪表板:
1. Supabase仪表板 → Edge Functions → 部署新函数 → 命名为`github-webhook`,粘贴`backend/supabase/functions/github-webhook/index.ts`,并在详细信息中关闭“验证JWT”。
2. 在边缘函数秘密下添加秘密`GITHUB_WEBHOOK_SECRET=<任何随机字符串>`。
3. GitHub仓库 → 设置 → Webhooks → 添加`https://<项目>.supabase.co/functions/v1/github-webhook`,内容类型`application/json`,相同的秘密,仅限“拉取请求”事件。
对于更丰富的流程,请完全跳过Webhook:您的编码代理已连接到GitHub和克里亚。 将以下内容添加到项目的CLAUDE.md中,代理将维护跟踪器本身:
```markdown
当您打开、合并或关闭PR以跟踪克里亚中的问题(ID如KRI-42)时,请使用kriya MCP工具更新该问题:相应设置状态并添加链接到PR的评论。
```
## 技术栈
- Tauri 2 + React + TypeScript(桌面应用)
- Supabase — Postgres + RLS,身份验证,实时(可自我托管,Apache-2.0)
- MCP服务器:TypeScript,官方MCP SDK,在您自己的用户权限下运行,通过RLS
## 许可证
MIT