Catalog npm
Back to packageRELEASE DETAILS

0.0.11

npm

1context

Standalone agent-wiki engine: path-scoped knowledge injection for coding agents (Claude Code, Codex, Pi)

Published17 Aug 2026
Direct dependencies4
Transitive dependenciesNot calculated

README

Current package documentation

1context

1context 根据当前文件或用户消息,把相关项目知识发送给 Claude Code、Codex 和 Pi。它还会在长会话中再次提醒,记录每次发送,并提供候选知识的 A/B 验证流程。

这个目录是 npm 包源码,也是团队成员实际安装的版本。仓库根目录中的 Python 版只用于行为对拍。

安装和初始化

需要 Node.js 20 或更高版本。

npm install -g 1context
cd your-project
1context init

1context init 会生成或更新:

文件作用
.onecontext.json设置 Wiki 目录和再次提醒间隔
wiki/example-rule.md第一条示例;Wiki 中已经有 Markdown 文件时不生成
.claude/settings.local.json让 Claude Code 运行 1context hook
.codex/hooks.json让 Codex 运行 1context hook --host codex
.pi/settings.json让 Pi 加载 npm 包内的 dist/pi.js 扩展

宿主检测来自项目目录和 PATH。重复运行会更新 1context 自己的配置,不会 重复添加,也不会删除其他 hook 或扩展。

npm 包同时提供 1context 和 onecontext 两个命令名。它们完全相同。

写第一条知识

---
paths:
  - "src/api/**"
description: API 输入检查
---

读取任何字段前,先用 Zod 检查 API 输入。

重新启动 Agent。它用文件工具读取或修改 src/api/ 下的文件后,会在下一次 模型回复前收到正文。

也可以按用户消息中的关键词触发:

---
triggers:
  - "production release"
description: 生产发布检查
---

先运行 `npm run release:check`,通过后才能发布。

同时没有 paths 和 triggers 的条目是全局知识,在会话开始时发送。

为什么 Pi 使用扩展

Claude Code 和 Codex 支持通过标准输入和输出运行外部 hook,所以它们的 配置调用 CLI。Pi 只支持进程内 TypeScript 扩展,因此 npm 包把 ts/src/pi.ts 编译成 dist/pi.js,再把这个文件写入 .pi/settings.json。

本仓库只有这一份 Pi 扩展源码。早期独立的 adapters/pi/ 已删除,避免实验 代码和 npm 正式代码继续产生不同结果。

Pi 第一次读取项目级设置时会询问信任。无人值守的临时测试使用:

pi --approve -p "your task"

Pi 的路径知识只会被 read、edit、write 文件工具触发。通过 bash 读取 文件不会触发。

条目字段

---
paths:
  - "src/api/**"
triggers:
  - "deploy"
mode: full
description: API 发布检查
reinject_turns: 30
---

这里写发给 Agent 的具体规则。
字段作用
paths文件工具访问匹配路径后发送
triggers用户消息包含关键词时发送,不区分大小写
modefull 发送正文;index 只发送说明和文件位置
description条目短说明,mode: index 时必须清楚
reinject_turns这条知识再次发送前至少间隔多少回合

正文支持两种特殊写法:

  • @relative/file.md 在发送时引入另一个文件,最多三层;代码块内不展开。
  • !`command` 插入命令输出。默认关闭,必须在 .onecontext.json 中 设置 "allowShellExecution": true。

常用命令

命令用途
1context init创建项目文件并连接检测到的宿主
1context install --claude|--codex|--pi单独连接一个宿主
1context status显示项目、Wiki、条目和验证状态
1context gc报告从未使用或需要复查的条目,不删除文件
1context compile --target claude-rules|agents-md生成静态宿主文件
1context extract从 Claude Code、Codex 或 Pi 会话中提出候选知识
1context gate用 Claude Code、Codex 或 Pi 比较有无候选知识的结果
1context promote把已通过 gate 的候选移入正式 Wiki
1context analyze读取三种宿主的会话,判断已发送知识是否影响任务
1context dream选择宿主和模型,在副本中整理重复、冲突和可能过期的条目

正式知识流程是:

extract → wiki/candidates/ → gate → promote → analyze → gc

wiki/candidates/ 中的文件不会发送给 Agent。

extract、gate、analyze 和 dream 都支持 --harness claude|codex|pi 和 --model <model>。extract 和 analyze 另有 --session-host,用于说明被读取的会话来自哪个宿主。

测试未发布的包

维护者先生成 tarball:

cd ts
npm pack

接收 tarball 的成员安装后,在临时项目测试:

npm install -g ./1context-0.0.3.tgz
cd your-project
1context init
1context status

npm pack 会先构建 TypeScript。npm publish 会先运行完整测试。使用 1context --version 可以确认当前 shell 实际找到的版本。

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 4

Native requirements
4 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
zod
Environment
{
  "local_name": "zod",
  "alias": false,
  "peer_metadata": null
}
^3.25.76runtime
yaml
Environment
{
  "local_name": "yaml",
  "alias": false,
  "peer_metadata": null
}
^2.8.0runtime
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^5.7.0development
@types/node
Environment
{
  "local_name": "@types/node",
  "alias": false,
  "peer_metadata": null
}
^22.10.0development

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "9dab724367d3feddda8eded767a67d60a6bf6d6e",
  "tarball": "https://registry.npmjs.org/1context/-/1context-0.0.11.tgz",
  "fileCount": 16,
  "integrity": "sha512-ssQt6K1wEVsWnNtLZXAHXEaGj+4b7xXdIFfgUNwsUCiFk905AEE9AmVZGEa06IMD0UZjlviQolkl6aPiKgVg+g==",
  "signatures": [
    {
      "sig": "MEYCIQCle0RVDaEI6Ze1wBZRZOEgjhBbEQ5TfXcIgCS2p/DCowIhAKE4IP64rv0qOrgo39qfEJgeY+1KnF/Am1Rls2Cm7SIx",
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
    }
  ],
  "unpackedSize": 232034
}

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:27 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:5a2cc44651d78eaa984e30814b83351b27263da6a5ed07c92d86bc3efea0cb49

Other collected versions

0.0.1418 Aug0.0.1317 Aug0.0.1217 Aug0.0.1017 Aug0.0.917 Aug0.0.817 AugView all collected versions →