facet

package module
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2026 License: AGPL-3.0 Imports: 6 Imported by: 0

README

Facet

Video production tools and guidance for your agentic CLI.

Facet combines media tools, production packs, and a project workspace. Your agent plans and executes editing, narration, animation, and rendering.

Overview | Installation guide | License

Use Facet with your agentic CLI. The interactive installer supports OpenCode, Codex, Claude Code, and GitHub Copilot CLI, and lets you choose the optional production tools you need.

Run the command for your platform in a terminal:

# Windows (PowerShell 7)
irm https://xibodev.github.io/facet/install.ps1 | iex
# Linux / macOS
curl -fsSL https://xibodev.github.io/facet/install.sh | bash

The website bootstrap downloads and checksum-verifies the v1.0.3 installer package, then launches its interactive installer. That installer selects the matching prebuilt Windows, Linux, or macOS bundle for x64 or ARM64.

Manual/offline download: Download the installer ZIP, extract it, and run pwsh -File ./install.ps1 or bash ./install.sh from the extracted folder. Keep its installer/ directory beside the scripts. Release assets and SHA-256 checksums are also available. Only the website bootstrap is designed for piping; the extracted installer requires its companion files.

The installer lets you select your CLI, project folder, and optional dependencies. It installs prebuilt Facet binaries and registers the Facet skill in your CLI's project directory, preserving existing user instructions and configuration. Start a new agent session in that project after setup.

Optional Dependencies

Local editing and rendering do not require media-provider API keys. Optional generation services may require separate credentials, account access, or credits. The installer explains optional downloads, and tools report missing configuration when you use them.

  • FFmpeg and FFprobe: core media editing and inspection.
  • Remotion: animated compositions and rendered captions, with its browser and Node.js/npm dependencies.
  • Piper: local speech synthesis, with an optional runtime and voice-model download.
  • gflow: optional image/video generation through its supported providers.
  • HyperFrames: HTML-based video rendering.

The dependency selection lists approximate download sizes and what each component adds.

Using Facet with Another Agent

Using a different agentic CLI? Ask your agent to inspect this repository and adapt Facet's skills and command-line tools to its own integration conventions. The installer currently supports the four CLIs listed above; other integrations are community-adapted and may need additional setup.

Start a Production

Open your selected CLI in the project configured by the installer and ask it to use Facet:

Use Facet to make a short explainer about how rain forms.

Provide actual file locations when editing existing footage. Review the rendered video and continue the conversation to request changes.

Standalone Status

Facet Standalone is experimental. For now, we recommend using Facet through a supported agentic CLI.

Production Packs

Packs supply guidance, pipeline definitions, and supporting content. They do not install every referenced tool or provider. The Facet skill directs your agent to the relevant pack for the task.

Pack Package Use and Conditions
Explainer @xibodev/facet-pack-explainer Animated explainers, diagrams, charts, and text cards. Requires the composer, npm dependencies, browser, and a usable speech route when narrated.
Cinematic @xibodev/facet-pack-cinematic Cinematic/documentary montages, grading, and mixing. Requires available source assets and suitable rights; generated shots need a configured provider.
Screen Demo @xibodev/facet-pack-screendemo Software walkthroughs and synthetic terminal scenes. Real capture needs app access and recording/browser tooling. Synthetic scenes are not evidence of real product behavior.
Talking Head @xibodev/facet-pack-talkinghead Presenter edits and avatar workflows. Needs presenter footage or separate avatar/lip-sync support and consent. TTS alone does not generate a talking face.
Social @xibodev/facet-pack-social Vertical clips, podcast highlights, and captions. Needs source footage and accurate transcript/timing data; framing and moment selection require review.
Character Animation @xibodev/facet-pack-animation SVG rigs, poses, and action timelines. Requires assets, animation authoring, and a renderer; no character-generation model is bundled by the pack.
Localization @xibodev/facet-pack-localization Translated narration, subtitles, and dubbing. Requires transcription/translation and a supported target-language voice. Cloning/lip-sync needs separate provider support and consent; check language and timing.

Optional gflow Integration

Facet's gflow_image and gflow_video tools invoke the optional gflow CLI. Select it during dependency setup if you need it. gflow supports extension-free provider routes; its help and error diagnostics explain the requirements of the provider you choose.

Setup/status success is not generation evidence. Account eligibility, credits, quotas, models, and service availability still apply. There is no zero-cost guarantee; an unknown estimate or zero-valued generic metadata is not a billing promise.

Provider failures are errors, not an invitation to substitute mock media. Explicit mock: true is for contract tests and must never be presented as real generated content. After a timeout, check whether the remote job is still running before retrying.

Project Files and Configuration

The CLI-only installer registers a project skill (for example .opencode/skills/facet/SKILL.md) and creates .facet-install/ for its launcher, installation record, and pack references. Existing project configuration is preserved. Scripts, scene plans, narration, videos, and review reports are created only when that work runs. renders/final.mp4 is a convention, not an output guaranteed by installation.

Configuration discovery preserves pinned paths in .facet.yaml or ~/.config/facet/config.yaml. Unpinned bundle discovery checks the current directory and two parents, then executable-relative ../bundle and the source root, then ~/.facet/bundle. Pack resolution prefers paths.bundle; Remotion discovery prefers that bundle's composer. Existing project config is loaded before reinitialization so pinned paths/defaults survive unless explicitly changed.

Verify the renderer from the actual production directory, not only from the source checkout. A discovered configuration path alone does not prove a successful render.

Known Limitations

  • Installation and dependency diagnostics do not prove end-to-end production. Browser libraries, fonts, runtime paths, agent logins, and provider access can still fail.
  • Pack guidance can reference optional capabilities outside the native toolbox. Check the installed registry and implementation before promising a route.
  • Edge TTS is keyless but network-dependent. Other media services can require credentials and payment; quotas and model availability vary.
  • Facet Standalone is experimental; the recommended workflow uses a supported agentic CLI.
  • Automated review is partial. Watch and listen to the output, check caption timing, factual claims, consent, and asset rights. A file or sampled frame is not editorial acceptance.
  • No fixed-turn, completion-time, broadcast-quality, or release-certification claim is made here.

Technical Reference

Most users can work through natural-language prompts. Integrators can expand the source-linked reference below.

CLI discovery and source contracts
facet help
facet init --help
facet ui --help
facet tools list
facet tools describe video_compose
facet tools describe output_review
facet tools estimate <tool-name> --input request.json
facet tools run <tool-name> --input request.json

Use the installed catalog instead of a fixed tool count. request.json must match the selected tool and operation. Descriptions and standalone schemas cover different surfaces and can lag the implementation; these links are not a claim of exhaustive API coverage.

Use source at your installed revision when debugging. The repository branch may contain changes not present in your binary.

License

GNU Affero General Public License, version 3 or later: AGPL-3.0-or-later.

Documentation

Overview

Package facet contains the canonical creative assets shared by Facet hosts.

Index

Constants

This section is empty.

Variables

View Source
var Assets embed.FS

Assets is compiled from the same files used by the CLI bundle and module. It is independent of the executable's working directory.

Functions

func Guidance

func Guidance(name string) (string, error)

func PackNames

func PackNames() []string

Types

This section is empty.

Directories

Path Synopsis
cmd
facet command
facet-module command
facet-module is the headless capability entry point.
facet-module is the headless capability entry point.
facet-ui command
videokit command
internal
bundle
Package bundle builds Release C artifacts: installable, target-shaped Facet packages for external agentic CLIs.
Package bundle builds Release C artifacts: installable, target-shaped Facet packages for external agentic CLIs.
module
Package module projects Facet's existing mechanical toolbox onto the shared host module protocol.
Package module projects Facet's existing mechanical toolbox onto the shared host module protocol.
studio
Package studio composes Facet's browser workbench and embedded agent runtime.
Package studio composes Facet's browser workbench and embedded agent runtime.
studio/engine
Package engine adapts EXTERNAL agentic CLIs (Claude Code, Codex, Copilot, OpenCode) into a normalized event stream.
Package engine adapts EXTERNAL agentic CLIs (Claude Code, Codex, Copilot, OpenCode) into a normalized event stream.
pkg
provider
Package provider implements agent.ToolProvider for Facet's native toolbox.
Package provider implements agent.ToolProvider for Facet's native toolbox.
viewdef
Package viewdef provides the product-owned view definition for Facet.
Package viewdef provides the product-owned view definition for Facet.
Package web holds the embedded assets for Facet's standalone Studio UI.
Package web holds the embedded assets for Facet's standalone Studio UI.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL