harness-anything: a Windows COM control layer for Office, Zotero, Illustrator and Photoshop
Harness Anything - AI agent control hub: WPS, MS Office, Zotero, Photoshop, 47 CLI commands, 27 academic skills, SVG-to-PPTX
At a glance
- What is it?
- harness-anything bundles four separate automation harnesses behind CLI commands that drive WPS, Microsoft Office, Zotero, Illustrator and Photoshop over COM. It is a Windows-only, desktop-application-bound tool, and that constraint defines both what it does well and where it stops.
- Who is it for?
- Adopt harness-anything if your workflow already lives on Windows desktops with WPS or Microsoft Office installed, and you want an agent or script to produce DOCX, XLSX, PPTX and PDF files through the real application rather than a file-format library. Do not adopt it for headless Linux CI, for web-based document editing, or for anything that must run without an interactive desktop session, because COM automation requires the application to be present and running.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 50 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What harness-anything actually is: four harnesses in one repository
The repository is not one tool. It is a collection of separate harnesses that share a naming convention and a common mechanism. The README lists cli-anything-wps for WPS and Microsoft Office, cli-anything-zotero for literature management and academic skills, Illustrator Harness for Adobe Illustrator, and Photoshop Harness for Adobe Photoshop. A fifth component, described as WPS PPT automation, is a set of per-university deck generators driven by JSON data. The README's own numbering is out of order (the Illustrator section is labelled 3 and the Photoshop section 4, but Photoshop appears before it in the document), which is a small signal that this is an actively assembled repository rather than a polished product. The target user is an engineer or researcher on Windows who wants an AI agent or a script to manipulate desktop creative and office applications, not to reimplement their file formats.
The COM bridge is the whole architecture, and it is also the whole constraint
Every harness follows the same pipeline. The README states it explicitly for Illustrator and Photoshop: CLI command, then Click CLI, then a core module, then a COM bridge, then the application object (Illustrator.Application or Photoshop.Application), then the application engine. That means the CLI is a thin shell over pywin32 calls into a running desktop program. The WPS harness works the same way, and the README notes that the COM interface is compatible with Microsoft Office VBA, so switching from WPS to MS Office is a matter of changing the ProgID to PowerPoint.Application, Word.Application or Excel.Application. This is the central design decision. It gives you the full fidelity of the real application: fonts, layout engines, export filters. It also means nothing runs without that application installed, licensed, and reachable from the session that executes the command.
The WPS command surface: 47 commands, presets, and a five-dimension quality check
The WPS harness is the largest piece. The README claims 47 CLI commands covering Writer (paragraphs, headings, lists, tables, images, find and replace, font styling), Calc (worksheet management, cell read and write, formulas, merging, batch fill), and Impress (slide add, delete and modify, text boxes, shapes, backgrounds, export). Export targets are DOCX, XLSX, PPTX, PDF, TXT, HTML, CSV and RTF. On top of that sits a PPT design system with four presets, 14 layouts and a five-dimension quality review. The quick-start block shows the shape of a session: create a document with a type flag, apply a preset with a talk-type argument, then render to PPTX. The preset names (academic) and talk types (defense) suggest the intended audience is academic presenters rather than general office automation.
Zotero plus 27 academic skills: the part that is not COM automation
cli-anything-zotero is different in kind. The README describes it as literature management plus 27 academic skill integrations, and the examples are skill invocations rather than application calls: listing skills, running a pipeline for original_article, meta_analysis or thesis, and querying journal figure conventions for a named journal. The skills are grouped into seven categories with counts given: search (3), research (4), writing (5), review (5), visualization (4), analysis (3), pipeline (2). The review category includes what the README calls a five-person review, peer review, a seven-round adversarial pass, and citation verification. This is prompt-orchestration logic layered on top of a reference manager, not desktop automation. The README does not explain how the skills are stored, whether they are prompt templates or Python modules, or how Zotero is queried. That gap matters if you plan to modify them.
Installation and the commands you actually type
Installation is per-harness, not global. The WPS package installs from git with pip install git+https://github.com/yb2460/cli-anything-wps.git. The Adobe harnesses install in editable mode from a subdirectory: cd illustrator-harness/agent-harness then pip install -e ., and the same pattern for photoshop-harness/agent-harness. System requirements are stated as Windows 10 or 11, WPS Office 2019+ or Microsoft Office 2016+, Zotero 7+, optionally Adobe Illustrator 2023+ and Photoshop 2023+, plus Python 3.10+ and pywin32. A representative Illustrator session from the README creates a 500 by 500 document, adds text with an explicit font and size, draws a rectangle with x, y, width and height flags, and exports SVG. The Photoshop example follows the same grammar: project new with width and height, text add with content, font and size, then export png with an output path. Note that the Illustrator quick start omits the --x and --y flags on the rectangle that the earlier command table shows, so the README is not internally consistent on every flag.
Where it breaks: headless environments, version drift, and the JSON deck generators
The failure mode is structural. COM automation needs a Windows desktop session with the target application installed. There is no stated headless mode, no Linux or macOS path, and no container story. If your build pipeline runs on a Linux runner, this repository cannot help you, and no amount of configuration will change that. Version drift is the second risk: the README pins Illustrator and Photoshop at 2023 or later but gives no upper bound and no compatibility matrix, so an application update that changes its object model can break a harness without warning. The third area to scrutinise is the WPS PPT generators. The README lists five per-university projects with fixed page counts, theme colours and element mixes, each containing a template image, a JSON data file and a Python engine, run by a script such as python build_sustech.py. These are worked examples, not a general templating product. The README also says the build runs with WPS visible, which means the generation step is interactive by design.
Alternatives and the real difference in approach
The obvious alternative for document generation is python-docx, openpyxl and python-pptx, which write the OOXML file formats directly without launching an application. The difference is fundamental rather than incremental. Those libraries manipulate a file; harness-anything manipulates a running program. File-level libraries run headless on any platform and are easy to test in CI, but they cannot reproduce everything the real application does, because layout, font substitution and export rendering happen inside the application, not in the file. Conversely, harness-anything inherits the application's fidelity but also its installation, licensing and session requirements. For Zotero specifically, the alternative is the Zotero API or a BibTeX export consumed by a citation tool; the README's skill pipelines are a higher-level orchestration layer whose internals are not documented, so you would be adopting an opaque workflow rather than a library you can inspect.
Maintenance cost, licensing, and what to check before you commit
The licence is MIT, stated in the README and in the repository metadata, which permits commercial use and modification provided the copyright notice and permission notice are retained. That is the extent of what the material supports; this is not legal advice, and you should confirm the licence file in the repository matches. Maintenance cost is the harder question. There are no releases retrieved, so there is no versioned changelog to track, and the README describes several components as requiring specific third-party application versions with no stated support policy. The dependency surface is small (pywin32, click, Python 3.10+) but the external surface is large: four desktop applications, each of which can update independently of this project. Budget for the possibility that an Office or Adobe update changes behaviour and that the fix is a repository commit rather than a pinned version bump. The README gives no test suite, no CI configuration and no troubleshooting section, so diagnosing a broken COM call will fall to you.
Editorial conclusion
Adopt harness-anything if your workflow already lives on Windows desktops with WPS or Microsoft Office installed, and you want an agent or script to produce DOCX, XLSX, PPTX and PDF files through the real application rather than a file-format library. Do not adopt it for headless Linux CI, for web-based document editing, or for anything that must run without an interactive desktop session, because COM automation requires the application to be present and running. Before committing, verify three things: that your Office build exposes the ProgIDs the README names, that pywin32 installs cleanly against your Python 3.10+ interpreter, and that the Illustrator and Photoshop harnesses, which require 2023 or later, match the versions you actually have licensed.
Community notes