Install
openclaw skills install cyber-girlfriendBuild or customize an owner-only proactive companion system with a cyber-girlfriend persona, Markdown private-life context, lightweight relationship memory, and OpenClaw presence cron delivery.
openclaw skills install cyber-girlfriendUse this skill when the user wants an owner-only proactive companion instead of a purely reactive assistant.
This skill gives the owner:
character-profile.mdday-schedule.mdlife-log.jsonlThis skill is meant to be set up by an agent, not by hand.
If the user wants the default setup, the simplest path is:
Help me set up cyber girlfriend.
The agent should then gather the minimum inputs, create or update the local files, wire the default cron jobs, and validate the install before claiming success.
For a normal install, the user only needs:
The user should not need to:
The recommended starter setup is:
day-schedule.mdcompanion-presence cron that runs a deterministic tick wrapper from an isolated cron sessionday-schedule.mdThose anchors are life facts, not guaranteed sends.
The current default active path has two small steps:
scripts/companion_presence_tick.py --config <CONFIG>scripts/companion_run.py --stage prepare --no-record-pendingThe wrapper reads local state through the prepare runner and exits quietly when no current event should send. Only when prepare returns status = "ok" does it start the stable companion session with the prepared contract. If the matched event asks for media, text sends first, state commits after text delivery, and media finishes asynchronously. The OpenClaw media completion event returns to that same stable companion session; that completion turn only sends the media.
The default local files are:
character-profile.mdday-schedule.mdcompanion-state.jsonlife-log.jsonlLegacy 1.x inputs such as persona, month-plan.json, day-context.json, and the old multi-slot cron path are upgrade-only compatibility inputs, not the default product path.
config.local.json or environment variables, not published defaults.character-profile.md; treat config.local.json -> persona as deprecated migration data.companion_presence_tick.py, not duplicate long writing instructions in runtime configuration.媒体信息; leave it empty unless the matched event should produce photo, audio, video, or similar media.Always read:
Version 2.1.6 hardens OpenClaw CLI child processes launched by the presence wrapper so cron-inherited CA settings cannot reintroduce Keychain startup failures. It also keeps dispatch-lock startup acknowledgement and launch-error diagnostics in the release contract.
中文说明:2.1.6 加固了 presence wrapper 启动 OpenClaw CLI 子进程时的 CA 环境,避免 cron 继承的系统 CA 设置再次触发 Keychain 启动失败;同时保留稳定 session 启动确认和启动失败诊断能力。
Version 2.1.5 removes prompt wording that explicitly names concrete runtime tools while preserving the mandatory real web-search requirements for day-schedule generation and matched-event presence writing.
Version 2.1.4 removes the legacy visible mode field from the presence prepare contract and default wrapper command. There is now only one public presence flow: cron calls the deterministic wrapper, the wrapper prepares the current event, and matched events are handed to the stable companion session.
Version 2.1.3 moves the cron-side current-event decision into scripts/companion_presence_tick.py. The visible cron should run in an isolated session and only call that wrapper; the wrapper performs fresh prepare deterministically, then starts the stable companion session only for matched events. Presence writing must run a small public web search for the matched event, and media events now commit state after visible text delivery so media failure does not block later events.
Version 2.1.2 returned media delivery to the native OpenClaw completion flow by running companion-presence in a stable companion session. Text sends first, media generation runs asynchronously, and the completion turn in the same companion session sends media.
Version 2.1.1 changes companion-presence to a stateless single-turn runtime task. Continuity remains in local state files, and event media callbacks must use a self-contained payload instead of relying on a long-lived companion session history.
Version 2.1.0 is the public release cleanup for the simplified presence companion. It removes git-local packaging assumptions, keeps ClawHub ignore rules authoritative, preserves the generic internet-search day-schedule rule, and checks that local maintenance Markdown does not enter the publishable surface.
Version 2.0.4 hardens the generic day-schedule templates. It preserves the mandatory internet-search material rule without local profile examples, removes stale upgrade links, cleans finished schedule examples so they do not contain generation constraints, and clarifies first-time setup plus old-install migration.
Version 2.0.3 improves the published skill surface. It rewrites the main skill entry as a product-first quick-start page, removes an unreferenced optional source note from the package, and keeps the release smoke fixture aligned with the current runtime state schema.
Version 2.0.2 finishes the release-hardening pass for publishing. It keeps local runtime state out of the ClawHub package, documents the OpenClaw async media callback flow, and validates the publishable release surface before upload.
Version 2.0.1 hardened the 2.0 release surface, removed tests from the ClawHub package, tightened week/day generation quality, and added event-level media instructions through the OpenClaw async media callback flow.
Version 2.0.0 made the presence runner the only default active path by merging scripts/companion_ping.py into scripts/companion_run.py and removing the old render/full path from the default release surface.
Before publishing a new version, run:
python3 scripts/validate_release.py --root <SKILL_DIR> --config <CONFIG>
The validator compiles scripts, validates JSON and Markdown assets, runs the presence dry-run flow, checks the runner contract, and scans the release surface for private channel identifiers and obsolete cron contract terms.