← Back to Skills Marketplace
pmtools
by
taoxiang-org
· GitHub ↗
· v1.0.2
· MIT-0
215
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install pmtools
Description
Operate Feishu OKR via Feishu OpenAPI (periods, OKR list, progress records, images, reviews). Invoke when you need to query or update OKR progress.
Usage Guidance
This skill implements Feishu OKR operations and is largely coherent with its description, but it auto-updates itself (runs git and a 'clawhub' command) and runs subprocesses that can change the skill code at runtime. Before installing, review these points:
- Consider whether you are comfortable the skill can run git/clawhub and pull code into the skill directory; run it in a restricted/isolated environment if you are not.
- The package will read/want FEISHU_APP_ID and FEISHU_APP_SECRET (to obtain tenant tokens) even though the manifest only lists FEISHU_ACCESS_TOKEN. Provide only the minimum credential needed (prefer an access token scoped to the required actions) and avoid storing broad app secrets in shared environments.
- The skill writes cache files to your home directory (~/.cache/pmtools/...). If you prefer no persistence, point PM_TOOLS_TOKEN_CACHE_PATH and PM_TOOLS_UPDATE_CACHE_PATH to a safe location or remove them.
- If you do not want automatic updates, avoid running the auto-update entry point or review/modify the script to disable updates; tests set a disable env but the code and CLI wrapper should be audited to confirm a supported disable flag exists.
If you want higher assurance, inspect the full scripts/pm_tools.py file (and any update hooks) locally, and consider running the skill in an isolated container or VM before granting it access to real Feishu credentials.
Capability Analysis
Type: OpenClaw Skill
Name: pmtools
Version: 1.0.2
The skill contains an auto-update mechanism in `scripts/pm_tools.py` that is triggered automatically before the execution of most commands. This mechanism uses `subprocess.run` to execute `git pull` and `clawhub update`, which introduces a significant supply chain risk and a remote code execution (RCE) vector by allowing the tool's code to be modified from remote repositories without explicit user intervention. While the behavior is documented in `SKILL.md` and `README.md`, the silent background update of executable code is a high-risk pattern typically avoided in secure software design.
Capability Assessment
Purpose & Capability
Name/description (Feishu OKR operator) match the code: the scripts call Feishu OpenAPI endpoints and implement periods/okrs/progress/images/reviews. However the manifest lists only FEISHU_ACCESS_TOKEN as a required env var while the code also expects (and can require at runtime) FEISHU_APP_ID, FEISHU_APP_SECRET, FEISHU_TENANT_ACCESS_TOKEN, and FEISHU_USER_ACCESS_TOKEN. The mismatch between declared requirements and actual credential usage is an incoherence worth flagging.
Instruction Scope
SKILL.md instructs the agent to auto-update before every command. The included code implements self-update behavior (runs git commands and a 'clawhub update') and performs HTTP calls, reads/writes token and update cache files, and will fetch tenant tokens using app id/secret if provided. Auto-update and the ability to run arbitrary CLI tools expands the agent's scope beyond simple API calls.
Install Mechanism
There is no install spec (instruction-only style), which is low risk in itself, but the runtime self-update executes subprocesses (git and clawhub) that can modify the skill code on disk. That effectively enables remote code changes to the skill at runtime — a higher-risk behavior than a pure instruction-only skill.
Credentials
The manifest only declares FEISHU_ACCESS_TOKEN, but the code will also read/expect FEISHU_APP_ID and FEISHU_APP_SECRET (to fetch tenant tokens), FEISHU_TENANT_ACCESS_TOKEN, FEISHU_USER_ACCESS_TOKEN, and several PM_TOOLS_* overrides. The skill writes token cache and update cache files under the user's home directory. Requesting app secrets and writing cached tokens is reasonable for this functionality, but the manifest should declare them — the omission reduces transparency.
Persistence & Privilege
always:false and no system-wide config changes are requested. The skill persists state by writing cache files (tenant token cache, update check cache) under the user's home (~/.cache/pmtools/...) and can update its own code via git/clawhub. This persistent presence is expected for a CLI tool but increases blast radius if updates are malicious.
How to Use
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install pmtools - After installation, invoke the skill by name or use
/pmtools - Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
Version 1.0.2
- No file changes were detected in this release.
- Documentation, commands, and functionality remain unchanged.
v1.0.0
# pm_tools
Feishu OKR skill for OpenClaw/agents.
## Environment variables
- `FEISHU_ACCESS_TOKEN`: Access token used for API calls (recommended).
- `FEISHU_TENANT_ACCESS_TOKEN`: Required for `reviews-query` (doc requires tenant token).
- `FEISHU_OKR_BASE_URL`: Override base URL for testing; default is `https://open.feishu.cn/open-apis/okr/v1`.
## Run tests
From repo root:
```bash
python3 -m unittest discover -s skills/pm_tools/tests -v
```
Metadata
Frequently Asked Questions
What is pmtools?
Operate Feishu OKR via Feishu OpenAPI (periods, OKR list, progress records, images, reviews). Invoke when you need to query or update OKR progress. It is an AI Agent Skill for Claude Code / OpenClaw, with 215 downloads so far.
How do I install pmtools?
Run "/install pmtools" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is pmtools free?
Yes, pmtools is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does pmtools support?
pmtools is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created pmtools?
It is built and maintained by taoxiang-org (@taoxiang-org); the current version is v1.0.2.
More Skills