Skip to main content
skill CX Codex

c-lockin — Claude Code skill: focus sessions and distraction blocking

This skill turns a request to lock in into a timed focus session that blocks sites and apps, then reports your git activity.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add daxaur/openpaw --skill c-lockin -a claude-code
Open on GitHub

What c-lockin does

c-lockin handles the whole lock-in routine. The agent reads ~/.config/openpaw/lockin.json, checks ~/.config/openpaw/lockin-session.json for a session still running, and generates two shell scripts: one starts the block, the other lifts it. Two commands do the work — openpaw lockin gen-scripts followed by bash /tmp/lockin-start.sh.

The end time is computed from the duration you give, written as ISO 8601 into the session file. With askEachTime enabled, the agent asks which sites and apps to add for this round. When you stop, bash /tmp/lockin-end.sh pulls git stats, and if obsidianLog is true the summary goes to your daily note through obsidian-cli.

No ~/.config/openpaw/lockin.json means no session — the skill points you to openpaw lockin setup first. Output stays terse on purpose: one line at the start, one at the end. Failures get a short mention and nothing more.

What it helps with

  • block distracting sites and apps for a work session
  • start a deep work session with a single phrase
  • count commits and changed lines during the session
  • log the session summary into an Obsidian daily note
  • change which sites and apps get blocked via openpaw lockin setup

Example prompts for the agent

  • Lock me in for 90 minutes and block distractions
  • End the session and show my commit stats
  • Reconfigure my blocks with openpaw lockin setup

How to install c-lockin

1Skills CLI (Vercel)

npx skills add daxaur/openpaw --skill c-lockin -a claude-code

2Manually: put the files in place

~/.claude/skills/c-lockin/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/c-lockin/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about c-lockin

How do I install c-lockin in Claude Code?

Run npx skills add daxaur/openpaw --skill c-lockin -a claude-code. The skill lands at ~/.claude/skills/c-lockin/SKILL.md.

What does c-lockin do?

It runs a focus session: generates blocking scripts for sites and apps, sets the end time, and collects git stats when the session ends.

What does c-lockin need to work?

A ~/.config/openpaw/lockin.json file. Without it the skill suggests running openpaw lockin setup. Writing summaries to Obsidian needs obsidian-cli and obsidianLog turned on.

Source text

SKILL.md · MIT
---
name: c-lockin
description: Lock In Mode — orchestrate distraction blocking, environment setup, and session tracking.
tags: [lockin, focus, productivity, deep-work, pomodoro, distraction-blocking]
---

## Behavior

You run lock-in sessions using generated shell scripts — fast, one command.
Be FAST. Say one short line like "Locking you in for 90 min" then run TWO commands max. Don't narrate steps. Only speak again when done ("Locked in until HH:MM") or if something fails.

## Starting a Session

When the user says "lock in", "focus", "deep work", etc:

1. Read `~/.config/openpaw/lockin.json`. If missing → suggest `openpaw lockin setup`
2. Check `~/.config/openpaw/lockin-session.json` — if `endsAt` is in the future, session is already active. Tell the user.
3. If config has `askEachTime` sites or apps, ask the user briefly which to include this session
4. Calculate `endsAt` = now + duration minutes (ISO 8601 format, e.g. `2026-03-03T16:30:00.000Z`)
5. Say ONE short line like "Locking you in for 90 min"
6. Generate scripts + run:

```bash
openpaw lockin gen-scripts --ends "ENDS_AT_ISO8601" --extra-sites "site1,site2" --extra-apps "App1,App2"
```

Omit `--extra-sites` and `--extra-apps` if none were chosen from askEachTime.

Then immediately run:

```bash
bash /tmp/lockin-start.sh
```

7. Say "Locked in until HH:MM"

That's it — TWO bash commands to start a session.

## Ending a Session

When the user says "stop", "end session", "I'm done":

1. Read `~/.config/openpaw/lockin-session.json` to get session data
2. Run:

```bash
bash /tmp/lockin-end.sh
```

3. Read the output for git stats
4. If `obsidianLog` is true in config: `obsidian-cli append daily "## Lock In Session\n- Duration: X min\n- Commits: N\n..."`
5. Give a brief warm summary: duration, commits + messages, lines changed, encouraging note referencing SOUL.md personality

## Reconfigure

```bash
openpaw lockin setup
```

## Guidelines

- Be FAST — one line to start, two commands, one line when done
- Never explain or narrate each step — just do it
- If something fails, mention it briefly and move on
- Only start when the user explicitly asks
- Reference SOUL.md for personality in summaries

© daxaur · MIT · daxaur/openpaw

Similar skills

All skills for Notes, tasks and projects →

From the same set14

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor