AI Coach
Overview
The AI Coach does not engage in NSFW or sexually explicit conversations. It is designed to provide structured guidance, session management, and accountability-focused interactions only.
It can also assist with practical needs during a session, such as granting a hygienic unlock when necessary (if enabled), helping you stay consistent while still supporting your wellbeing.
Capabilities
| Capability | Description |
|---|---|
| Chat | Natural conversation with persona-based responses |
| Time and Lock Control | Add or remove time, freeze or unfreeze the timer, and change visibility settings |
| Card Game | Add or remove cards, change card-game settings, and resolve green-card choices |
| Tasks | Assign saved tasks, create custom tasks, cancel active tasks, and grant hygienic unlocks |
| Photo Verification | Request verification photos when the selected model supports vision |
| Device Commands | Execute shock, vibration, randomshock, or berserk commands on supported devices |
| Scheduled Device Actions | Create, edit, and remove scheduled shock or vibration actions |
| Device Control | Manage parental-control features such as app blocking, site blocking, daily limits, and self-control locks |
| Rules and Settings | Update lock rules, verification settings, module edit permissions, pillory state, and other lock options |
Available Commands
| Command | Label | Effect |
|---|---|---|
add_time { amount: 1, unit: "h" } | Add time | Add time to the lock |
remove_time { amount: 30, unit: "m" } | Remove time | Remove time from the lock |
freeze { amount: 1, unit: "h" }, unfreeze {} | Freeze / unfreeze | Freeze or unfreeze the timer |
add_card { cardType: "RED", count: 1 }, remove_card { cardType: "RED", count: 1 } | Manage cards | Add or remove card-game cards |
assign_task { title: "Existing Task Title" } | Assign task | Assign a predefined task |
custom_task { text: "Complete your assigned routine and report back." } | Custom task | Create and assign an ad-hoc task |
cancel_active_task {} | Cancel task | Cancel the active task run |
grant_hygienic_unlock {} | Grant hygienic unlock | Grant a hygienic unlock override when allowed |
request_verification {} | Request photo | Request a verification photo |
shock { seconds: 15, intensity: 70 }, vibrate { seconds: 120, intensity: 60 } | Shock / vibrate | Execute shock or vibration on supported devices |
stop_all {} | Stop device | Stop active shock or vibration |
randomshock { min: 20, max: 80, duration: 120 }, berserk { duration: 120 } | Advanced shock mode | Use advanced Lockink Beesting shock modes |
schedule_shock { type: "shock", repeat: "daily", hour: 22, minute: 30, duration: 180, value: 70 } | Schedule shock | Create a scheduled shock or vibration |
edit_schedule_shock { scheduleId: "SCHEDULE_ID", ... }, unschedule_shock { all: true } | Edit schedules | Edit or remove scheduled device commands |
blind_random_shocks { enabled: true, min: 5, max: 11, startHour: 8, startMinute: 0, endHour: 22, endMinute: 0, minDuration: 5, maxDuration: 30, mode: "shock", minIntensity: 10, maxIntensity: 60 } | Random shocks | Configure or disable blind random shocks |
pc_set_daily_limit { minutes: 120 } | Daily phone limit | Set parental-control screen-time limits |
pc_set_usage_window { window: "08:00-20:00" } | Allowed phone hours | Set parental-control usage windows |
pc_block_app { app: "TikTok" }, pc_unblock_app { app: "TikTok" } | App block | Block or unblock apps |
pc_block_site { site: "example.com" }, pc_unblock_site { site: "example.com" } | Site block | Block or unblock websites |
pc_set_app_limit { app: "TikTok", minutes: 30 }, pc_clear_app_limit { app: "TikTok" } | App time limit | Manage per-app screen-time limits |
pc_set_porn_filter { enabled: true }, pc_set_screen_time { enabled: true } | Phone restrictions | Toggle parental-control protections |
pc_self_control_lock { seconds: 3600 } | Lock settings | Lock parental-control settings for a duration |
set_display_remaining_time { enabled: false }, set_display_history { enabled: false } | Hide lock info | Hide or show lock status/history |
set_lock_info_hidden { enabled: true } | Hide card info | Hide or show card-game info |
set_cumulative_chances { enabled: true }, set_card_red_seconds { seconds: 3600 } | Card settings | Adjust card-game settings |
set_hygienic_unlock { enabled: true }, set_hygienic_unlock_duration { seconds: 1800 }, set_hygienic_unlock_penalty { seconds: 0 } | Hygienic settings | Update hygienic unlock settings |
pillory { reason: "begging", amount: 2, unit: "h" }, pillory_add_time { amount: 1 }, pillory_remove_time { amount: 1 }, pillory_end {} | Pillory | Start or manage pillory mode |
set_task_edit_after_start { enabled: false }, set_task_edit_while_locked_self { enabled: false } | Task edit rules | Control task module edit settings |
set_wheel_edit_after_start { enabled: false }, set_wheel_edit_while_locked_self { enabled: false } | Wheel edit rules | Control wheel module edit settings |
set_daily_verification { enabled: true } | Daily verification | Toggle daily verification |
set_wearer_can_edit_rules { enabled: false } | Wearer rule edits | Allow or disallow wearer rule edits |
set_rules { text: "Rule 1. Address Goddess Tiffany properly at all times." } | Replace rules | Replace the lock rules text |
set_casino_game { game: "blackjack", enabled: false } | Casino game | Enable or disable casino minigames |
disable_freeze_ready {} | Stop ready freeze | Turn off dice freeze-on-ready |
disable_emergency_release {} | Disable emergency release | Request disabling emergency release |
disable_keyholder_control {} | Disable keyholder control | Request disabling future keyholder control |
show_hardcore_ui {} | Hardcore setup | Open the Hardcore Mode setup UI |
green_decide { choice: "unlock" } | Green-card choice | Resolve a pending green-card decision |
Model Setup
OpenRouter (Recommended)
You need your own OpenRouter API key. It is encrypted and stored securely in the database.
- Supports many models including GPT, Claude, Gemini, and open-source alternatives
- Vision support available on many models for photo verification and for sending images to the AI
AI Plan
Supporter users can use the AI Plan to get some included credits for trying different hosted models without needing to bring their own API key.
Supported models currently include:
| Model | Notes |
|---|---|
| MiniMax M2.7 | Recommended. Unlimited usage during the current promotion. |
| OpenAI: gpt-oss-120b | Cheapest model, highest message limits, simpler replies. |
| Grok 4.1 Fast | Fast and balanced, good quality with moderate usage. |
| DeepSeek V3.2 | High quality model, balanced performance and usage. |
| xiaomi/mimo-v2-flash | Very fast and efficient, lower cost with decent quality. |
MiniMax M2.7 is currently promoted with unlimited usage, but this promotion may change later.
Demo AI Mode
There is also a temporary DEMO AI mode for bot chats that is available to all users during the promotion.
This mode may cease to exist at any time. Rate limits may be applied later, and the underlying demo model may change at any point without notice.
Self-Hosted (LM Studio / Ollama)
Run models locally for privacy and cost savings.
Supporter users can also use a custom OpenAI Chat Completions compatible URL. That means you can point AI Coach at LM Studio's chat endpoint, Ollama-compatible bridges, vLLM, your own hosted service, or a third-party provider that exposes an OpenAI-compatible chat API.
- Start your model in LM Studio or Ollama
- Use a tunnel service to expose it without port forwarding:
- Cloudflare Tunnel:
cloudflare tunnel --url http://localhost:1234 - ms.devtools: Alternative tunneling solution
- Cloudflare Tunnel:
- Enter the custom endpoint URL in the AI Coach setup
If you use LM Studio, use its OpenAI-compatible /chat/completions endpoint or the configured local server endpoint exposed through your tunnel.
AI Tasks
AI Coach can assign tasks in multiple ways depending on which task features are enabled:
| Task Type | Description |
|---|---|
| Task Module Task | The AI picks an existing task from your lock's task module by title |
| Ad-Hoc Task | The AI generates a one-off task on its own and assigns it immediately |
| Ad-Hoc Writing Task | The AI creates a typing task with a title, line to type, and repetition count |
This lets the AI mix fixed task templates with generated tasks or writing exercises, depending on the bot configuration and enabled features.
When Hardcore Mode is enabled for AI Coach or a bot, you will not be able to remove it for a set duration or until the lock session ends.
It also prevents editing the bot's instructions, persona, enabled features, or switching to another bot while the lock is active.
Hardcore Mode can be configured with different durations such as 24 hours, 7 days, or permanent.
Command Limits
These limits are enforced by the command parser. AI Coach now uses the safety profiles easy, medium, and unlimited. Bots use the safety profile the user selects before activation.
| Action | Easy | Medium | Unlimited |
|---|---|---|---|
| Add Time | 12 hours per day, up to 1 day per action | 24 hours per day, up to 1 day per action | Unlimited daily add budget, up to 31 days per action |
| Remove Time | Up to 12 hours per action | Up to 12 hours per action | Up to 31 days per action |
| Add / Remove Cards | Up to 3 cards per action | Up to 3 cards per action | Up to 3 cards per action |
| Freeze | Up to 1 day per action | Up to 1 day per action | Larger freezes are allowed |
| Verification | No fixed parser daily cap | No fixed parser daily cap | No fixed parser daily cap |
| Task Assignment | No fixed parser daily cap | No fixed parser daily cap | No fixed parser daily cap |
| Shock / Vibration | Device support and consent required | Device support and consent required | Device support and consent required |
The parser also prevents removing more time than currently remains on the lock.