Automated Claude Code task runner
Project description
t-loop
自动化 Claude Code 任务运行器。用 YAML 定义任务,t-loop 按顺序执行,自带 git 安全保护。
安装
pip install t-loop # 从 PyPI 安装
pip install -e . # 本地开发安装
需要 Python >=3.9,唯一外部依赖:pyyaml。
快速开始
# 首次运行会创建 ~/.tloop/tasks.yaml 示例配置
tloop run
# 编辑任务后运行
tloop edit
tloop run
任务配置
编辑 ~/.tloop/tasks.yaml:
tasks:
- name: 我的第一个任务
dir: ~/projects/my-project
prompt: |
描述 Claude 应该做什么。
- name: 使用 prompt 文件的任务
dir: ~/projects/my-project
prompt_file: ./prompts/my-task.md
branch: feat/login # 自定义分支名
任务字段
| 字段 | 说明 |
|---|---|
name |
任务显示名称 |
dir |
任务工作目录 |
prompt |
内联 prompt 文本 |
prompt_file |
prompt 文件路径(解析顺序:绝对路径 → ~/.tloop/ 相对 → 任务目录相对) |
model |
覆盖该任务的模型 |
branch |
true(自动 feature-YYYYMMDD-NNN)、"custom/name"、或 false(跳过分支) |
用法
tloop run # 运行所有待执行任务
tloop run --status # 查看任务状态
tloop run --only 2 # 只运行第 2 个任务
tloop run --confirm # 每个任务前确认
tloop run -c # 失败后继续执行
tloop run --reset # 重置所有任务为待执行
tloop edit # 用 $EDITOR 打开 tasks.yaml
tloop archive # 列出归档记录
tloop archive --latest # 显示最近一次归档详情
tloop migrate # 迁移旧的项目本地数据到 ~/.tloop/
工作原理
每个任务的执行流程:
- 自动提交 — 如果工作目录有未提交的更改,t-loop 会用 Claude 先提交暂存区内容,再提交剩余更改。敏感文件(.env、密钥等)会被排除。
- 创建分支 — 创建任务分支(默认
feature-YYYYMMDD-NNN)隔离更改。 - 执行任务 — 在目标目录运行
cybervisor run <prompt>。 - 归档 — 已完成的任务移至
~/.tloop/archive/,并从tasks.yaml中移除。
文件位置
~/.tloop/
├── tasks.yaml # 任务定义
├── state.json # 运行时状态(任务状态)
├── logs/ # 执行日志
└── archive/ # 已完成任务的归档
开发
pip install -e .
python -m pytest test/ -v
许可证
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tloop_cli-0.4.0.tar.gz
(18.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
tloop_cli-0.4.0-py3-none-any.whl
(15.5 kB
view details)
File details
Details for the file tloop_cli-0.4.0.tar.gz.
File metadata
- Download URL: tloop_cli-0.4.0.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b117431f462a9c4132361011008f26f6f64340f3710a8d20be337b2db0bdd51
|
|
| MD5 |
c94806f485917d3082a89fe0352ff146
|
|
| BLAKE2b-256 |
c8cebcbd21cc959fc12c5c591acc34574941ac11dbe504a0ef0cf4632e9ab37a
|
File details
Details for the file tloop_cli-0.4.0-py3-none-any.whl.
File metadata
- Download URL: tloop_cli-0.4.0-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2a7c408d94824c5c36b6a6f15cd07bfd26584b4777e52603c354606ad1937c3
|
|
| MD5 |
c258fffddc5cce18c58055d83dad9104
|
|
| BLAKE2b-256 |
0fc04ae28fbab8a454ff2260bf95055c33800254f528b5fd91014657df582a7a
|