Agent Skills › langwatch/langwatch › haven-auth

haven-auth

GitHub

管理本地开发环境的浏览器登录状态,支持以管理员或种子用户身份生成 Playwright storage-state 文件,确保密码不泄露且仅限本地使用。

.claude/skills/haven-auth/SKILL.md langwatch/langwatch

Trigger Scenarios

haven auth haven browser login --as sign in as admin log in as a seeded user storage state a signed-in session for a script what is the admin login login for a Playwright test how do I get a session without a password

Install

npx skills add langwatch/langwatch --skill haven-auth -g -y
More Options

Non-standard path

npx skills add https://github.com/langwatch/langwatch/tree/main/.claude/skills/haven-auth -g -y

Use without installing

npx skills use langwatch/langwatch@haven-auth

指定 Agent (Claude Code)

npx skills add langwatch/langwatch --skill haven-auth -a claude-code -g -y

安装 repo 全部 skill

npx skills add langwatch/langwatch --all -g -y

预览 repo 内 skill

npx skills add langwatch/langwatch --list

SKILL.md

Frontmatter
{
    "name": "haven-auth",
    "description": "Sign in to this worktree's stack as admin or a seeded login with `haven browser login --as`, which writes a Playwright storage-state file and never prints the password. Use when someone says 'haven auth', 'haven browser login --as', 'sign in as admin', 'log in as a seeded user', 'storage state', 'a signed-in session for a script', 'what is the admin login', 'login for a Playwright test', or 'how do I get a session without a password'.",
    "argument-hint": "browser login --as <admin|email> [--out file] [--json] [--stack slug]",
    "user-invocable": true
}

haven browser login (formerly haven auth)

haven browser login --as admin                          # the stack's admin; state goes to haven's per-stack browser dir
haven browser login --as admin --out .claude/tmp/state.json   # a Playwright storage state, mode 600
haven browser login --as someone@seed.test --json       # a seeded login by email; JSON {who, email, app, file}
  • It signs in through the app's normal email sign-in and writes the session cookies as a Playwright storage state (owner-only, mode 600). The password is never printed.
  • It refuses any app that is not on this machine, so a dev password never travels elsewhere.
  • Needs a running stack: haven up --agent -d. --stack <slug> signs in to another worktree's.
  • admin is the stack's admin account (LANGWATCH_ADMIN_EMAIL, from the overlay or .env). Any other login must be an email a seed created; haven db seed --json lists them. Seeded logins share one fixed local dev password defined in tools/thuishaven/domain/identity.go; never type it or paste it anywhere. Let haven browser login and --as use it.
  • The default file lives at <haven browser dir>/auth/<who>.json.

With browser lanes

You usually do not run haven browser login yourself: haven browser open ... --as admin signs the lane in and re-signs it if it lands on sign-in. Use haven browser login --as <who> --out <file> when a Playwright script outside haven needs a signed-in state, then load it with haven browser state-load <file> --lane <name>. See haven-browser.

Rules: a state file is a credential. Keep it under .claude/tmp/, never commit it, never paste it.

Version History

  • c0c14dc Current 2026-10-19 19:32

Same Skill Collection

.claude/skills/analyticssim/SKILL.md
.claude/skills/browser-pair/SKILL.md
.claude/skills/browser-test/SKILL.md
.claude/skills/chakra-ui-builder/SKILL.md
.claude/skills/chakra-ui-refactor/SKILL.md
.claude/skills/code-review/SKILL.md
.claude/skills/code-search/SKILL.md
.claude/skills/feature-map/SKILL.md
.claude/skills/githubsim/SKILL.md
.claude/skills/haven-db/SKILL.md
.claude/skills/haven-orb/SKILL.md
.claude/skills/haven-play/SKILL.md
.claude/skills/haven-seed/SKILL.md
.claude/skills/haven-setup/SKILL.md
.claude/skills/idpsim/SKILL.md
.claude/skills/lambdasim/SKILL.md
.claude/skills/langwatch-kanban/SKILL.md
.claude/skills/llmsim/SKILL.md
.claude/skills/mailsim/SKILL.md
.claude/skills/module/SKILL.md
.claude/skills/outboundsim/SKILL.md
.claude/skills/ownership/SKILL.md
.claude/skills/repo-tree/SKILL.md
.claude/skills/storagesim/SKILL.md
.claude/skills/voicesim/SKILL.md
plugins/langwatch/skills/langwatch/SKILL.md
services/langy-agent/skills/github/SKILL.md
skills/_compiled/native/agent-best-practices/SKILL.md
skills/_compiled/native/agent-performance/SKILL.md
skills/_compiled/native/automations/SKILL.md
skills/_compiled/native/code-changes/SKILL.md
skills/_compiled/native/context-sweet-spot/SKILL.md
skills/_compiled/native/daily-insights/SKILL.md
skills/_compiled/native/dashboard-widgets/SKILL.md
skills/_compiled/native/datasets/SKILL.md
skills/_compiled/native/debug-instrumentation/SKILL.md
skills/_compiled/native/debug-with-langwatch/SKILL.md
skills/_compiled/native/drive-the-ui/SKILL.md
skills/_compiled/native/eval-triage/SKILL.md
skills/_compiled/native/evaluate-multimodal/SKILL.md
skills/_compiled/native/evaluations/SKILL.md
skills/_compiled/native/experiments/SKILL.md
skills/_compiled/native/find-traces/SKILL.md
skills/_compiled/native/generate-rag-dataset/SKILL.md
skills/_compiled/native/github/SKILL.md
skills/_compiled/native/guided-onboarding/SKILL.md
skills/_compiled/native/level-up/SKILL.md
skills/_compiled/native/lwql-charts/SKILL.md
skills/_compiled/native/online-evaluations/SKILL.md

Metadata

Files
0
Version
c0c14dc
Hash
57ad391a
Indexed
2026-10-19 19:32

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-20 11:21
浙ICP备14020137号-1