- Move jq check from global scope to only where needed, allowing
config creation to work without jq installed
- Add json_escape_path() helper for safe JSON string escaping
- Fix unsafe string interpolation in jq filter (use --arg instead)
- Use jq -n --arg for safe JSON generation when jq is available
- Properly escape paths with special characters (quotes, backslashes)
in fallback heredoc when jq is unavailable
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Per code review feedback: cli-anything-plugin/ should only contain
Claude Code related files. Created new top-level qoder-plugin/
directory following the same organization pattern as opencode-commands/.
Changes:
- Create qoder-plugin/ directory with setup-qodercli.sh
- Update script's PLUGIN_DIR to resolve to ../cli-anything-plugin
- Add Qodercli platform section to README.md and README_CN.md
- Update .gitignore to track qoder-plugin/
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add qodercli-skill/SKILL.md with build/refine/test/validate modes
- Add qodercli-skill/scripts/install.sh for local installation
- Update .gitignore to track qodercli-skill/
- Add Qodercli section to README.md and README_CN.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixed 8 setup.py files that had placeholder URLs:
- Changed 'yourusername' to 'HKUDS'
- Changed repo name to 'CLI-Anything'
This fixes broken metadata when packages are published to PyPI.
find_libreoffice() previously only searched PATH, which misses the
default install location on Windows (Program Files\LibreOffice\program)
and macOS (/Applications/LibreOffice.app). Added platform-aware
fallback paths so the backend works out of the box after a standard
install.
get_version() called `soffice --version` without --headless, which
opens a GUI splash on Windows and hangs indefinitely. Now uses
`--headless --version` and gracefully falls back on timeout.
Tested on Windows with LibreOffice 26.2.1:
- 89 unit tests PASS
- 69 E2E tests PASS (including 13 real LibreOffice backend tests)
- PDF, DOCX, XLSX, PPTX, CSV all verified via magic bytes / OOXML
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add -s/--save flag to automatically save project after each mutation
command. This fixes the issue where one-shot commands don't persist
changes because each command runs in a new process with a fresh session.
Usage:
shotcut-cli --project edit.mlt -s timeline add-track --type video
# Now auto-saves after adding the track
Without -s flag, behavior is unchanged (explicit save required).
- Add --depth option to command signature
- Document options and update examples
- Clarify version is now shown for all tools
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Previously --depth 2 only scanned exactly 2 levels deep, missing
tools at depth 1. Now it scans all depths from 0 to N inclusive.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add --depth option to limit how many directory levels to search
- depth=0 scans only current directory, depth=1 scans one level deep, etc.
- Default is unlimited depth (recursive ** glob)
- Helps control scan time in large directory structures
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The setup.py file is in agent-harness/, not cli_anything/. Fixed the
path calculation to correctly extract version info.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements a full CLI harness that converts Draw.io (diagrams.net) into an
agent-callable API, following the CLI-Anything 7-phase pipeline pattern.
Features:
- XML-native manipulation of .drawio files (no GUI required)
- 15 shape presets (rectangle, ellipse, diamond, cylinder, cloud, etc.)
- 4 edge styles (straight, orthogonal, curved, entity-relation)
- Style property system (fill/stroke/font color, opacity, shadow, dashed, etc.)
- Multi-page diagram support
- Undo/redo with snapshot-based history (50 levels)
- Session persistence and auto-save in --project mode
- Interactive REPL mode with prompt-toolkit
- JSON output mode for AI agent consumption
- Export pipeline: XML direct + PNG/SVG/PDF via draw.io desktop CLI
- 138 tests passing (116 unit + 22 e2e), 3 skipped (require draw.io desktop)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add new command to list all available CLI-Anything tools.
Supports both installed and generated CLIs with table/JSON output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
AnyGen spans slides, docs, diagrams, websites, and research reports via
cloud AI — it does not fit neatly into Creative & Media or any existing
category. Give it a dedicated row in the When to Use table.
Made-with: Cursor
Add a complete CLI harness for AnyGen (https://www.anygen.io), an AI-powered
content generation platform that produces slides, documents, websites, diagrams,
and more via a cloud REST API.
Built following the HARNESS.md methodology with the standard directory structure:
- anygen_backend.py wraps the full AnyGen OpenAPI (create/poll/download/upload/prepare)
- Click CLI with task, file, config, and session command groups
- Unified REPL interface via repl_skin.py
- 40 unit tests (mocked HTTP) + E2E tests (real API, verified PPTX download)
- File format verification for OOXML, PDF, PNG, SVG, drawio, JSON outputs
Also updates README.md (demos 8→9, tests 1298→1361) and .gitignore whitelist.
Made-with: Cursor