← 返回 Skills 市场
sybileak

Faces

作者 sybileak · GitHub ↗ · v1.6.5 · MIT-0
cross-platform ⚠ suspicious
666
总下载
0
收藏
4
当前安装
15
版本数
在 OpenClaw 中安装
/install faces
功能描述
Use this skill when the user wants to create, compile, or chat through a Face (a persona compiled from source material), compose personas with boolean formul...
使用说明 (SKILL.md)

Faces Skill

You have access to the faces CLI. Use it to fulfill any Faces Platform request.

Always use --json when you need to extract values from command output.

Current config

!faces config:show 2>/dev/null || echo "(no config saved)"

Setup

Verify credentials: faces auth:whoami. If no credentials exist, see references/AUTH.md for registration (requires human payment step) and login.

Install (if faces command not found): npm install -g faces-cli

faces auth:* and faces keys:* require JWT. Everything else accepts JWT or API key.

Plans

Two plans: Free ($5 minimum initial spend, pay-per-token with 5% markup on all usage including compilation) and Connect ($17/month, 100k compile tokens/month, free passthrough to OpenAI Codex for users with a ChatGPT subscription). See references/AUTH.md for details.

Core workflow

  1. Create a Face with basic facts and a default model: faces face:create --name "Name" --username slug --default-model gpt-5-nano --attr gender=male --attr age=34 --attr location="Portland, OR" --attr occupation="nurse practitioner"
  2. Compile source material in one step: faces compile:doc slug --file document.txt
    • This creates the document, runs LLM extraction with real-time chunk progress, and syncs automatically
    • Repeat for each source document
  3. Chat through the Face: faces chat:chat slug -m "message" (auto-routes to the correct API based on model provider)
  4. Compare Faces: faces face:diff or faces face:neighbors
  5. Compose new Faces from boolean formulas: faces face:create --formula "a | b"

Note: compile:doc handles the full create → compile pipeline. For an already-created document, use compile:doc:make \x3Cdoc_id>. Threads use a separate workflow: compile:thread:make (same fire-and-forget pattern as documents).

Boolean operators: | (union), & (intersection), - (difference), ^ (symmetric difference). Parentheses supported: (a | b) - c.

Common tasks

Create a face with attributes

When creating a Face, set basic demographic facts with --attr KEY=VALUE (repeatable). Common keys: gender, age, location, occupation, education_level, religion, ethnicity, nationality, marital_status. Unrecognized keys are silently ignored — see references/ATTRIBUTES.md for the complete list of accepted keys.

faces face:create --name "Marcus Rivera" --username marcus \
  --default-model gpt-5-nano \
  --attr gender=male --attr age=34 \
  --attr location="Portland, OR" \
  --attr occupation="nurse practitioner" \
  --attr education_level="master's degree" \
  --attr marital_status=married

You can also add or update attributes and set the default model on an existing Face:

faces face:update marcus --attr religion=Catholic --attr ethnicity="Mexican American"
faces face:update marcus --default-model claude-sonnet-4-6

Compile a document into a face

# Recommended: one-step compile with progress
faces compile:doc \x3Cface_id> --file notes.txt --label "Notes"

# Alternative: create then compile separately
DOC_ID=$(faces compile:doc:create \x3Cface_id> --label "Notes" --file notes.txt --json | jq -r '.document_id')
faces compile:doc:make "$DOC_ID"

Upload a file (PDF, audio, video, text)

# Upload as document — then compile
DOC_ID=$(faces face:upload \x3Cface_id> --file report.pdf --kind document --json | jq -r '.document_id // .id')
faces compile:doc:make "$DOC_ID"

# Upload as thread — compile with make
THREAD_ID=$(faces face:upload \x3Cface_id> --file transcript.txt --kind thread --face-speaker "Troy" --json | jq -r '.thread_id // .id')
faces compile:thread:make "$THREAD_ID"

Thread transcript format

Text files uploaded as threads must use Speaker Name: message format, one turn per line:

Interviewer: Tell me about yourself.
Troy: I'm an inventor living in the Parisian countryside.
Interviewer: What drives your work?
Troy: The conviction that technology should serve human flourishing.

Use --face-speaker to specify which speaker IS the face (maps to role=user). All other speakers become role=assistant. If omitted, the first speaker is assumed to be the face.

Audio/video files with --kind thread are transcribed with speaker diarization — speaker labels are assigned automatically (Speaker A, Speaker B, etc.). Use --face-speaker A to map the correct speaker to the face.

Import a YouTube video

# Solo talk / monologue → document
IMPORT=$(faces compile:import \x3Cface_id> \
  --url "https://www.youtube.com/watch?v=VIDEO_ID" \
  --type document --perspective first-person --json)
DOC_ID=$(echo "$IMPORT" | jq -r '.document_id // .doc_id // .id')
faces compile:doc:make "$DOC_ID"

# Multi-speaker → thread
IMPORT=$(faces compile:import \x3Cface_id> \
  --url "https://youtu.be/VIDEO_ID" \
  --type thread --face-speaker A --json)
THREAD_ID=$(echo "$IMPORT" | jq -r '.thread_id // .id')
faces compile:thread:make "$THREAD_ID"

If --type thread fails with a 422, retry with --type document.

Create a composite face

faces face:create --name "The Realist" --username the-realist \
  --formula "the-optimist | the-pessimist"

# Chat through it like any other face
faces chat:chat the-realist -m "How do you approach risk?"

Composite faces are live: sync new knowledge into any component and the composite updates automatically. Components must be concrete (compiled) faces you own.

Compare faces

faces face:diff --face aria --face marco --face jin
faces face:neighbors aria --k 3
faces face:neighbors aria --component beta --direction furthest --k 5

Chat

chat:chat auto-routes to the correct API endpoint based on model provider (Anthropic → /v1/messages, OpenAI/others → /v1/chat/completions). If the face has a default_model set, no --llm flag is needed.

# Uses face's default model (no --llm needed if default_model is set)
faces chat:chat slug -m "message"

# Override with a specific model
faces chat:chat slug --llm claude-sonnet-4-6 -m "message"
faces chat:chat slug --llm gpt-4o-mini -m "message"

# Use OpenAI Responses API explicitly
faces chat:chat slug --llm gpt-4o -m "message" --responses

Face templates

Use ${face-username} in any message to reference another face's profile inline. The token is replaced with the face's display name and the profile is injected as context. A bare model name (no face prefix) skips the persona and lets you reference all faces via templates.

faces chat:chat alice --llm gpt-4o-mini -m 'You are debating ${bob}. Argue your position.'
faces chat:chat gpt-4o-mini -m 'Compare the worldviews of ${alice} and ${bob}.'

See references/TEMPLATES.md for full details and rules.

Billing and API keys

faces billing:balance --json
faces billing:subscription --json
faces keys:create --name "Partner key" --face slug --budget 10.00 --expires-days 30

Common errors

  • faces: command not found — Run npm install -g faces-cli.
  • 401 Unauthorized — Credentials missing or expired. Run faces auth:login or check FACES_API_KEY.
  • compile:doc:make returns "preparing" — Compilation is async. Poll with faces compile:doc:get \x3Cdoc_id> --json | jq -r '.prepare_status' until status is synced.
  • 422 on thread import — No speaker segments detected. Retry with --type document.
  • face:diff or face:neighbors returns null components — The face hasn't been compiled yet. Run faces compile:doc \x3Cface_id> --file ... first.

References

安全使用建议
This skill is an instruction-only wrapper around a third-party CLI (faces-cli) and a hosted service (api.faces.sh). The functionality described (persona creation, compilation, chat, imports, billing) matches the documented commands, but note these important points before you proceed: - Trust & provenance: installing the CLI requires 'npm install -g faces-cli'. Only install if you trust the npm package and its publisher; verify the package on npmjs and the upstream repository before running a global npm install. - Local files & credentials: the CLI will store credentials (JWT or API keys) in ~/.faces/config.json and maintain a local catalog at ~/.faces/catalog/. If you use this skill, expect these files to be created and to hold metadata and tokens — review and protect them. The manifest claimed 'no required config paths' even though the docs describe these files; treat that as an inconsistency. - Sensitive data: the ATTRIBUTES list includes very sensitive fields (social_security_number, tax_id, full addresses). Avoid uploading or entering SSNs, tax IDs, or other unnecessary PII into the platform or into the local catalog unless you have a clear, consented reason and you trust the service's data handling and retention policies. - Credentials & OAuth: the skill supports JWTs, API keys, and linking your ChatGPT account (OAuth). Prefer scoped API keys with budgets/expiry for automated use, and be cautious when linking accounts or sharing tokens. The registration flow requires a payment step (Stripe checkout) — a human must complete it. - Tooling: examples use jq and recommend '--json' output parsing. Ensure you have jq (or equivalent) if you replicate example pipelines. - No code in skill bundle: because this is instruction-only, the skill itself does not contain executable code, but it instructs you to run networked CLI commands. The security posture depends entirely on the CLI and the Faces service; verify their trustworthiness separately. If you decide to proceed: verify the npm package and repo, prefer limited API keys with budgets/expiry, avoid uploading unnecessary PII, and inspect or backup ~/.faces/config.json and ~/.faces/catalog/ so you control local copies of sensitive material.
功能分析
Type: OpenClaw Skill Name: faces Version: 1.6.5 The 'faces' skill bundle is a comprehensive and well-documented integration for the Faces Platform, a service designed for persona modeling and cognitive primitive extraction. It provides a CLI-based workflow (faces-cli) for creating, compiling, and interacting with AI personas using semantic vectors and boolean algebra. The bundle includes explicit security boundaries in SCOPE.md, follows standard authentication practices using JWTs and API keys stored in ~/.faces/config.json, and correctly delegates sensitive tasks like financial transactions to the human user via Stripe checkout links. No evidence of malicious intent, unauthorized data exfiltration, or prompt-injection attacks was found; the instructions are consistent with the stated purpose of managing a specialized AI platform.
能力评估
Purpose & Capability
The name/description map directly to the CLI commands and workflows in SKILL.md (face creation, compile, chat, boolean composition, imports, billing). Required binaries and network access referenced are appropriate for a CLI client of a hosted API.
Instruction Scope
The SKILL.md instructs the agent/user to run many faces CLI commands that read/write ~/.faces/config.json and ~/.faces/catalog/ (local storage of credentials and catalog). It also references environment variables (FACES_TOKEN, FACES_API_KEY, FACES_BASE_URL) and example use of jq, but the skill manifest declared no required config paths or env vars. That mismatch (manifest says none, docs say CLI will read/write these files and env vars) is an incoherence worth calling out. Also the ATTRIBUTES list includes extremely sensitive PII fields (social_security_number, tax_id, full addresses), which encourages storing highly sensitive personal data in the platform and in local catalog files.
Install Mechanism
The skill is instruction-only (no install spec). SKILL.md tells users to install the CLI via 'npm install -g faces-cli' if missing. Installing a global npm CLI is normal but requires trust in the npm package and publisher; SKILL.md asserts the package is on npm and published by 'sybileak' (and points to a repo), but the registry metadata provided with the skill does not itself verify that provenance. There is no direct download URL in the skill bundle to validate the package origin.
Credentials
The skill does not declare required env vars in the manifest, yet documentation and examples rely on FACES_TOKEN, FACES_API_KEY, and FACES_BASE_URL. Those variables are relevant to a CLI client, but the mismatch between declared requirements (none) and the documented env vars is an inconsistency. More importantly, the ATTRIBUTES reference list includes highly sensitive fields (e.g., social_security_number, tax_id, exact addresses). While such fields might be needed for certain persona reconstructions, asking users (or examples) to supply them is disproportionate from a privacy perspective and increases risk of sensitive-data exposure or retention on the remote platform and in local ~/.faces files.
Persistence & Privilege
The skill does not request always:true and is not persistent in the registry sense. However, the CLI stores credentials (JWT/API keys) and maintains a local catalog at ~/.faces/catalog/ and a config at ~/.faces/config.json. That local persistence is expected for a CLI, but the skill manifest reported 'no required config paths' while the instructions explicitly document these paths — a mismatch a user should be aware of. The skill also supports linking a user's ChatGPT subscription and creating API keys, both of which grant persistent capabilities that should be scoped carefully (use budgeted, limited API keys where possible).
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install faces
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /faces 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.6.5
Minor update: thread compilation command changed. - Updated thread compilation step to use faces compile:thread:make instead of faces compile:thread:sync for consistency across document and thread processing. - Clarified step descriptions for uploading and compiling thread-type files and YouTube video imports. - Removed license and metadata fields from SKILL.md for a simpler manifest.
v1.6.4
faces 1.6.4 - Adds documentation for `--face-speaker` usage when uploading threads and importing YouTube videos. - Explains required speaker-label transcript format for thread uploads. - Documents how speaker mapping works for both text threads and diarized audio/video uploads. - No changes to code; documentation update only.
v1.6.3
No user-facing changes detected in this version. - No updates to documentation or code files were found. - Behavior and usage of the skill remain unchanged.
v1.6.2
**Faces 1.6.2 — Adds attribute support and simplifies document compilation** - New: You can now set demographic/personality attributes on faces (e.g., gender, age, occupation) during creation or update; see [references/ATTRIBUTES.md] for accepted keys. - Simplified workflow: The new one-step compile command (`faces compile:doc slug --file ...`) creates, extracts, and syncs documents in a single step, with real-time progress. - Updated instructions throughout for using attributes, default models, and the unified compile process. - Thread and YouTube import workflows clarified; legacy prepare/sync steps are now optional except for edge cases. - Reference to newly added [references/ATTRIBUTES.md] for full attribute details.
v1.6.1
- Clarified and emphasized the requirement to always run `compile:doc:prepare` before syncing any document, including explicit warnings about skipping this step. - Added details and updated examples for polling document preparation status before syncing. - Updated file upload and YouTube import instructions to reflect the critical "prepare before sync" workflow and included robust polling and ID extraction steps. - Improved error documentation, specifically for empty sync results due to missing prepare step. - Updated skill metadata author field.
v1.6.0
- Added references/QUICKSTART.md with a step-by-step guide for getting started. - Updated SKILL.md "References" section to include the quickstart guide for easier onboarding.
v1.5.2
- Added a new "Plans" section detailing Free and Connect plan options, pricing, and usage policies. - No other changes to workflow, commands, or usage instructions.
v1.5.1
- Added references/AUTH.md as a new documentation file. - Updated SKILL.md to point to AUTH.md for registration, login, and credential management details. - Simplified authentication section: directs users to AUTH.md for human payment step and setup instructions. - Minor cleanup of setup instructions and references section for improved clarity.
v1.5.0
- Added template syntax support for referencing faces in chat messages using `${face-username}`. - Introduced bare model name usage in chat commands to allow referencing all faces via templates. - Added a new reference document [references/TEMPLATES.md] with details and rules for templates. - Updated documentation and references to explain and link to the new face template feature.
v1.4.0
**Expanded documentation and added reference material.** - Added comprehensive reference files: CONCEPTS.md, REFERENCE.md, OAUTH.md, and SCOPE.md. - SKILL.md rewritten for improved clarity, concise setup, error handling, and common workflows. - Description now details when to trigger the skill and covers new use cases. - Enhanced command examples for compiling, uploading, importing, composing, comparing, and billing. - Improved troubleshooting and authentication instructions. - Reference section added for in-depth guidance and security information.
v1.3.2
No user-facing changes in this version. - removed faulty metadata
v1.3.0
**Major update: Added detailed product overview, use cases, and advanced composite persona features to the Faces skill.** - Skill description now explains the Faces Platform as a compiler for the human mind, describing how it creates, compresses, and embeds personas (“Faces”). - Introduced support for boolean algebra over Faces: combine personas using union, intersection, difference, and symmetric difference operators to make composite Faces. - Documented composite Faces and cognitive circuits: composite Faces remain live, can be wired together, and act as logic gates for persona chaining. - Expanded, concrete use cases provided (historical resurrection, customer panels, living proxies, ideological drift detection, synthetic focus groups, etc.). - Added sections summarizing the value proposition and basic workflow for creating, compiling, comparing, and composing Faces. - No changes to tool permissions, setup instructions, or CLI command reference.
v1.0.2
Added Instruction Scope
v1.0.1
- Updated installation instructions to use npm (npm install -g faces-cli) instead of pip.
v1.0.0
- Initial release of the Faces skill. - Enables login, registration, and persona management on the Faces AI platform. - Supports face creation, chatting, document and thread compilation, and file uploads. - Includes billing features: check balance, subscription, and compile quota. - Manage API keys and inspect account state. - All commands available via the faces CLI, with JSON output by default.
元数据
Slug faces
版本 1.6.5
许可证 MIT-0
累计安装 4
当前安装数 4
历史版本数 15
常见问题

Faces 是什么?

Use this skill when the user wants to create, compile, or chat through a Face (a persona compiled from source material), compose personas with boolean formul... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 666 次。

如何安装 Faces?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install faces」即可一键安装,无需额外配置。

Faces 是免费的吗?

是的,Faces 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Faces 支持哪些平台?

Faces 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Faces?

由 sybileak(@sybileak)开发并维护,当前版本 v1.6.5。

💬 留言讨论