Repository navigation
clyops 0.3.0
Safer tool discovery and execution
- Source detection in clyops-dispatch, clyops-tools and the desktop runner now
recognizes supported clyops import/source statements and an explicit
# clyops-tool/// clyops-toolmarker in the first ten lines. Comments,
quoted documentation and incidental mentions no longer cause arbitrary
executables to be probed. Wrappers with other loaders can use the marker to
opt in. (#7) - stdin failures reject the Node execution promise and clean up the tool
instead of crashing the host process. (#9) - Timeouts and cancellation terminate tool process trees, escalate when
graceful termination fails, and clean up stdin/stdout streams. Timeout limits
also apply when a tool stops reading a large stdin payload. (#12)
Arguments, flags and desktop forms
- Generated command lines put positionals first by default, supporting
wrappers that read their input from$1. Dash-prefixed positionals follow
the options and--; other values no longer get an unnecessary terminator.
toArgvcallers can choose either order, jobs exposepositionals_order,
and API/MCP servers expose--positionals-order. (#8) - Flag inputs are rendered before validation, so job templates can supply
booleans. Accepted values aretrue/false,yes/no,1/0and
on/off(case insensitive); invalid values produce an input error instead
of silently disabling the flag. (#10) - Desktop forms emit
--no-flagfor unchecked flags, overriding enabled
environment/config defaults. Template restoration preserves false and zero
values, and generated commands correctly quote shell values. (#11)
Node packages and development
-
pnpm workspaces for all Node packages and the desktop frontend, pinned to
pnpm 10.34.6 with one root lockfile. Development, CI, release packing and
publishing use pnpm; version bumps update workspace dependency pins in the
lockfile. The runner has its own build/test commands and CI coverage. -
Single-file CommonJS bundles of the Node packages, committed and published:
clyops.cjs,
clyops-tools.cjsandclyops-jobs.cjs(which includes clyops-tools). Link or copy one file and
require()it on Node 20+, with no build step ornode_modules, the wayclyops.shis used.
require('clyops-tools')andrequire('clyops-jobs')now load them (both were ESM-only). CI
checks they match the sources, andclyops.cjsruns the conformance suite (cjs-bundle). -
Reload tests check schema reuse and invalidation without relying on macOS
filesystem event timing; dispatcher code passes the newer Clippy byte-slice
lint used by CI.
Downloads
| clyops runner | Linux: .deb, .rpm or .AppImage (x64 amd64/x86_64, arm64 arm64/aarch64) · macOS: _universal.dmg · Windows: _x64-setup.exe or _x64_en-US.msi |
| clyops-dispatch | clyops-dispatch-<version>-<platform>.tar.gz (Linux x64/arm64, macOS universal) or -windows-x64.zip |
| C | libclyops-<version>-<platform>.tar.gz (static library + header) or -src.tar.gz |
| Bash | clyops.sh |
| JavaScript / TypeScript | clyops-<version>.tgz (pnpm add ./clyops-<version>.tgz) |
| Python | clyops-<version>-py3-none-any.whl or the sdist |
| Rust | clyops-<version>.crate |
| Ruby | clyops-<version>.gem (gem install ./clyops-<version>.gem) |
| Java | clyops-<version>.jar |
| Go | go get github.com/wankdanker/clyops/packages/go@v<version> |
SHA256SUMS lists a checksum for every file.
The runner installers are not signed with a paid certificate yet. On macOS, right-click the app
and choose Open the first time (or run xattr -dr com.apple.quarantine "/Applications/clyops-runner.app").
On Windows, choose More info → Run anyway in the SmartScreen prompt.