npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

kilosc

v1.1.10

Published

Switch Kilo auth profiles and generate multi-host agent prompts.

Readme

kilosc

一个用于切换 Kilo auth.json 账号配置和生成多宿主提示词文件的 Bun + TypeScript 命令行工具。

命令

kilosc init
kilosc add
kilosc set
kilosc put
kilosc info
kilosc tip

说明:

  • init:输入完整的 Kilo auth.json 路径,并保存到 ~/.kilosc.json
  • add:把当前 auth.json 保存成一个配置快照
  • set:选择配置快照,再选择其中的账号键,并写回当前 auth.json
  • put:从当前 auth.json 选择子项写入已有快照
  • info:显示当前配置路径和快照列表
  • tip:按当前目录的模板和目标配置生成提示词文件

使用账号切换命令前先执行:

kilosc init

示例输入:

/Users/dj/.local/share/kilo/auth.json

配置快照会保存到:

<auth.json 所在目录>/kilosc/<名称>.json

set 只会替换你选择的账号键,不会删除其它 provider。比如选择 openai 时,只会替换 auth.json.openai

提示词生成

在工作目录中创建固定结构:

.
├── config.js
└── prompts/
    ├── agent.md
    └── review.md

prompts/ 只扫描直属的 .md 文件,不递归,并按文件名排序。config.js 是受信任的 ESM,默认导出至少一个生成目标:

export default [
  {
    name: "kilo",
    suffix: "md",
    path: "~/.config/kilo/agents",
    vars: {
      agent: "Kilo",
      "project.name": "kilosc",
    },
  },
  {
    name: "codex",
    suffix: "toml",
    path: "~/.codex/agents",
    vars: {
      agent: "Codex",
      "project.name": "kilosc",
    },
  },
]

path 支持绝对路径、相对 config.js 所在目录的路径、~~/...。每个模板会对每个目标生成同名文件,并将扩展名改为 suffix

模板只支持 ${identifier} 纯文本变量替换,变量名规则为 [a-zA-Z_][a-zA-Z0-9_.-]*,因此 ${colon} 可对应值 :,但不支持 ${:}。变量值支持冒号、等号、单双引号、换行、frontmatter、$&${other} 等任意原始文本;值只插入一次,不递归展开。未知变量、非法、空或未闭合占位符都会使整批生成失败。

kilosc tip

每次执行都会全量生成并覆盖所有目标文件,即使内容相同也会实际替换。现有普通文件会被覆盖;现有、有效且指向普通文件的符号链接会被替换为普通文件,符号链接原目标不变。所有配置、模板、渲染结果、目标路径、输出类型和写入条件会在任何写入前检查;单个文件通过同目录临时文件和 rename 原子替换,但整个批次不承诺事务性,运行时故障仍可能导致部分文件已更新。

Kilo/Codex 双宿主智能体原型

仓库内的 test/agent 提供一个将六个智能体转换到 Kilo 和 Codex 的通用语法拼接原型:

test/agent/
├── config.js
├── prompts/
│   ├── code.md
│   ├── icon.md
│   ├── test.md
│   ├── ui.md
│   ├── workOrder.md
│   └── workSub.md
└── generated/
    ├── kilo/               # 六个同名 .md 文件
    └── codex/              # 六个同名 .toml 文件

config.js 只保存两种宿主的语法符号与文档结构,字段名和智能体数据留在 prompts/*.md;所有输出路径均相对该配置文件:

export default [
  {
    name: "kilo",
    suffix: "md",
    path: "./generated/kilo",
    vars: {
      document_open: `---
`,
      name_comment: "# ",
      mode_comment: "",
      assign: ": ",
      quote: `"`,
      body_open: `---

`,
      document_close: "",
    },
  },
  {
    name: "codex",
    suffix: "toml",
    path: "./generated/codex",
    vars: {
      document_open: "",
      name_comment: "",
      mode_comment: "# ",
      assign: " = ",
      quote: `"`,
      body_open: `developer_instructions = '''
`,
      document_close: `
'''`,
    },
  },
]

每个 prompts/*.md 保存该智能体的数据,并通过相同的宿主语法变量拼接。例如 prompts/code.md 的开头为:

${document_open}${name_comment}name${assign}${quote}code${quote}
description${assign}${quote}编码模式${quote}
${mode_comment}mode${assign}${quote}all${quote}
${body_open}你是一名资深软件工程师,精通多种编程语言、框架、设计模式和最佳实践以及对应语言的最新写法和对应规范

## 执行流程
...${document_close}

因此,同一份源模板可生成 Kilo frontmatter:

---
# name: "code"
description: "编码模式"
mode: "all"
---

你是一名资深软件工程师,精通多种编程语言、框架、设计模式和最佳实践以及对应语言的最新写法和对应规范

在原型目录执行生成:

cd test/agent
bun run ../../src/index.ts tip

Codex 结果是 standalone custom agent TOML,三单引号字面量不会把正文中的反斜杠当作 TOML 转义:

name = "code"
description = "编码模式"
# mode = "all"
developer_instructions = '''
提示词正文
'''

字段名与六个智能体各自的名称、描述、模式和正文都保留在模板中;配置变量只适配宿主的注释、赋值、引号和文档包装结构。Kilo 的 name 由文件名决定,所以生成结果用 YAML 注释保留该字段;Codex 不支持 Kilo 的 mode,所以用 TOML 注释保留。

只修改 prompts/*.md,不要反向编辑 generated/kilosc tip 每次都会全量覆盖生成文件。生成器只做纯文本插入,不理解或转义 Markdown、YAML、TOML 等宿主格式,因此包装必须由目标变量提供。

变量值可以包含冒号、等号、单双引号、换行、frontmatter、$&${other},插入后不会递归解析;${colon} 可以映射为 :${:} 因变量名不符合 [a-zA-Z_][a-zA-Z0-9_.-]* 而非法。如果 Codex 正文可能出现连续的 ''',必须为该目标更换包装方案,否则会提前结束 TOML 字面量;生成器不会自动转义宿主格式。

本地开发

bun run src/index.ts init
bun run src/index.ts add
bun run src/index.ts set
bun run check

构建

bun run build

npm 命令入口指向:

dist/index.js

本地全局链接

bun run gLink
kilosc init
kilosc add
kilosc set

解除本地全局链接:

bun run gUnlink

发布

bun run proPub

切换配置后,建议重启 Kilo 或 VS Code 扩展后端,确保新的认证信息生效。