This plugin belongs to AIGC content creation.
| Category | Marketplace | Purpose |
|---|---|---|
| Full-stack development | Full Stack Plugins | Architecture and UI design, code understanding, quality checks, code review, workflow governance, and server operations |
| AIGC content creation | Full AIGC Plugins | Image, video, audio, music, 3D, and multimodal content creation |
Cull, develop and export photographs from your agent host, with the original file preserved and every develop step kept as a reversible setting.
English | 简体中文 · Install · Quick start · Skills · Troubleshooting
lightcraft drives the real LightCraft CLI and its browser panel from an agent host, so a photo task ends with decoded output files, a versioned develop history and a delivery receipt — not a promise that a slider moved. The plugin owns photo skills, an explicit task controller and a same-session panel bridge; it does not replace LightCraft or re-implement raw decoding.
| Property | Value |
|---|---|
| Plugin ID | lightcraft |
| Version | 0.1.0-dev.20261018.3 |
| Status | Development preview; production promotion blocked, creative acceptance open |
| Pinned native CLI | LightCraft CLI 0.2.1 |
| Verified platform | macOS arm64 with Python 3.11 or newer |
| Panel runtime | Node.js 24, started from ui/bootstrap.mjs |
| License | Apache-2.0 |
- Node.js 24 on
PATHfor the stdio MCP server and the panel. - Python 3.11 or newer; the skills and
scripts/controller.pyare Python entry points. - macOS arm64 for the pinned CLI. Other platforms are tracked as independent open changes and are not claimed.
- Network access on the first panel launch; the plugin downloads and verifies the pinned editor archive, and a complete release ZIP already contains it.
- The native CLI is not bundled. The installer downloads the pinned official release and keeps the licence files inside the artifact.
codex plugin marketplace add partme-ai/full-aigc-plugins
codex plugin add lightcraft@full-aigc-pluginsRestart the host, open a new task, and ask LightCraft to inspect a photo library before editing anything.
| Host | Manifest | Path base |
|---|---|---|
| Standard Agent Plugins 1.0.0 | plugin.json, mcp.json |
${PLUGIN_ROOT} |
| Codex | .codex-plugin/plugin.json, .codex-plugin/mcp.json |
plugin root relative to cwd |
| Claude Code | .claude-plugin/plugin.json, .mcp.json |
${CLAUDE_PLUGIN_ROOT} |
Kimi (kimi.plugin.json), DeepSeek Harness (dsh/) and the WorkBuddy example (hosts/workbuddy/mcp.json) are also present. In a development checkout you must build the editor assets first; cloning the source is not an installed runtime.
flowchart LR
A[Install plugin] --> B[Open editor on a workspace]
B --> C[command_list / list_files]
C --> D[Import and inspect photos]
D --> E[Develop with photo IDs]
E --> F[Export and decode the result]
F --> G[Reopen and review]
- Open the panel with an explicit
workspaceargument. - Check the environment first:
python3 -I -B "$SKILL_DIR/scripts/bootstrap.py" --no-installreports the pinned CLI without installing it. - List the real commands with
command_list, then read a photo withinspectbefore changing it. - Develop with
command_run, always binding real photo IDs; never assume a setting object from memory. - Export, then decode the actual output file and reopen the library in an independent session before calling the task done.
For a long task, the explicit controller records state instead of relying on the chat:
python3 -I -B scripts/controller.py init /absolute/new-task --payload /absolute/init.json
python3 -I -B scripts/controller.py run /absolute/new-task --runtime-home /absolute/runtime
python3 -I -B scripts/controller.py status /absolute/new-task
python3 -I -B scripts/controller.py deliver /absolute/new-taskinit, run, status, inspect, reconcile, stop, remaining, review-request, review, revise and deliver are separate calls. UNKNOWN is never replayed; reconcile only reads.
| Workflow | Built-in path | Verifiable output |
|---|---|---|
| RAW baseline development | lightcraft-raw-develop |
White balance, exposure, highlight and shadow settings, plus decoded output |
| Batch style across one shoot | lightcraft-batch-photo-style |
The same look applied to the listed photos only |
| Landscape development | lightcraft-landscape-develop |
Sky, ground and tonal separation recovered |
| Natural portrait development | lightcraft-portrait-develop |
Skin, exposure and background balance |
| Cull and rate a library | lightcraft-photo-culling |
Rating, grouping and a selected set |
| Final delivery | lightcraft-photo-export |
Sized, colour-managed, named files with a receipt |
| Independent virtual copy | lightcraft-virtual-copy-review |
A reviewable copy that leaves the original untouched |
| Named version restore | lightcraft-named-version-restore |
Restored settings and pixels identical to the named version |
| Tone curve transfer | lightcraft-tone-curve-transfer |
Only the curve moved; exposure, colour and crop preserved |
| Skill | What it does |
|---|---|
lightcraft-use |
Main entry: route a photo request and connect the stages |
lightcraft-editor |
Open the editor in the host and keep agent edits on the same page |
lightcraft-cli |
Command catalogue, control list, JSON plan check and receipt contract |
lightcraft-cli-setup |
Check or install the pinned CLI, verify the version and diagnose failures |
lightcraft-cli-library |
Import, select and organise photos; diagnose duplicate imports |
lightcraft-cli-develop |
Exposure, white balance, local adjustments and scoped sync |
lightcraft-cli-export |
Export photos, check format, size and colour, verify delivered files |
lightcraft-raw-develop |
RAW baseline: white balance, exposure, highlight and shadow |
lightcraft-batch-photo-style |
Unify the look across one group of photos |
lightcraft-landscape-develop |
Sky, ground and tonal range for landscape frames |
lightcraft-portrait-develop |
Skin tone, exposure and background balance |
lightcraft-photo-culling |
Import, rate, group and select |
lightcraft-photo-export |
Size, colour and naming for the selected photos |
lightcraft-virtual-copy-review |
Review in an independent virtual copy without touching the original |
lightcraft-named-version-restore |
Trial a named version and restore it exactly |
lightcraft-tone-curve-transfer |
Migrate only the tone curve, keeping per-photo exposure and crop |
lightcraft-scenario-playbooks |
Highlight cleanup, black-and-white, square crop, grey-card balance, watermark review, dual-format export, contact sheet and masked fallback |
Skills are generated from the independent lightcraft-skills runtime and consumed here as digest-protected snapshots; candidate-source.json pins the published source, and source-suite.json records the separate native version.
One bundled server, lightcraft-editor, speaking stdio. The local HTTP listener only serves the panel and its same-session bridge. The catalogue exposes 14 tools: 11 agent-callable tools and 3 _panel_* bridge tools the panel uses internally.
| Family | Tools | Purpose |
|---|---|---|
| Session | open_editor, open_browser_editor, editor_status |
Open the panel and confirm that it attached |
| Command gateway | command_list, command_run |
Discover real commands and run one with JSON params |
| Inspection | inspect |
Inspect the visible editor or the LightCraft library |
| Library | list_files, open_file |
List files held by the browser editor; import a workspace-relative file into it |
| Delivery | save_file, save_project, screenshot |
Copy a browser file or project to a new workspace path; capture the canvas |
save_project does not apply to the browser photo library: the library lives in page storage, so export a backup through the file.backupLibrary command instead.
| Setting | Where | Effect |
|---|---|---|
workspace argument |
open_editor / open_browser_editor |
Binds the task folder; paths outside it are refused |
--runtime-home |
Harness CLI and controller | Isolate the pinned runtime cache |
CRAFT_EDITOR_UPDATE=off |
stdio MCP env |
Use the bundled panel only; no download attempt |
CRAFT_EDITOR_CACHE_DIR |
Environment | Absolute directory for verified editor archives |
LIGHTCRAFT_SOURCE_GIT |
CI and release preflight | Git checkout used to verify the locked skill source |
Verified archives are cached under ~/.cache/full-aigc/editors. An active session keeps its version until closed, and a corrupt cache falls back to the bundled build.
Agent ↔ plugin traffic is stdio MCP; the browser bridge listens on 127.0.0.1 only, with a random token and Host/Origin checks. Paths outside the workspace are rejected, downloads are SHA-256 verified, and the bundled panel is always kept as a fallback.
Originals are treated as read-only inputs; edits are settings applied to a versioned history, and delivery requires a matching reopen receipt. The controller keeps a persistent task lock and atomic state, refuses to replay UNKNOWN, and bounds revisions. No credential is stored and no traffic reaches the authors. Details: architecture, controller contract, task receipts, implementation evidence.
| Symptom | Action |
|---|---|
| Panel tools are missing | Confirm the plugin is enabled, restart the host, open a new task |
| The panel does not render inside the host | Use the URL from open_browser_editor; the terminal provides no browser panel |
| The CLI is reported missing or wrong | Run the setup skill's bootstrap.py --no-install check; it never upgrades silently |
| RAW colours look wrong after export | Review the actual decoded file in an independent session; Nikon RAW colour accuracy is still an open gate |
| The photo library disappeared | The library lives in browser storage; restore from the file.backupLibrary export |
A run ends UNKNOWN |
Reconcile read-only, then decide; never replay the step |
codex plugin marketplace upgrade full-aigc-plugins
codex plugin add lightcraft@full-aigc-pluginsThe CLI, the editor archive and the skill snapshots are pinned separately; upgrading the plugin does not silently upgrade the native CLI.
Open issues at https://github.com/full-aigc-plugins/lightcraft-plugin/issues. Behaviour changes start in openspec/changes/, and a task is checked only after real acceptance. Read AGENTS.md and docs/verification/implementation-evidence.md before claiming a capability, and keep both languages aligned.
Original repository content is Apache-2.0. The icon is upstream LightCraft artwork under MIT OR Apache-2.0, recorded in assets/official-icon-source.json. The native CLI is not redistributed; its licence files ship inside the pinned artifact. Upstream LightCraft is a separate project at https://github.com/storytold/lightcraft.
