ToolJet Marketplace Plugin Builder
ToolJet/ToolJet
Turns an API description, such as an OpenAPI file or a Postman collection, into a connector plugin for ToolJet's marketplace and checks it with the repo's validator.
Answers questions about website traffic, monitors, surveys, events and billing from a Tianji instance using read-only GET calls checked against its live OpenAPI document.
$ npx skills add msgbyte/tianji --skill tianji-data-query -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install msgbyte/tianji tianji-data-query --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/msgbyte/tianji.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/tianji-data-query .claude/skills/tianji-data-query && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "tianji-data-query" agent skill from https://github.com/msgbyte/tianji/tree/master/skills/tianji-data-query into .claude/skills/tianji-data-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tianji-data-query", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/msgbyte/tianji/tree/master/skills/tianji-data-queryType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add msgbyte/tianji --skill tianji-data-query -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install msgbyte/tianji tianji-data-query --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/msgbyte/tianji.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/tianji-data-query .agents/skills/tianji-data-query && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tianji-data-query" agent skill from https://github.com/msgbyte/tianji/tree/master/skills/tianji-data-query into .agents/skills/tianji-data-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tianji-data-query", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add msgbyte/tianji --skill tianji-data-query -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install msgbyte/tianji tianji-data-query --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/msgbyte/tianji.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/tianji-data-query .cursor/skills/tianji-data-query && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "tianji-data-query" agent skill from https://github.com/msgbyte/tianji/tree/master/skills/tianji-data-query into .cursor/skills/tianji-data-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tianji-data-query", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/msgbyte/tianji.git --path skills/tianji-data-query--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add msgbyte/tianji --skill tianji-data-query -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install msgbyte/tianji tianji-data-query --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/msgbyte/tianji.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/tianji-data-query .gemini/skills/tianji-data-query && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "tianji-data-query" agent skill from https://github.com/msgbyte/tianji/tree/master/skills/tianji-data-query into .gemini/skills/tianji-data-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tianji-data-query", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install msgbyte/tianji tianji-data-queryInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add msgbyte/tianji --skill tianji-data-query -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/msgbyte/tianji.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/tianji-data-query .github/skills/tianji-data-query && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "tianji-data-query" agent skill from https://github.com/msgbyte/tianji/tree/master/skills/tianji-data-query into .github/skills/tianji-data-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tianji-data-query", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add msgbyte/tianji --skill tianji-data-query -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install msgbyte/tianji tianji-data-query --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/msgbyte/tianji.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/tianji-data-query .opencode/skills/tianji-data-query && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "tianji-data-query" agent skill from https://github.com/msgbyte/tianji/tree/master/skills/tianji-data-query into .opencode/skills/tianji-data-query/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tianji-data-query", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
tianji-data-queryAnswers questions about website traffic, monitors, surveys, events and billing from a Tianji instance using read-only GET calls checked against its live OpenAPI document.
Three values come from the skill config: `TIANJI_BASE_URL`, `TIANJI_API_KEY` and `TIANJI_WORKSPACE_ID`. Before querying, the agent fetches the target instance's own OpenAPI document from its `/open/_document` path and confirms it is a JSON object with `openapi` and `paths`. If discovery fails it reports that and stops rather than guessing endpoints. The live document confirms method, path, parameters, response schema and authentication, `$ref` schemas are resolved, and the API key is sent as a bearer header, never in a URL or in output.
Only GET requests are allowed even though the document also describes writes, and when an operation has no GET route the agent reports the limitation instead of deriving routes from the dashboard. The bundled `references/api-endpoints.md` and `references/openapi-readonly.json` are snapshots for finding likely operations, and the live document wins over them. Typical questions cover traffic and pageviews, monitor status, survey feedback, telemetry events, feed channels, billing usage and application stats.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 45578dd. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell and JavaScript), which the agent can run.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
TIANJI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Tianji Read-Only Data Queries loads about 1.5k tokens when it runs, and up to ~86k if it reads all its reference files. Until then it costs about 58 tokens; SKILL.md has 635 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from msgbyte/tianji at commit 45578dd, republished under its Apache-2.0 licence (© msgbyte). 635 words, ~1,516 tokens.
.claude/skills/tianji-data-query/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Query any read-only data from the Tianji monitoring and analytics platform.
Three values are required (provided via skill config):
| Variable | Description |
|---|---|
TIANJI_BASE_URL | Tianji instance URL (e.g. https://tianji.example.com) |
TIANJI_API_KEY | API key for authentication |
TIANJI_WORKSPACE_ID | Default workspace ID |
Before querying data, fetch and read the target instance's OpenAPI document. TIANJI_BASE_URL is the instance URL without the /open suffix:
curl --fail-with-body --silent --show-error \
"${TIANJI_BASE_URL%/}/open/_document"Confirm a successful response containing an OpenAPI JSON object with openapi and paths, not HTML or an error payload. If discovery fails, report the failure and stop API queries; do not substitute bundled paths or guess endpoints. The instance must enable OpenAPI to serve this document.
Use the live document to confirm the operation's method, path, path/query parameters, response schema, and authentication. Resolve referenced schemas ($ref), including required fields, types, formats, defaults, enums, and pagination. Resolve servers against the target instance before appending an operation path (normally /open; do not add it twice). Keep authenticated requests on the intended instance and send the API key via Authorization: Bearer ..., never in the URL or output.
Only GET requests are allowed, even though the live document also describes writes. If the requested operation has no exported GET route, report that limitation. Do not derive /open routes from dashboard tRPC procedures; those need separate maintained references and are outside this skill.
The target document takes precedence over bundled references and examples. Reuse it within the same task and target; fetch again after switching instances, an upgrade, or a schema-related failure. Parse successful API responses as JSON and report HTTP/API errors rather than treating them as query results.
api-endpoints.md and openapi-readonly.json are bundled snapshots for discovering likely operations. Their endpoint counts and schemas may differ from the target; confirm every selected operation against its live document.
| Domain | Endpoints | Typical Questions |
|---|---|---|
| Website | 13 | Traffic stats, pageviews, geo distribution, Lighthouse scores |
| Monitor | 9 | Uptime status, recent check data, monitor events |
| Survey | 8 | Survey responses, result stats, AI categories |
| Telemetry | 7 | Custom event counts, telemetry pageviews, metrics |
| Billing | 7 | Usage quotas, subscription tier, credit balance |
| Feed | 6 | Feed channels, event streams, feed states |
| Application | 5 | App store reviews, app info, event stats |
| AI/AIGateway | 5 | Gateway logs, model pricing, quota alerts |
| Worker | 3 | Worker list, worker details, revisions |
| Page | 2 | Status pages |
| Workspace | 2 | Members, service counts |
| Global | 1 | Platform configuration |
| AuditLog | 1 | Audit trail |
/open/_document and find the relevant exported GET operation; bundled references are lookup hints onlyThe routes below illustrate the bundled version. Confirm paths, parameters, timestamp formats, and pagination against the target document before using them.
GET /open/workspace/{workspaceId}/website/allPick the target website ID, then:
GET /open/workspace/{workspaceId}/website/{websiteId}/stats?startAt={timestamp}&endAt={timestamp}GET /open/workspace/{workspaceId}/monitor/allPick the target monitor ID, then:
GET /open/workspace/{workspaceId}/monitor/{monitorId}/get
GET /open/workspace/{workspaceId}/monitor/{monitorId}/statusGET /open/workspace/{workspaceId}/survey/allPick the target survey ID, then:
GET /open/workspace/{workspaceId}/survey/{surveyId}/result/list?startAt={timestamp}&endAt={timestamp}&limit=50
GET /open/workspace/{workspaceId}/survey/{surveyId}/stats?startAt={timestamp}&endAt={timestamp}GET /open/workspace/{workspaceId}/feed/channelsPick the channel ID, then:
GET /open/workspace/{workspaceId}/feed/{channelId}/fetchEventsByCursor?limit=20Some GET endpoints may return fields containing platform-stored secrets (e.g. modelApiKey,
customModelBaseUrl in AI Gateway responses). Additionally, endpoints like workspace members,
audit logs, and billing may contain PII or internal details.
Rules:
modelApiKey, apiKey, secret, token, password, or credential fields to the usertype enums from the target operation; bundled examples use milliseconds since epochcursor and return nextCursor© msgbyte, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (scripts, references) in skills/tianji-data-query of msgbyte/tianji.
Open the folder on GitHubat commit 45578dd
Tianji Read-Only Data Queries next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tianji Read-Only Data Queries this skillmsgbyte/tianji | 3.1k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| ToolJet Marketplace Plugin BuilderToolJet/ToolJet | 41k | — | ~2.1k | Automated safety check: Pass | AGPL-3.0 | |
| Zodjasonjgardner/blockbench-mcp-plugin | 491 | 3 repos | ~1.4k | Automated safety check: Pass | GPL-3.0 | |
| DocsInsForge/InsForge | 13k | — | ~761 | Automated safety check: Pass | Apache-2.0 | |
| OpenAPI CLI CallerEvilFreelancer/openapi-to-cli | 265 | — | ~879 | Automated safety check: Pass | MIT | |
| Soundcloud API Integrationsoundcloud/api | 258 | — | ~787 | Automated safety check: Pass | None |
ToolJet/ToolJet
Turns an API description, such as an OpenAPI file or a Postman collection, into a connector plugin for ToolJet's marketplace and checks it with the repo's validator.
jasonjgardner/blockbench-mcp-plugin
Zod schema validation best practices for type safety, parsing, and error handling.
InsForge/InsForge
A skill your agent uses when contributing to InsForge's product documentation in this repository.
EvilFreelancer/openapi-to-cli
Turns an OpenAPI, Swagger or OpenRPC spec into CLI commands the agent can search and call, with no MCP server or code generation.
soundcloud/api
Integrates applications with the SoundCloud HTTP API using OAuth 2.1, OpenAPI, and developer docs.
oryx-labs/oryxos
初始化 OryxOS(或同类 JDK 21 + Spring Boot 3.x 企业级单体)的工程地基:Maven 多模块骨架、 结构化日志、Actuator + Prometheus 监控、Spring MVC + 虚拟线程、springdoc OpenAPI、 统一响应体与全局异常/错误码、Google 格式 + 阿里编码规约(Spotless + 阿里 P3C +…
msgbyte/tianji
Operates Tianji Workers: create, test, deploy, invoke, schedule, pause and roll back them, plus manage their environment variables and shared modules.
Works with
Categories
Answers questions about website traffic, monitors, surveys, events and billing from a Tianji instance using read-only GET calls checked against its live OpenAPI document. Three values come from the skill config: `TIANJI_BASE_URL`, `TIANJI_API_KEY` and `TIANJI_WORKSPACE_ID`. Before querying, the agent fetches the target instance's own OpenAPI document from its `/open/_document` path and confirms it is a JSON object with `openapi` and `paths`.
Tianji Read-Only Data Queries fits situations like: checking website traffic and pageviews in Tianji; reading uptime monitor status or survey feedback; looking at billing usage or application stats for a workspace; listing telemetry events or feed channels without changing anything.
Run `npx skills add msgbyte/tianji --skill tianji-data-query -a claude-code`. Or copy the skill folder (skills/tianji-data-query in msgbyte/tianji) into .claude/skills/tianji-data-query in your project. Claude Code loads it when a task matches its description.
Run `npx skills add msgbyte/tianji --skill tianji-data-query -a codex`. Or copy the skill folder (skills/tianji-data-query in msgbyte/tianji) into .agents/skills/tianji-data-query in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add msgbyte/tianji --skill tianji-data-query -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tianji-data-query, .gemini/skills/tianji-data-query, .github/skills/tianji-data-query and .opencode/skills/tianji-data-query in your project.
Going by SKILL.md and its folder, Tianji Read-Only Data Queries needs a shell and JavaScript for the scripts in its folder, the command-line tools its instructions call (curl) and credentials named TIANJI_API_KEY. Our summary lists: A Tianji instance with OpenAPI enabled; `TIANJI_BASE_URL`, `TIANJI_API_KEY` and `TIANJI_WORKSPACE_ID` configured; `curl`.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Tianji Read-Only Data Queries is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 6.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 84k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Tianji Read-Only Data Queries: ToolJet Marketplace Plugin Builder (ToolJet/ToolJet, 41k stars), Zod (jasonjgardner/blockbench-mcp-plugin, 491 stars), Docs (InsForge/InsForge, 13k stars) and OpenAPI CLI Caller (EvilFreelancer/openapi-to-cli, 265 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
msgbyte (a GitHub organization) maintains it in msgbyte/tianji, which has 3,103 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 8, 2026.
Source: msgbyte/tianji on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.