Obclip
Use this skill to make obclip work predictably instead of trial-and-error.
Workflow
- Verify how
obclipshould be invoked. - Pick the browser mode that matches the target site.
- Run the smallest command that can succeed.
- Escalate waiting and browser state only when the output is incomplete.
- Report the final saved path or the concrete failure reason.
1. Verify Invocation
- Prefer
obclipif it is already onPATH. - If
obclipis missing, install the npm package from install-and-invoke.md. - If you are working inside the source repo and the global command is unavailable, fall back to
node <repo>\\dist\\cli.cjs .... - After installation, verify with
obclip --helpornpx @harris7/obclip --help.
2. Pick Browser Mode
- Use the default bundled Playwright Chromium for public pages that do not need login state.
- Use
--browser-executable "<path>"when the user already has a dedicated Chromium build and wants a fixed browser binary. - Use
--browser-profile "<dir>"for sites that require login state, cookies, or a persistent session. - Use
--headfulwhen the user needs to see the browser or perform the initial login into a fresh profile. - Do not point
--browser-profileat the user's normal daily Chrome profile. Prefer a dedicated profile directory.
3. Start With The Smallest Command
- Default public-page capture:
obclip <url> --output "<dir>\\" - Logged-in or anti-bot page: add
--browser-executable,--browser-profile, and usually--headful - If the user wants Markdown on stdout, omit
--output - If the user wants the note opened in Obsidian, add
--openand the optional vault/URI flags
Use the concrete command templates in command-recipes.md.
4. Escalate Waiting In Order
- First run without custom waits when the page is simple.
- If the page is incomplete but visibly loading dynamic content, add
--settle-ms 3000or--settle-ms 5000. - If the page is an SPA and the content mounts later, add
--wait-selector "<css>". - Prefer broad, content-bearing selectors such as
article,main,[role="main"], or a stable post container. Avoid selectors that only match nav, login shells, or skeleton loaders. - If the page still shows a login wall, fix browser state with
--browser-profile; extra delay does not solve missing authentication.
Use troubleshooting.md when the first pass fails.
5. Interpret Results Correctly
- Successful file saves print
Saved note: <full-path>tostderr. - Failures print a direct reason such as save failure, invalid browser path, or wait timeout.
- Keep
stdoutclean unless the user explicitly wants the Markdown body in the terminal or piped into another command.
6. Windows Path Rules
- Quote Windows paths that may contain spaces.
- For
--output, prefer an existing directory or a path ending in\\or/when you want directory semantics. - Example:
--output "D:\\data\\Clippings\\"
References
- Installation and invocation: install-and-invoke.md
- Command templates: command-recipes.md
- Failure handling: troubleshooting.md
