Adnify-Cli

skill
Security Audit
Warn
Health Warn
  • No license — Repository has no license file
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 10 GitHub stars
Code Warn
  • process.env — Environment variable access in src/application/i18n/AppI18n.ts
Permissions Pass
  • Permissions — No dangerous permissions requested
Purpose
This is an AI-powered command-line programming assistant built with TypeScript. It acts as an interactive terminal workspace that integrates with multiple LLM providers to help developers plan, chat, and execute coding tasks via natural language and standard commands.

Security Assessment
Overall Risk: Low. The tool requires no dangerous system permissions. It accesses environment variables (e.g., `ADNIFY_API_KEY`, `ADNIFY_PROVIDER`) strictly for standard configuration and routing API calls to your chosen LLM provider. Based on the repository structure, there is no evidence of hardcoded secrets, malicious data exfiltration, or unexpected shell execution. The only network requests you should expect are the standard API calls made directly to the AI models you configure.

Quality Assessment
The project is structurally sound and utilizes modern technologies (Bun, Ink, DDD architecture). It is actively maintained, with the most recent code push occurring today. However, there are two major caveats: it is a very new, highly experimental tool with virtually no community adoption (only 5 GitHub stars), and the repository completely lacks an open-source license. While the code may be public, the absence of a license means you technically do not have legal permission to use, modify, or distribute it.

Verdict
Use with caution: the underlying code appears safe, but the lack of a defined software license makes it legally ambiguous for professional or commercial use.
SUMMARY

Adnify-Cli is a next-gen CLI AI coding assistant. Blending Bun speed, Ink interaction and DDD architecture, it empowers efficient, intelligent terminal-first development.

README.md

Adnify-Cli

Command AI Into Real Work.

面向真实工程交付的品牌化 AI 编程终端。

Adnify-Cli 是一个基于 Bun + TypeScript + Ink 构建的 CLI AI 编程助手。它不是把网页聊天简单搬进终端,而是把会话、命令、配置、恢复、持久化和后续 Agent 能力整合成一套稳定、清晰、可持续演进的工程工作台。

项目当前以 DDD 分层架构为骨架,强调:

  • 高性能:终端渲染稳定,流式输出尽量减少抖动与重复渲染。
  • 低耦合:领域、应用、基础设施、展示层职责清晰。
  • 高内聚:会话、配置、存储、提示词、命令系统各自可独立演进。
  • 高复用:端口、用例、Prompt Pack、存储解析和 UI 组件都可复用。
  • 可扩展:为后续工具调用、Agent 编排、多轮执行和插件能力预留清晰入口。

项目定位

Adnify-Cli 想做的不是“一个能聊天的 CLI”,而是“一个真正能陪你在终端里持续工作的 AI 工程助手”。

它会逐步具备这些能力:

  • 像产品,而不只是脚本。
  • 像开发工作台,而不只是问答窗口。
  • 像长期协作者,而不只是一次性生成器。

当前能力

当前仓库已经完成或具备以下基础能力:

  • Bun + TypeScript + Ink 基础工程可运行。
  • DDD 风格分层目录结构已经搭好:
    • domain
    • application
    • infrastructure
    • presentation
  • 支持 chat / agent / plan 三种工作模式。
  • 支持本地命令系统与命令建议面板。
  • 支持流式响应输出。
  • 支持会话文件化持久化。
  • 支持按工作区自动恢复最近会话。
  • 支持 :session / :sessions / :resume 会话管理命令。
  • 支持 :config 系列命令进行模型配置。
  • 支持 :storage 系列命令管理数据目录。
  • 支持运行时切换模型配置。
  • 支持中英双语国际化基础设施。
  • 支持 Prompt Pack 驱动的系统提示词、模式提示词、工具定义和命令定义。
  • 输入交互已做过一轮接近 cc 风格的优化:
    • Esc 优先中止执行或关闭临时面板
    • Tab / Enter 在命令面板中先填入命令,不直接执行
    • 支持输入历史浏览

技术栈

  • Runtime: bun
  • Language: TypeScript
  • Terminal UI: Ink
  • Architecture: DDD-style layered architecture

快速开始

安装依赖:

bun install

开发运行:

bun run dev

构建:

bun run build

测试:

bun test

类型检查:

bunx tsc --noEmit

配置方式

Adnify-Cli 当前支持两类配置来源:

  • 环境变量
  • 本地配置文件

主要环境变量:

  • ADNIFY_PROVIDER
  • ADNIFY_API_KEY
  • ADNIFY_BASE_URL
  • ADNIFY_MODEL
  • ADNIFY_LOCALE
  • ADNIFY_HOME

其中:

  • ADNIFY_LOCALE 用于指定界面语言,当前支持 zh-CNen
  • ADNIFY_HOME 用于直接指定整个应用的数据目录

当设置了 ADNIFY_HOME 时,会优先于本地保存的自定义存储路径。

推荐配置命令

推荐优先使用 CLI 命令配置,而不是把配置过程塞进会话流里:

  • :config
  • :config init
  • :config set provider <value>
  • :config set model <value>
  • :config set api-key <value>
  • :config set base-url <value>
  • :config clear api-key

:config init 当前会进入一个临时的输入面板配置模式,而不是把整段配置对话写进会话区。

数据存储设计

这是当前版本很重要的一部分能力。

Adnify-Cli 已支持:

  • 文件化配置存储
  • 文件化会话存储
  • 自定义数据目录
  • 跨平台默认路径解析
  • 存储目录迁移

默认路径

Windows:

  • settings: %APPDATA%\Adnify-Cli\settings.json
  • data: %LOCALAPPDATA%\Adnify-Cli

macOS:

  • settings/data root: ~/Library/Application Support/Adnify-Cli

Linux:

  • settings: $XDG_CONFIG_HOME/adnify-cli~/.config/adnify-cli
  • data: $XDG_DATA_HOME/adnify-cli~/.local/share/adnify-cli

当前数据内容

数据目录当前包含:

  • config.json
  • sessions/<sessionId>.json

自定义数据目录

支持两种方式:

  1. 设置环境变量 ADNIFY_HOME
  2. 通过 CLI 命令保存到 settings.json

相关命令:

  • :storage
  • :storage set <path>
  • :storage reset

当执行 :storage set <path> 时,CLI 会尝试把现有 config.jsonsessions/ 迁移到新目录。

这部分设计的目标是:

  • Windows 用户不必被迫把所有数据都放在 C 盘
  • 用户有显式控制权
  • 未配置时仍能回退到系统标准目录
  • Linux / macOS / Windows 三端行为保持一致

会话行为

当前会话系统具备这些行为:

  • 每个工作区拥有自己的会话历史。
  • 启动时优先恢复当前工作区最近一次会话。
  • 如果当前工作区没有历史会话,则自动创建新会话。
  • 第一条真实 prompt 提交后,会话标题会根据内容自动生成。
  • 支持最近会话查看与恢复。

相关命令:

  • :session
  • :sessions
  • :resume [index|id]
  • :clear

本地命令

当前内置命令包括:

  • :help
  • :mode chat
  • :mode agent
  • :mode plan
  • :workspace
  • :tools
  • :model [provider] [model]
  • :config
  • :config init
  • :config set provider [value]
  • :config set model [value]
  • :config set api-key [value]
  • :config set base-url [value]
  • :config clear api-key
  • :session
  • :sessions
  • :resume [index|id]
  • :storage
  • :storage set [path]
  • :storage reset
  • :clear
  • :exit

Prompt Pack

prompts/ 目录下的 Markdown 文件用于驱动以下内容:

  • 助手身份
  • 系统提示词
  • 模式提示词
  • 工具定义
  • 本地命令定义

这意味着提示词系统不是硬编码在核心逻辑里,而是作为一套可维护、可替换、可迭代的资源存在。

这对后续演进很重要,因为它能让我们:

  • 更容易做品牌化角色表达
  • 更容易做不同模式下的提示词拆分
  • 更容易做工具定义的版本化管理

目录结构

Adnify-Cli/
|-- .rules/
|-- prompts/
|-- src/
|   |-- application/
|   |-- domain/
|   |-- infrastructure/
|   |-- presentation/
|   `-- main.tsx
|-- package.json
|-- tsconfig.json
|-- todolist.md
`-- README.md

架构说明

src/domain

核心领域模型、聚合根、值对象和领域行为。

src/application

用例编排、端口定义、DTO、国际化和应用层支持逻辑。

src/infrastructure

模型网关、配置读写、存储实现、Prompt 加载、日志与工作区探测。

src/presentation

Ink UI、交互控制器、终端布局、输入处理和视图组件。

开发规范

仓库内置 .rules/ 目录,用来约束 vibecoding 过程中的协作方式、架构边界和交付质量。

当前进度判断

如果按里程碑粗略划分:

  • M1 会话持久化与启动恢复:基本完成
  • M2 工具调用与 Agent 能力:基础骨架已在,核心能力待接入
  • M3 多轮工具执行与完整协作链路:待继续开发

下一阶段重点

接下来更值得继续推进的方向:

  • 真正接入工具执行链与 Agent 多轮编排
  • 继续优化会话区、sessions 列表和命令视窗的展示逻辑
  • 清理国际化文本编码问题
  • 补足更完整的存储设置说明与体验
  • 为后续插件、记忆和权限策略预留扩展点

项目信息

  • Project: Adnify-Cli
  • Author: adnaan
  • Package Manager: bun
  • Terminal UI: Ink

Reviews (0)

No results found