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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@jixo/cli

v4.0.0

Published

AI 工具集

Downloads

60

Readme

@jixo/cli

AI 工具集

jixo G 命令使用简介

  1. jixo G [dir] [--watch] 用于监听一个文件夹里的 *.meta.md 文件,用于生成 *.meta.gen.md 文件
  2. jixo G 的目的是让开发者高效地编写提示词,将上下文信息整理到md文件中。
  3. 通常来书,对于一个项目(代号xxx),我至少会有3个文件:
    1. xxx.meta.md 用来提供系统提示词
    2. xxx-start.meta.md 用来提供第一次与AI对话的
    3. xxx-coder.meta.md 用来与AI进行常规对话
  4. *.meta.md 的一些语法和功能:
    1. 会自动移除markdown注释。
      • 这点对于xxx-coder.meta.md来说非常重要,因为我会使用xxx-coder.meta.md的注释来存放历史记录。
      • 有这些历史记录中,方便快速编写新的提示词。
      • 这种基于单文件的,会比直接记录聊天框的操作高效很多。
    2. [path_or_glob](@INJECT) 注入一个或者多个文件内容。用于将多个md文件组合成一个md文件。
    3. [path_or_glob](@FILE) 注入一个或者多个文件,但是会有coder包裹起来。用于将文件、代码包裹在md文件中向AI进行提供
    4. [path_or_glob](@FILE_TREE) 用来提供一个文件树信息。适合向AI提供一整个项目的文件列表信息。比如你是前端项目,会有很多图片文件,有了这个文件树信息,AI在帮你写代码的时候,就能书写正确的文件路径
    5. @INJECT @FILE @FILE_TREE 默认都是遵守 gitignore 标准的,所以放心使用。
    6. [path_or_glob](@GIT_FILE) 类似(@FILE),不同的是基于“用户Git工作空间”的视角。

      比如你一个文件夹a/b/c/里面有10个文件,你只修改了一个d.js文件。 那么[a/b/c/**](@GIT_FILE)只会列出 d.js这个文件的内容。 对比[a/b/c/**](@FILE) 是会列出所有10个文件的内容。

    7. [path_or_glob](@GIT_DIFF) 类似[path_or_glob](@GIT_FILE)的工作原理,同样基于“用户Git工作空间”的视角。

      不同的是,它是生成diff格式的内容,而不是完整的文件内容。 因此适用于描述一个大文件里的一些小变更。

    8. [commit:path_or_glob](@GIT_FILE)类似(@FILE),不同的是基于“用户Git历史记录”的视角。

      比如[HEAD:**](@GIT_FILE) 可以提供上一次提交的所有内容 通常的用法是,AI做不好的东西,我自己做好了,然后就独立做了这个commit,然后将这些特别的变更内容通过这种方式快速提供给AI。 还有一种特别的用法,就是可以用来获取一些你已经删除的文件。

    9. [commit:path_or_glob](@GIT_DIFF)类似[commit:path_or_glob](@GIT_FILE)的工作原理,同样基于“用户Git历史记录”的视角。
    10. 一些特殊的path_or_glob(目前只有一个):
      1. [jixo:coder](@INJECT): 使用jixo提供的“编程”提示词,进行协同编码

        我一定是将这段填写到 xxx.meta.md 的顶部的。 这个提示词可以让AI进行大规模的项目开发,针对复杂需求生成大量代码。 当然,代码质量的好坏取决于模型本身的编程能力。

      2. TODO:[jixo:memory](@INJECT): 使用jixo提供的“记忆”提示词,自动梳理记忆成书
  5. 可以看到,以上这些语法工具目的都是在解决“上下文生成”的需求。回看我个人的习惯,加强认知:
    1. 我自己会在xxx.meta.md系统提示词中提供 “规范、约束、目标、记忆”

      1. [jixo:coder](@INJECT) 已经提供了对话的 “规范、约束”
      2. 目标和记忆通常是我自己整理的,对于复杂的项目是需要的,对于开发一个组件什么的这种小需求,就完全不需要。

        所以我计划提供agent来专门做这部分的自动化

    2. 我会在xxx-start.meta.md中将开发需要的必要代码文件提供。

      1. 主要是项目要修改的文件、还有整体的文件数
      2. 如果是大型项目,那么要从分利用AI的幻觉:

        比如你的目标是开发 @xxx/a,但是它依赖了 @xxx/b,同时你不打算修改@xxx/b。 如果你的@xxx/a中已经有@xxx/b的一些接口使用的用例,那么你就完全不需要提供@xxx/b的用法。 只给@xxx/a的代码就够了,你要相信AI的幻觉。

    3. 我会在xxx-coder.meta.md做一些资料的整理,并附上一些终端的信息,比如:

      谢谢,我review并修复了你提交的代码:
      
      [`**/*.{json,ts,mts}`](@GIT_DIFF)
      
      目前tsc报错如下:
      
      ```
      [02:32:29] File change detected. Starting incremental compilation...
      
      bfm-rwa-e2e-tests/product-submission.e2e.test.ts:3:30 - error TS2307: Cannot find module '../bfm-rwa-hub-service/src/app.debug.mts' or its corresponding type declarations.
      
      3 import { startTestHub } from "../bfm-rwa-hub-service/src/app.debug.mts";
                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      [02:32:29] Found 1 error. Watching for file changes.
      ```

      jixo-coder会自动对比你最新提供代码信息,然后自动学习总结出你的技巧。接着它也知道修复tsc错误。

jixo A 命令使用简介

  1. jixo A [some-md-files] [-G] 基于jixo:coder相应的内容,来将这些内容作用到本地文件夹
  2. 默认情况下jixo A使用prettier进行代码格式化,如果你的项目不是使用prettier,应该关闭jixo A -F=false

    未来我会通过配置来自定义格式化的能力

  3. some-md-files是指传入一个md文件路径或者一个glob代表多个文件。

    eg: pnpm A ".ai/8*.md" 意味着把8开头的md文件按照文件名顺序处理了。

  4. -G参数是用于做一个git-commit,因为jixo:coder会让AI生成代码之前先做一个git-commit作为工作计划。
    • 我通常会开启这个参数,它只会提交AI修改的文件,对于本地你自己修改的其它文件是不会提交的。
    • 所以我就能在github-desktop这个软件中,直接查看最后一次提交,就能看到AI修改的内容。
    • 如果不满意,直接undo就行了。

jixo go 命令使用简介

概述

jixo go 提供了一些基于 aistudio.google.com 站点进行交互的工具。

  1. jixo go init [dir] 初始化一个工作空间

  2. jixo go browser [dir] 为工作空间提供 function-call 的调配

    建议使用deno进行开发

  3. jixo go sync 用于将 *.contents.json 解构成 jixo A 所需的md文件。

jixo go init [dir]

  1. 执行jixo go init [dir] 初始化一个工作空间
  2. 这个 dir 文件夹内会出现一个 google-aistudio.browser.js 文件
  3. 按下 F12 打开“开发者工具”
  4. google-aistudio.browser.js的内容粘贴到 Console 面板中。
  5. 确保聚焦在页面中(而不是Devtools中),此时会弹出一个文件夹选择器,选中当前 dir 这个文件夹。
  6. 接下来,检查你的dir文件夹,会出现一个 *.contents.json 的文件。

    这个文件就是当前与 aistudio.google.com 的所有对话数据,包括你上传的文件内容都在这个json里。

jixo go browser [dir]

  1. 在网页中配置 Function Call
    [
      {
        "name": "get_character_details",
        "description": "根据用户请求,获取一个或多个中文汉字的详细信息,如笔顺名称、笔画SVG路径和笔画中心线坐标。支持为不同汉字查询不同类型的数据。",
        "parameters": {
          "type": "object",
          "properties": {
            "queries": {
              "type": "array",
              "description": "一个查询请求的列表。每个请求包含一个汉字和需要获取的数据类型列表。",
              "items": {
                "type": "object",
                "properties": {
                  "character": {
                    "type": "string",
                    "description": "需要查询的单个中文字符。"
                  },
                  "data_types": {
                    "type": "array",
                    "description": "需要为该字符查询的数据类型。",
                    "items": {
                      "type": "string",
                      "enum": ["order", "strokes", "medians"]
                    }
                  }
                },
                "required": ["character", "data_types"]
              }
            }
          },
          "required": ["queries"]
        }
      }
    ]

jixo go sync

  1. 首先需要了解 jixo Gjixo A 这两个命令
  2. jixo:coder 会将一次回复拆分成多次,中间需要用户通过“继续”来让它输出。
  3. 因此 jixo go sync命令会将md文件,基于一些jixo:coder 的结构特性,将AI的响应内容,生产02-01.md的内容

    02是指回复的任务编号。 01是指这次任务的第几次回复。如果是00,意味着是包含“git-commit”的

  4. 有了这样的文件命名,你就可以使用jixo A 02-*.md -G 来快速将最后一次的AI回复全部作用到本地项目中。

QA

  1. 会把 aistudio.google.com 彻底破解成 openai 兼容接口吗?

    理论上可行,但不打算。如果需要直接使用 AIstudioProxyAPI 工具就好了。

  2. jixo 的理念是什么?

    jixo是为AI使用提供一系列的“基础工具”。之前会尝试过开发“多Agent协作体”,但是目前在设计新的架构中,之后会慢慢重启。

TODO & PROPOSAL

目前有以下提案:

  1. 改进jixo go browser,简化 function-call 的开发。做到能自动生成 function-call的配置,并自动注入到浏览器中。
  2. 新增jixo go context7,目的是将Context7的资料自动导入到 aistudio 上下文中,作为一个问答专家,并自动生成*.function_call.ts文件。 这样一来,其它 aistudio 页面就可以使用 function-call 向这些问答专家询问专业知识,从而实现多专家协作模式。

    和基于MCP的Context7插件不一样,MCP意味着是单个上下文,那么所有的专业信息全部堆积在一个上下文中,会带来模型能力下降的问题。而JIXO倡导的是多专家协作模式,这也是目前超级Agent的一个普遍共识。

  3. 打算开发jixo M memory-agent,将所有的通话内容整理成一本可视的书籍。用于包含最新的项目资料,以及一些历史记录的索引。
  4. 开发jixo run(简写成 jix),可以用来执行命令。目的是在jixo G中,直接注入终端内容:

    比如说jix pnpm tsc,其实和pnpm tsc 没有任何区别。 但tty是由jix提供,因此拦截了pnpm tsc的任务输出。 所以可以在*.meta.md文件中,通过[tsc](@RUN)来获得终端的内容