抽搐
用于问题跟踪的终端UI,专为居住在终端中的开发人员构建。使用本地SQLite存储跨多个后端(GitHub Issues、GitLab Issues、Azure DevOps work items和Jira)跟踪工作项。
使用TypeScript和 墨水.
特性
- 键盘驱动的TUI --无需离开终端即可浏览、创建、编辑和管理工作项
- 多个后端 -GitHub(REST/GraphQL API)、GitLab(REST/GGraphQL API)、Azure DevOps(REST API)、Jira(REST API)
- 内置身份验证 --GitHub、GitLab和Azure DevOps的OAuth设备流,带PAT回退
- 自动后端检测 --基于git remote选择后端,或手动配置
- SQLite存储 --本地存储的所有数据
.tic/tic.db可选择同步到远程后端 - CLI命令 --所有操作的可脚本化命令(
tic item list,tic item create等等) - 工作项类型 --按史诗、问题和任务组织(可配置)
- 迭代 --将工作分组为冲刺或里程碑,可选择开始/结束日期和颜色编码状态(活动、过去、即将到来)
- 亲子关系 --使用可折叠的树缩进视图构建层次结构
- 依赖项 --跟踪哪些项目阻碍了其他项目,并警告提前完成
- 优先权和受让人 --追踪谁拥有什么,什么最重要
- 评论 --为任何工作项添加带时间戳的注释
- 批量操作 --标记多个项目并批量更改状态、类型、优先级、受让人、标签或父项
- 快速搜索 --所有工作项的模糊搜索,无论类型或迭代
- 详图面板 --所选项目的内联预览,支持元数据、描述和滚动
- 撤销 --使用撤消删除、创建和属性更改
u(最多5个动作深) - 内置markdown编辑器 --使用语法高亮显示在TUI中编辑描述,或使用
$EDITOR - 设置屏幕 --在TUI内切换后端并配置Jira连接
- 拉取请求 --从TUI(GitHub后端)查看、创建、合并和关闭PR;将PR链接到工作项
- 分行管理 --从TUI中列出、切换、创建、删除、合并和推送分支;显示的链接工作项
tic/分支;工作台支架 - MCP服务器 --通过模型上下文协议将工作项暴露给AI助手
安装
npm install -g @sascha384/tic快速开始
cd your-project
tic init # Initialize (auto-detects backend from git remote)
tic # Launch the TUItic init 创建一个 .tic/ 使用SQLite数据库存储工作项的目录。对于GitHub、GitLab或Azure DevOps项目,它会自动从git remote检测后端。您还可以明确指定后端:
tic init --backend github
tic init --backend gitlab
tic init --backend azure
tic init --backend jira
tic init --backend none如果没有,TUI在第一次运行时也会自动初始化 .tic/ 目录存在。
用法
列表视图
主屏幕显示按类型和迭代筛选的工作项,显示为反映父子关系的可折叠树。在窄终端(\<80列)中,显示器切换到卡布局。
| 关键 | 行动 |
|---|---|
↑ ↓ | 在项目之间导航 |
← | 折叠孩子或跳到父母身边 |
→ | 扩大儿童 |
PageUp PageDown | 按视口高度跳转 |
Home End | 跳到第一个/最后一个项目 |
Enter | 编辑所选项目 |
c | 创建新工作项 |
d | 删除项目(确认后) |
u | 撤消上次操作(删除、创建或属性更改) |
o | 在浏览器/编辑器中打开项目 |
v | 切换细节面板 |
Space | 展开详细信息面板中的完整描述 |
/ | 快速搜索所有项目 |
: | 命令面板 |
s | 设置状态(单个或标记项目) |
S | 同步状态屏幕 |
p | 为所选项目创建拉取请求 |
m | 切换当前项目上的标记 |
M | 清除所有标记 |
x | 批量操作菜单 |
P | 拉取请求列表 |
B | 分行管理 |
a | 设定受让人(单个或标记项目) |
l | 设置标签(单个或标记项目) |
t | 设置类型(单个或标记项目) |
Tab | 循环工作项类型过滤器(史诗/问题/任务) |
i | 设置迭代(单个或标记项) |
I | 切换迭代(全屏选择器) |
, | 设置 |
b | 为项目创建分支/工作树(需要git) |
r | 与远程后端同步 |
? | 显示键盘快捷键 |
q | 退出 |
该列表显示ID、标题(缩进树)、状态、优先级和受让人。具有依赖关系的项目显示 ⧗ 指示器。标记的项目会突出显示——批量操作适用于所有标记的项目,如果没有标记,则适用于光标项目。
编辑工作项
按 Enter 关于某个项目或 c 创建一个。表单有以下字段:
- 标题 --工作项的名称
- 类型 --史诗、问题或任务(下拉菜单)
- 状态 --待办事项、待办事项、进行中、审查、完成(下拉菜单)
- 迭代 --这属于哪个冲刺/里程碑(下拉列表)
- 优先级 --低、中、高、严重(下拉菜单)
- 受托人 --谁拥有这个(由现有受让人自动完成)
- 标签 --逗号分隔的标签(从现有标签自动完成)
- 描述 --完整细节(在Enter键上打开内置的markdown编辑器,或
$EDITOR如果已配置) - 父母 --父项的ID(从现有项自动完成)
- 取决于 --此依赖项的逗号分隔ID(自动补全)
- 评论 --添加新评论;现有评论显示为只读
使用以下方式导航字段 ↑ ↓,按 Enter 编辑字段,以及 Esc 保存并返回列表。按 ? 寻求帮助。在关系部分编辑相关项目时,按 Enter 导航到该项目(以及 Esc 在堆栈中导航回来)。
迭代
按 I 在列表视图中打开全屏迭代选择器,该选择器显示所有迭代及其日期范围和颜色编码状态(活动、过去、即将到来)。当前迭代会过滤您看到的项目。按 i 在选定或标记的项目上设置迭代。迭代支持可选的开始和结束日期。更改项目的迭代会级联到其非封闭的子代。当您将一个项目分配给一个尚不存在的项目时,会自动创建新的迭代。
关系
亲子关系: 在项目上设置父ID,将其嵌套在另一个项目下。孩子们在树状图中显得缩进。防止了循环父链。
依赖关系: 添加依赖ID以指示某个项目被其他项目阻止。当您尝试完成具有打开的子项或未解决的依赖项的项目时,tic会显示警告,以便您决定是否继续。
删除项目会自动清理引用——子项的父项将被清除,该项目将从其他项目的依赖关系列表中删除。
存储
所有数据都存在于 .tic/ 在项目的根本:
.tic/
├── tic.db # SQLite database (all items, config, undo log)
└── items/ # Markdown mirrors (for sync / human-readable export)
├── 1.md
├── 2.md
└── ...SQLite数据库(.tic/tic.db)是工作项、配置、模板和撤消历史的唯一真实来源。当配置远程后端时, SyncManager 还将markdown镜像写入 .tic/items/ 通过 FilesBackend.
配置(类型、状态、迭代等)存储在 project_config 表,并通过TUI设置屏幕进行管理,或 tic config CLI命令。
如果从旧版升级 .tic/config.yml 设置后,数据库将在首次打开时自动迁移YAML配置。
Claude代码集成
claude plugin marketplace add fa-krug/tic
claude plugin install tic就是这样。该插件在首次使用时会自动安装tic。
克劳德能做什么
- 列出、搜索、创建、更新和删除工作项
- 浏览父子层次结构和依赖关系
- 添加评论并管理迭代
- 管理拉取请求(列出、创建、合并、关闭、链接到项目)
- 管理git分支(列表、切换、创建、删除、合并、推送)
- 在新项目中初始化tic
该插件会自动检测您的后端(GitHub、GitLab、Azure DevOps、Jira或本地),并适应其功能。
更新中
claude plugin update tic@tic或者在Claude Code设置中启用tic市场的自动更新。
命令行命令
tic还为脚本编写和自动化提供了一个完整的CLI:
tic item list # List work items
tic item list --status in-progress # Filter by status
tic item list --type task # Filter by type
tic item show 42 # Show item details
tic item create --title "Fix bug" # Create an item
tic item update 42 --status done # Update an item
tic item delete 42 # Delete an item
tic item comment 42 --body "Done" # Add a comment
tic item open 42 # Open in editor/browser
tic iteration list # List iterations
tic iteration set sprint-2 # Set current iteration
tic config get backend # Get config value
tic config set backend github # Set config value
tic auth login github # Authenticate with GitHub (OAuth device flow)
tic auth login ado # Authenticate with Azure DevOps (Entra ID)
tic auth login ado --pat # Authenticate with a Personal Access Token
tic auth status # Show authentication status
tic auth logout github # Remove stored credentials
tic pr list # List pull requests
tic pr list --status open # Filter PRs by status
tic pr show 123 # Show PR details
tic pr create --title "Feature" --source feat/branch # Create a PR
tic pr merge 123 # Merge a PR
tic pr close 123 # Close a PR
tic pr open 123 # Open PR in browser
tic pr link 123 42 # Link PR to work item
tic pr unlink 123 42 # Unlink PR from work item
tic branch list # List branches with linked items
tic branch switch feat/branch # Switch to a branch
tic branch create feat/new # Create a new branch
tic branch delete feat/old # Delete a branch (and its worktree)
tic branch merge feat/branch # Merge into current branch
tic branch push # Push current branch to remote添加 --json 用于机器可读输出的任何命令,或 --quiet 以抑制非必要的输出。
后端
| 后端 | 身份验证方法 | 检测 |
|---|---|---|
| 仅本地(SQLite) | -- | 默认回退 |
| GitHub问题 | tic auth login github (OAuth)或现有 gh 代币 | github.com 在git远程 |
| GitLab问题 | tic auth login gitlab (OAuth)或PAT | gitlab.com 在git远程 |
| Azure DevOps工作项 | tic auth login ado (输入ID)或 --pat | dev.azure.com 或 visualstudio.com 在git远程 |
| Jira | REST API(在设置中配置) | 通过设置配置 |
每个后端都支持一组不同的功能(类型、状态、迭代、关系等)。TUI和CLI会自动适应,仅显示活动后端支持的内容。
您可以在TUI中按以下键切换后端 , 打开设置。对于Jira,您需要配置站点URL、项目密钥和可选的板ID。
认证
GitHub、GitLab和Azure DevOps使用tic的内置身份验证,凭据安全地存储在您的操作系统密钥链中。如果尚未通过身份验证,当检测到远程后端时,TUI将提示您登录。
github:
tic auth login github # Opens browser for OAuth device flow回落到现有 gh CLI令牌(如果可用)。
GitLab:
tic auth login gitlab # OAuth device code flow (recommended)
tic auth login gitlab --pat # Personal Access TokenAzure DevOps:
tic auth login ado # Entra ID device code flow (recommended)
tic auth login ado --pat # Personal Access Token管理凭据:
tic auth status # Show auth status for all providers
tic auth logout github # Remove stored credentials
tic auth logout azure贡献
看 贡献.md 用于开发设置、架构和约定。
