AI开发环境工具

一个基于AI的macOS开发环境,通过Nix和Just实现声明式包管理和可组合设置。

  • by bBlazewavE
  • Lua
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 bBlazewavE/shellsmith

使用说明

贝壳匠

一个完整的基于人工智能的macOS开发环境。声明性包通过 尼克斯,可组合设置通过 就,可在任何Mac上复制。

快速开始

新鲜的Mac

git clone https://github.com/bBlazewavE/shellsmith.git ~/.shellsmith
cd ~/.shellsmith
./bootstrap.sh                      # installs Xcode CLI tools + Nix
nix develop --command just setup    # links configs, injects zshrc, installs npm extras
source ~/.zshrc

现有Mac(已安装Nix)

cd ~/.shellsmith
nix develop --command just setup

建筑

flake.nix              ← declares all packages (Nix devShell)
justfile               ← recipes: setup, link, zshrc, npm, mcp, orch-*, status, clean, update
bootstrap.sh           ← one-time script (Xcode CLI + Nix)
shell/zshrc_block.zsh  ← shell config injected into ~/.zshrc
nvim/                  ← Neovim config (symlinked to ~/.config/nvim)
tmux/                  ← tmux config (symlinked to ~/.tmux.conf)
mcp/                   ← MCP server templates (GitHub, Jira, Slack, Linear, Notion)
orchestrator/          ← async plan-and-execute pipeline (orch CLI)

安装流量: bootstrap.sh → nix develop → just setup

安装什么

工具 用途 通过安装
尼奥夫 具有LSP、补全、模糊查找功能的初级编辑器 Nix
终端复用器 用于多窗格会话的终端多路复用器 Nix
克劳德代码 AI编码助手(CLI) Nix(社区片)
π AI编码代理 npm
懒鬼 git的终端用户界面 Nix
电液动方型闸阀 模糊查找器(文件、历史、目录) Nix
文件描述符 快速文件查找器(由fzf/Telescope使用) Nix
ripgrep 快速文本搜索(望远镜使用) Nix
写作 终端文件管理器 Nix
星际飞船 跨shell提示 Nix
高 GitHub CLI Nix
Node.js 22 npm包和LSP服务器需要 Nix
就 用于设置配方的命令运行器 Nix

只是食谱

食谱 它的作用
just setup 运行link、zshrc、npm(默认)
just link Symlinks nvim/和tmux.conf(带备份)
just zshrc 将shell块注入到标记之间的~/.zshrc中
just npm 安装Nix未涵盖的npm全局变量
just mcp 交互式MCP服务器设置(GitHub、Jira、Slack等)
just mcp github 配置特定的MCP服务器
just mcp-list 列出可用的MCP服务器模板
just mcp-status 显示已配置的MCP服务器
just status 显示当前状态(符号链接、包、MCP、shell块)
just clean 删除符号链接和zshrc块
just update 跑步 nix flake update 和 npm update -g
just orch-setup 安装编排器Python依赖项并创建状态目录
just orchestrate <task> 提交异步规划任务
just orch-status 列出所有编排器任务
just orch-show <id> 显示任务详细信息、计划和结果
just orch-approve <id> 批准计划并开始执行
just orch-cancel <id> 取消任务并杀死其worker
just orch-logs <id> 打印任务日志文件

所有食谱都是幂等的——可以安全地重复运行。

组件

尼奥夫

带有lazy.nvim插件管理器的完整IDE配置。插件在首次启动时自动安装。

插件包括:

  • 主题: 卡布奇诺摩卡
  • LSP: Mason+nvim lspconfig(自动安装Lua、Python、TypeScript、Go、Rust、HTML、CSS、JSON、YAML、Bash的服务器)
  • 完成: 带LSP、缓冲区、路径和代码段源的nvim-cmp
  • 模糊发现: fzf原生望远镜
  • 树座 : 语法高亮显示、文本对象、增量选择
  • 文件树: 新树
  • Git: Gitsign(内联diff标记)
  • UI: 缓冲线、Lualine、哪个键、dressing.nvim、nvim通知
  • 编辑: 自动播放、Comment.nvim、nvim环绕、缩进空白行
  • 其他: 智能拆分,自动保存(默认关闭,切换 :ASToggle)

终端复用器

  • 前缀: Ctrl-a (不是默认值 Ctrl-b)
  • 老鼠 已启用(滚动、单击、调整大小)
  • 真实颜色: 配置为256色终端
  • Catppucci匹配状态栏

壳牌(zsh)

将标记分隔块注入 ~/.zshrc (保留现有配置)。包括:

  • Nix守护进程源代码
  • EDITOR / VISUAL 设置为nvim
  • fzf外壳集成
  • 星舰提示
  • 别名和 dev 函数

MCP服务器(将AI连接到外部服务)

MCP(模型上下文协议)允许Claude Code和Pi与外部服务交互——搜索Jira问题、创建GitHub PR、发布到Slack,所有这些都可以从您的AI编码会话中完成。

可用服务器:

服务器 服务 需要身份验证
github 问题、PR、repos、代码搜索 gh auth login
jira Jira问题,Confluence页面 Atlassian API令牌
slack 频道、消息、线程 Slack机器人令牌
linear 问题、项目、团队 线性API键
notion 页面、数据库、搜索 通知API密钥

快速设置:

# Interactive — pick which servers to enable
nix develop --command just mcp

# Direct — configure specific servers
nix develop --command just mcp github
nix develop --command just mcp github jira slack

# Check what's configured
just mcp-status

如果您已经运行过GitHub,则GitHub为零配置 gh auth login --它直接使用GitHub CLI。

对于基于令牌的服务(Jira、Slack等),安装程序将提示输入凭据或从环境变量中读取凭据。模板位于 mcp/ --通过在那里放置一个JSON文件来添加自己的文件。

编排器(异步计划和执行)

一种非阻塞的流水线,将任务分派到一个思维模型进行规划,然后再分派到较小的模型进行执行。所有API调用都在后台进程中运行—CLI会立即返回。

状态机: planning → planned → executing → completed (或 cancelled / failed)

用途:

just orch-setup                           # one-time: install deps
orch run "Add retry logic to api.py"      # submit task → plans in background
orch status                               # check progress
orch show <id>                            # view the plan
orch approve <id>                         # start execution
orch show <id>                            # view the result
orch logs <id>                            # view worker output

模型默认为Claude Sonnet(计划者)和Claude Haiku(执行者),可通过以下方式覆盖 ORCH_PLANNER_MODEL / ORCH_EXECUTOR_MODEL env变量。管道配置存在 orchestrator/pipelines/plan-execute.yaml.

Pi(主要AI接口)

Pi是 dev 会议。它支持15个以上的模型提供商——使用Claude完成复杂的任务,并切换到更便宜的模型进行快速提问,以优化代币支出。Claude Code作为提供程序安装在Pi中。

安装后,设置身份验证。您可以使用以下任一方式:

  • 克劳德代码OAuth令牌: claude setup-token 然后 export ANTHROPIC_API_KEY=<token>
  • 控制台API密钥: 从console.anthropic.com获取一个
  • 其他供应商: 集 GOOGLE_API_KEY, OPENAI_API_KEY等等。

快捷方式和别名

外壳

命令 操作
dev 启动tmux会话:Neovim(文件选择器)+Pi
dev myproject 相同,使用自定义会话名称
v nvim
lg lazygit
y yazi
cc claude
orch python3 ~/.shellsmith/orchestrator/orch.py

终端复用器

关键 行动
Ctrl-a | 水平拆分窗格
Ctrl-a - 垂直拆分窗格
Alt-Arrow 导航窗格(无前缀)
Ctrl-a c 新建窗口
Ctrl-a r 重新加载tmux配置

尼奥夫

关键 行动
Space 领导密钥
Space e 切换文件树
Space ff 查找文件
Space fg 实时grep
Space fb 查找缓冲区
Space fr 最近的文件
Shift-H/L 上一个/下一个缓冲区
gd 转到定义
gr 转到参考文献
K 悬停文档
Space ca 代码操作
Space rn 重命名符号
Space d 显示诊断
gc 切换评论
Ctrl-s 保存文件

更新

所有配置都是符号链接的,因此拉取repo会更新它们:

cd ~/.shellsmith
git pull

有关工具和软件包更新:

nix develop --command just update

卸载

cd ~/.shellsmith
nix develop --command just clean

这将删除符号链接和zshrc块。要彻底清理:

# Remove installed data
rm -rf ~/.local/share/nvim/lazy    # Neovim plugins
# Remove the repo
rm -rf ~/.shellsmith

验证

just status                # check symlinks, packages, shell block
which claude               # should resolve to Nix store or npm global
which nvim                 # should resolve to Nix store
nix flake check            # validate the flake
source ~/.zshrc && dev     # launch the tmux dev session

事件解决手册

Neovim插件安装失败

rm -rf ~/.local/share/nvim/lazy
nvim  # lazy.nvim will re-bootstrap

LSP服务器未启动

# Inside Neovim:
:Mason          # Check server status
:LspInfo        # Check attached clients
:LspLog         # View error logs

tmux未使用正确的颜色

确保您的终端模拟器支持真彩色,并设置为 xterm-256color.如果需要,添加到终端设置中:

export TERM=xterm-256color

未找到克劳德代码

which claude               # Check PATH
just status                # Check overall state
source ~/.zshrc            # Reload shell

故障排除

图标看起来坏了? 安装Nerd字体:

# Via Nix (ad-hoc)
nix-env -iA nixpkgs.nerd-fonts.jetbrains-mono

然后将其设置为终端的字体。

望远镜坏了? 确保ripgrep可用——如果你在Nix-dev shell中,它应该是可用的:

which rg

fzf键绑定不起作用? 确保 source <(fzf --zsh) 在Oh My Zsh来源于您的 .zshrc.

许可证

麻省理工学院