with one click
browser-tab-capture
Brave browser tab URL capture. Activate when the user asks to capture, export, list, archive, save, or recover open Brave tabs, browser tabs, tab URLs, or session files.
Menu
Brave browser tab URL capture. Activate when the user asks to capture, export, list, archive, save, or recover open Brave tabs, browser tabs, tab URLs, or session files.
Private datastore workflow. Activate when writing, saving, archiving, packing, encrypting, committing, or storing sensitive local files under private/ or Dolos encrypted archives.
Use when working with X/Twitter: x.com feed extraction, tweet/profile checks, following/follower lists, twitterapi.io, browser-agent pulls, or local encrypted X data handling.
Shell scripting, CLI development, Bash, PowerShell, Makefiles, and cross-platform tooling. Activate when working with .sh, .bash, .ps1, Makefile files or discussing shell/CLI patterns.
Use when the user asks to create, draft, write, improve, optimize, or build an inline Pi /goal command, goal prompt file, long-running objective, or goal_prompt_file.md. Triggers: /goal prompt, goal prompt, pi goal, goal_prompt_file.md, write a goal for, turn this into a goal.
Personal development philosophy emphasizing experiment-driven, fail-fast approach. Activate when planning implementations, reviewing code architecture, making design decisions, or when user asks to apply development principles. Guides against over-engineering and towards solving real problems with simple solutions.
Activate when user mentions analyze, review, validate, critique, debug, troubleshoot, red-team, adversarial, or "what could go wrong". Use for code review, debugging, validation, and error investigation.
| name | browser-tab-capture |
| description | Brave browser tab URL capture. Activate when the user asks to capture, export, list, archive, save, or recover open Brave tabs, browser tabs, tab URLs, or session files. |
Auto-activate when: The user asks to capture, export, list, archive, save, or recover open Brave tabs, tab URLs, browser sessions, or Chromium session files.
Tab URLs are sensitive. Capture them deterministically, write the primary note into the private Obsidian vault, store raw artifacts as attachments, and report whether the data came from live CDP or session-file recovery.
Prefer the tracked capture script:
scripts/brave-tab-capture --json
For a known Brave CDP port, make the live source explicit:
scripts/brave-tab-capture --cdp-port 9222 --json
If Brave is not running with CDP, force the session-file path:
scripts/brave-tab-capture --session-only --json
Use the private vault layout:
private/browser-tabs/brave/<timestamp>.mdprivate/_attachments/browser-tabs/brave/<timestamp>/private/_indexes/browser-tabs.mdReport the method and limitations:
cdp: live /json/list target capture from a Brave CDP endpoint.session: copied the newest readable Session_* and Tabs_* files per profile, then parsed tab URLs and titles. Locked latest files can make this approximate.The Markdown note is the primary Obsidian artifact. It must include YAML frontmatter with at least:
---
title: Brave tabs capture 2026-06-06 10:45:09
created: 2026-06-06T10:45:09-04:00
updated: 2026-06-06T10:45:09-04:00
type: browser-tabs
source: brave
capture_method: session
tab_count: 42
locked_files: 2
sensitive: true
tags:
- private/browser-tabs
- browser/brave
related:
- "[[browser-tabs]]"
attachments:
- "../../_attachments/browser-tabs/brave/20260606-104509/brave-tabs-full.json"
---
Use ## Summary, ## Tabs, ## Attachments, and ## Notes sections. Render tab entries as Markdown links.
To migrate legacy captures from timestamp directories into the private vault layout:
scripts/brave-tab-capture --migrate-existing --json
Migration reports paths and counts only. Do not print captured URLs, page titles, JSON contents, or note bodies.
| Anti-Pattern | Problem | Fix |
|---|---|---|
| Killing Brave to unlock files | Destructive and can lose session state | Copy the newest readable session files |
Writing captures under .pi/ or tracked paths | Sensitive data can mix with runtime state or diffs | Use the private vault layout |
| Claiming session parsing is live | Session files can lag and locked files may be skipped | State method=session and mention locked files |
| Using broad URL regex extraction as the main result | Produces duplicates and history noise | Parse Chromium session commands |
| Force-adding private output | Leaks sensitive browsing data | Keep private/ ignored |
| Need | Command |
|---|---|
| Default capture | scripts/brave-tab-capture --json |
| Live CDP port | scripts/brave-tab-capture --cdp-port 9222 --json |
| Session files only | scripts/brave-tab-capture --session-only --json |
| Specific profile | scripts/brave-tab-capture --profile Default --json |
| Deterministic test output | scripts/brave-tab-capture --timestamp test-run --json |
| Migrate legacy captures | scripts/brave-tab-capture --migrate-existing --json |
The script never starts, stops, or kills Brave. It detects existing CDP endpoints first, then falls back to session-file parsing. Output includes an Obsidian note, brave-tabs-full.json, manifest.json, copied session files when session parsing is used, and an index entry.