Skip to content

BoltDoggy/boli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

boli

一个受 Claude Code 启发的智能命令行助手。

想了解更多背景?参见 产品介绍
想了解文档驱动开发在本项目中的实践?参见 Showcase 说明

功能特性

  • 单次模式:直接执行单次任务,无上下文保留
  • REPL 模式:持续对话,支持上下文和输入历史(上下键切换)
  • 工具调用:读文件、写文件、编辑、搜索、执行 Shell、向用户提问
  • 内置 Skills/init/loop/commit 等快捷命令
  • 流式 TUI:基于 Ink 的终端交互界面

环境要求

  • Bun
  • pnpm
  • ANTHROPIC_API_KEY 环境变量(或放在 .env 文件中)

安装与使用

从 npm 安装

# 全局安装
npm install -g @boltdoggy/boli

# 单次模式
boli "帮我写一个快速排序"

# 单次模式,不注入项目上下文
boli --no-context "帮我写一个快速排序"

# REPL 模式
boli

不想全局安装时,也可以用 npx

npx @boltdoggy/boli "帮我写一个快速排序"

从源码开发

# 安装依赖
pnpm install

# 从源码直接运行(无需构建)
bun run src/cmd/cli.ts "帮我写一个快速排序"

# 构建产物
pnpm run build

# 用 pnpm 链接本地包进行测试
pnpm link --global
boli "帮我写一个快速排序"

项目架构

src/
├── cmd/           # CLI 入口与参数解析
├── domain/        # 核心领域模型(message、session、skill、tool)
├── infra/         # 基础设施(LLM、文件系统、Shell、配置、持久化)
├── interactive/   # Ink 交互界面(REPL、用户输入、流式渲染)
└── skills/        # 内置 skill 实现
  • domain 层:纯业务逻辑,无框架依赖
  • infra 层:对接外部系统,隔离实现细节
  • interactive 层:负责所有终端交互

开发指引

# 从源码直接运行(无需构建)
bun run src/cmd/cli.ts "帮我写一个快速排序"

# 开发运行 REPL 模式
pnpm run dev

# 类型检查
pnpm exec tsc --noEmit

# 构建
pnpm run build

添加新 Skill

  1. src/domain/skill.ts 中定义 Skill 接口与元数据
  2. src/skills/ 下实现具体逻辑
  3. src/agent/skill-registry.ts 中注册

相关文档

文档 说明
docs/guides/product.md 产品定位与核心能力介绍
docs/guides/showcase.md 文档驱动开发实践说明
docs/requirements/cli-tool-requirements.md CLI 工具需求文档
docs/design/cli-tool-design.md CLI 工具架构设计
docs/adr/ 架构决策记录

当前状态

功能/变更 状态
CLI 工具 MVP(单次/REPL 模式、基础工具调用) ✅ 已完成
P1 增强(/init/loop、输入历史) ✅ 已完成
测试框架引入 ⬜ 待进行
打包分发 ⬜ 待进行

本仓库遵循严格的文档驱动开发流程,详见 CLAUDE.mddocs/guides/showcase.md

About

一个受 Claude Code 启发的智能命令行助手。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors