← Back to Skills Marketplace
spiceman161

sys-updater

by Spiceman161 · GitHub ↗ · v1.1.0
cross-platform ⚠ suspicious
1512
Downloads
0
Stars
4
Active Installs
4
Versions
Install in OpenClaw
/install sys-updater
Description
System package maintenance for Ubuntu (apt), npm, brew, and OpenClaw skills. Conservative workflow with 2-day quarantine for non-security updates, automatic...
Usage Guidance
What to check before installing or running this skill: 1) Read the code. The repo includes scripts that will run sudo commands, parse apt logs, and perform network requests to GitHub/npm/Homebrew. If you can't review them yourself, run them in an isolated test VM first. 2) Sudoers mismatch: the docs intentionally restrict passwordless sudo to apt-get update, apt-get -s upgrade (simulation) and unattended-upgrade. But the code calls 'sudo apt-get install' to apply planned non-security updates. Decide which behavior you want: either (A) keep sudoers restrictive and remove/disable planned installs in the code, or (B) explicitly add apt-get install to sudoers after understanding the consequences. Never add broad sudo rights — add only the exact commands (absolute paths) you audited. 3) Paths and binaries: verify correct absolute paths in sudoers. The docs/examples reference both /usr/bin/unattended-upgrade and /usr/sbin/unattended-upgrade in different places — confirm the actual path on your distribution. 4) Telegram/OpenClaw behavior: the skill renders reports but does not appear to ship or require a Telegram bot token; cron/OpenClaw is expected to forward the report. If you expect the skill to push messages itself, look for code that stores or uses bot tokens (none declared). Similarly, auto-updating OpenClaw skills implies using clawhub — ensure you understand what clawhub does and that the binary/credentials are available and limited. 5) Network calls and rate limits: auto_review.py will query public APIs (GitHub/npm/brew). It uses unauthenticated GitHub requests (60/hr). If you need higher rate or authenticated checks, consider adding a token and auditing how it is stored. 6) Permissions to read system files: parsing /var/log/apt/history.log may require root privileges on some systems; the code handles PermissionError but will produce incomplete data if it cannot read logs. 7) Test in dry-run: use the provided --dry-run and --verbose modes. Run on a non-production host and inspect generated state/logs before enabling cron/systemd or changing sudoers. 8) Reconciliation: if you accept planned installs, add tests and an audit path to ensure planned installs cannot be abused to install arbitrary packages. Prefer whitelisting package names or requiring manual confirmation for potentially dangerous packages. If you provide updated metadata (declare required binaries and env vars) and either remove/disable the sudo apt-get install usage or explicitly include it in the documented sudoers with audited absolute paths, my confidence that this skill is coherent and low-risk would increase.
Capability Analysis
Type: OpenClaw Skill Name: sys-updater Version: 1.1.0 The skill's stated purpose is system maintenance, including security updates and package management. However, the `scripts/apt_maint.py` file attempts to execute `sudo apt-get install -y` and `sudo apt-get autoremove -y` commands. These actions directly contradict the explicit security recommendations in `SKILL.md` and `docs/sudoers.md`, which state that `apt-get install` and `apt-get autoremove` permissions should *not* be granted. This discrepancy creates a significant vulnerability: if the user's sudoers configuration is less restrictive than recommended (e.g., `NOPASSWD: ALL`), these commands could be exploited for Remote Code Execution (RCE), allowing arbitrary package installation or removal. While the script's intent appears to be maintenance, this critical inconsistency between code and documented security policy makes the skill suspicious due to the high-risk capability.
Capability Assessment
Purpose & Capability
The project is plausibly a system updater for apt/npm/brew and OpenClaw skills — that capability explains most included code (apt_maint.py, pkg_maint.py, auto_review.py) and the documentation. However registry metadata (no required binaries / no required env vars) does not match SKILL.md which declares required binaries (apt-get, npm, brew, clawhub) and environment variables (SYS_UPDATER_BASE_DIR, SYS_UPDATER_STATE_DIR, SYS_UPDATER_LOG_DIR). The claimed behavior (auto-review, skill updates via ClawHub, Telegram reports) is consistent with the code, but the metadata omission is an incoherence that makes automated permission checks unreliable.
Instruction Scope
Runtime instructions and code perform system-level actions: run sudo apt-get update, run unattended-upgrade (applies security updates), simulate upgrades, parse /var/log/apt/history.log, and call external services (npm registry, Homebrew API, GitHub API). The SKILL.md also instructs creating a sudoers file to allow passwordless sudo for apt/unattended-upgrade. The skill also documents auto-updating OpenClaw skills (clawhub) and generating Telegram reports; however, no Telegram token or sending code is declared (the repo expects the caller to forward/report). The scope (reading system logs, running sudoed commands, and making network requests) is consistent with an updater but is sensitive — especially because the instructions include granting passwordless sudo for system update commands.
Install Mechanism
There is no external install step (instruction-only + bundled Python scripts). The code uses only Python stdlib and subprocess calls; nothing is downloaded from arbitrary URLs. That lowers install risk compared to downloadable binaries. The repo includes code files (not pure prose), so a code review is appropriate before use.
Credentials
The skill requires elevated capability (passwordless sudo entries) which is proportionate for a tool that applies security updates, but there are notable mismatches: 1) The documented sudoers entries intentionally exclude apt-get install (and docs repeatedly say "No package installation/removal through sudo"), yet the code's apply_planned_apt_upgrades calls 'sudo apt-get install -y <packages>' — this will fail unless sudoers is expanded (or the code is changed), creating a dangerous gap between intended permissions and actual behavior. 2) SKILL.md mentions Telegram reporting and OpenClaw/clawhub usage, but no credential/environment variables (e.g., Telegram bot token or clawhub config) are declared in registry metadata. 3) The registry metadata lists no required env vars while the docs and code expect SYS_UPDATER_* env vars — an inconsistency that affects deploy/automation and least-privilege questions.
Persistence & Privilege
The skill does not set always:true, but it asks the operator to create a sudoers file granting passwordless execution of system update commands for a user. Modifying /etc/sudoers.d is a permanent, high-impact change and should be done deliberately. Combined with the code calling 'sudo apt-get install' (which is not listed in the recommended sudoers), this elevates risk: either the installer will need to expand sudoers (increasing privilege), or planned installs will silently fail. The skill does not attempt to modify other skills' configurations directly in the code shown, but it does intend to auto-update OpenClaw skills (clawhub) which means it can change other skill state when run.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install sys-updater
  3. After installation, invoke the skill by name or use /sys-updater
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.0
Improve skill description/docs; daily report now explicitly includes installed npm/pnpm/brew updates from pkg_maint summary.
v1.0.2
sys-updater 1.0.2 changelog - Added _meta.json file to the repository.
v1.0.1
Add detailed sudoers configuration with specific apt commands and security notes
v1.0.0
Initial release: apt, npm, brew, skills support with conservative 2-day quarantine workflow
Metadata
Slug sys-updater
Version 1.1.0
License
All-time Installs 4
Active Installs 4
Total Versions 4
Frequently Asked Questions

What is sys-updater?

System package maintenance for Ubuntu (apt), npm, brew, and OpenClaw skills. Conservative workflow with 2-day quarantine for non-security updates, automatic... It is an AI Agent Skill for Claude Code / OpenClaw, with 1512 downloads so far.

How do I install sys-updater?

Run "/install sys-updater" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is sys-updater free?

Yes, sys-updater is completely free (open-source). You can download, install and use it at no cost.

Which platforms does sys-updater support?

sys-updater is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created sys-updater?

It is built and maintained by Spiceman161 (@spiceman161); the current version is v1.1.0.

💬 Comments