跳至正文
浏览章节

快速上手

登录一个提供方,跑完第一个回合,读懂 bingo 摆到你面前的那张权限卡片。

在工作所在的地方打开 bingo

cd ~/code/my-project
bingo

管道两端都是终端时,bingo 会占满整个屏幕,打开它的终端界面。只要 stdin 或 stdout 其中之一被重定向,同一个二进制就转为无头运行——见 无头运行。

第一屏是一个欢迎框、一个输入框,以及下面一行状态:

╭──────────────────────────────────────────────────────────────╮
│ ✻ Welcome to bingo!                                          │
│                                                              │
│ /help for help · /login codex to use a subscription          │
│   cwd: ~/code/my-project                                     │
╰──────────────────────────────────────────────────────────────╯
╭──────────────────────────────────────────────────────────────╮
│ > ask anything · / for commands · ! for shell                │
╰──────────────────────────────────────────────────────────────╯
? for shortcuts

登录

在某个提供方拿到凭据之前,什么都跑不起来。用哪条命令,取决于你手上有什么。

bingo login codex       # a ChatGPT subscription, through a browser
bingo login anthropic   # paste an API key
bingo login openai      # paste an API key

对于有 OAuth 签发方的提供方,bingo login <provider> 会打开浏览器;对于用 key 的 提供方,它会让你粘贴凭据(ADR-0012、ADR-0017)。两个 flag 改变它询问的方式: --device 给出一个码,让你在别处的浏览器里输入;--paste 从 stdin 读取一份在别处 签发的凭据。bingo logout <provider> 再把它忘掉。

ANTHROPIC_API_KEY 和 OPENAI_API_KEY 也会被读取,所以一台已经导出了其中之一的 机器根本不必登录。凭据落在 ~/.bingo/data/auth.json,权限位 0600——绝不会落进设置 文件,那是项目会提交的东西。

同样这两条命令在会话内是 /login 和 /logout。更多内容见 提供方与模型。

第一句提示

打一句话,按回车。回来的东西读起来是这样:

> what is in this workspace?

⏺ I'll read the manifest first.

⏺ Read(Cargo.toml)
  ⎿  Read 42 lines

⏺ One workspace, 27 crates: a kernel and its plugins.

> 是你说的,⏺ 是 bingo 说的或做的,⎿ 是回来的东西。一个回合运行期间,输入框 上方会有一行活动行——✻ Simmering… (esc to interrupt · 4s · ↓ 1.2k tokens)——按 esc 停下它。

你也可以直接在命令行上给出提示,那样会跳过前面这些:

bingo "what is in this workspace?"

权限卡片

在工具碰到任何东西之前,bingo 会先问。这个问题是一张卡片,屏幕上唯一亮起边框的东西, 就在提问的那一行下面:

╭──────────────────────────────────────────────────────────────╮
│ Edit                                                         │
│   +line 0                                                    │
│   +line 1                                                    │
│   … +8 lines (ctrl+e to expand)                              │
│                                                              │
│ Do you want to edit src/lib.rs?                              │
│ ❯ 1. Yes                                                     │
│   2. Yes, allow Edit(src/) during this session               │
│   3. No, and tell bingo what to do differently (esc)         │
╰──────────────────────────────────────────────────────────────╯

用数字回答,或者用 y / a / n。选项 2 只为这次会话装上一条规则;它绝不写到磁盘 上。选项 3 让你说清楚该改做什么,那段文字会作为拒绝的理由回到模型那里。ctrl+e 展开问题上方的预览。

什么会被问、什么不问就跑,取决于权限模式和规则表——见 设置与权限。

第一天就值得知道的命令

命令它做什么
/help快捷键与命令面板(? 也能开关它)
/status模型、提供方、上下文,以及这次会话的其余事实
/model [<provider>/]<model>切换下一个回合跑在什么上面
/compact [instructions]立刻把对话记录做一次摘要
/permission <mode>读取或设置权限模式
/clear在这个目录里开一个全新会话
/resume从选择器里重新打开一个早先的会话
/exit离开
!<line>你自己跑一行 shell,不经过闸门

命令用 tab 补全,/ 打开列表。

回到一个会话

每个会话都是磁盘上的一份日志,放在 ~/.bingo/data/sessions/<id>/,所以离开不会丢 任何东西:

bingo --continue      # the most recent session in this directory
bingo --resume <id>   # a particular one

在终端界面里,/resume 会打开选择器,一行一个会话:

Resume
❯ 1. fix the parser · 12 msgs · 2h ago
  2. 请帮我把这个解析器修好 · 1 msg · 1d ago
  3. untitled · 5d ago

下一步:终端界面的全貌。