SKILLS & AGENTS/Skill 与 Agent·BROWSER
EpicenterHQ/epicenter
Open-source, local-first apps.
怎么装:Install: git clone https://github.com/EpicenterHQ/epicenter.git
02 / 现在的位置02 / Why now
首次发现FIRST SEEN
03 OCT 202603 OCT 2026
增长GROWTH
-0.0%-0.0%
4.8k → 4.8k stars · 2 个快照4.8k → 4.8k stars · 2 snapshots
状态STATUS
持续活跃Active
03 / 它能帮你做什么03 / What it helps you do
04 / 安装04 / Install
$ README 里给出的安装方式。The installation method given in the README.
$ README 里给出的安装方式。The installation method given in the README.
两种装法选一个即可 —— 上面那条给命令行用户,下面那条给写代码的用户。Pick one of the two — the first is for command-line users, the second for people writing code.
05 / 限制与风险05 / Limits and risk
风险不是警告,是可信度的一部分。以下结论只基于文档静态扫描,我们不会执行项目里的任何代码。Risk here is evidence, not an alarm. These findings come from static scanning of the docs; we never execute a project’s code.
限制LIMITS
需检查Needs review
静态扫描STATIC SCAN
01控制浏览器Controls a browser.agents/skills/diagnose/SKILL.md
4. **Headless browser script** (Playwright / Puppeteer) - drives the UI, asserts on DOM/console/network.
02读取 API KeyReads an API key.agents/skills/hono/SKILL.md
- On Cloudflare Workers, read bindings from `c.env` and request lifecycle APIs from `c.executionCtx`.
这里只做静态扫描:读 README、SKILL.md 和依赖清单,不执行代码。没有命中不代表安全。This is static scanning only: we read the README, SKILL.md and dependency list, and never execute code. No findings does not mean safe.
依赖:Dependencies:@epicenter/constants, tinyexec
{
"agents": [
{
"agent": "claude-code",
"evidence": "tree: .claude/"
},
{
"agent": "claude-ai",
"evidence": ".agents/skills/git/SKILL.md: …ed with [Claude Code](https://claude.ai/code)` - `Co-Authored-By: Cla…"
},
{
"agent": "opencode",
"evidence": ".agents/skills/git/SKILL.md: …NEVER include Claude Code or opencode watermarks or attribution - E…"
}
],
"apiKey": "t` | Self-host server (needs `INSTANCE_TOKEN`) | 8787 | `bun dev:whispering`, `bun",
"docker": null,
"taxonomy": {
"scores": {
"design": 3,
"ai-tools": 0,
"dev-tools": 0,
"indie-web": 0,
"skill-agent": 0,
"productivity": 0
},
"primary": "skill-agent",
"secondary": "browser"
},
"localRuntime": "sage: String }, #[error(\"GPU error: {message}\")] GpuError { mess",
"skillMdTotal": 66,
"skillMdErrors": [],
"treeTruncated": false,
"categoryScores": {
"data": 0,
"agent": 0,
"media": 0,
"design": 0,
"browser": 0,
"devtool": 0,
"security": 0,
"marketing": 0,
"productivity": 0
},
"classification": [
{
"signal": "60 SKILL.md with name + description",
"weight": 0.95
}
],
"scannedSources": [
"readme",
".agents/skills/abstraction/SKILL.md",
".agents/skills/adversarial-review/SKILL.md",
".agents/skills/agent-goal/SKILL.md",
".agents/skills/agent-instructions/SKILL.md",
".agents/skills/arktype/SKILL.md",
".agents/skills/asymmetric-wins/SKILL.md",
".agents/skills/auth/SKILL.md",
".agents/skills/autumn/SKILL.md",
".agents/skills/better-auth-best-practices/SKILL.md",
".agents/skills/better-auth-security-best-practices/SKILL.md",
".agents/skills/cloudflare-workers/SKILL.md",
".agents/skills/code-audit/SKILL.md",
".agents/skills/code-prose/SKILL.md",
".agents/skills/codex-task-backlog-hygiene/SKILL.md",
".agents/skills/cohesion-over-testability/SKILL.md",
".agents/skills/collapse-pass/SKILL.md",
".agents/skills/consult-claude/SKILL.md",
".agents/skills/control-flow/SKILL.md",
".agents/skills/define-errors/SKILL.md",
".agents/skills/diagnose/SKILL.md",
".agents/skills/dialectic/SKILL.md",
".agents/skills/documentation/SKILL.md",
".agents/skills/drizzle-orm/SKILL.md",
".agents/skills/english-120-writing/SKILL.md",
".agents/skills/error-handling/SKILL.md",
".agents/skills/factory-function-composition/SKILL.md",
".agents/skills/git/SKILL.md",
".agents/skills/github-issues/SKILL.md",
".agents/skills/google-devdocs-style/SKILL.md",
".agents/skills/handoff/SKILL.md",
".agents/skills/hono/SKILL.md",
".agents/skills/logging/SKILL.md",
".agents/skills/method-shorthand-jsdoc/SKILL.md",
".agents/skills/monorepo/SKILL.md",
".agents/skills/one-sentence-test/SKILL.md",
".agents/skills/platform-seams/SKILL.md",
".agents/skills/post-implementation-review/SKILL.md",
".agents/skills/prototype/SKILL.md",
".agents/skills/publication-pass/SKILL.md",
".agents/skills/pull-request/SKILL.md",
".agents/skills/query-layer/SKILL.md",
".agents/skills/refactoring/SKILL.md",
".agents/skills/rethink/SKILL.md",
".agents/skills/rust-errors/SKILL.md",
".agents/skills/services-layer/SKILL.md",
".agents/skills/social-media/SKILL.md",
".agents/skills/specification-writing/SKILL.md",
".agents/skills/standalone-commits/SKILL.md",
".agents/skills/styling/SKILL.md",
".agents/skills/svelte/SKILL.md",
".agents/skills/sveltekit/SKILL.md",
".agents/skills/svg-animations/SKILL.md",
".agents/skills/tanstack-table/SKILL.md",
".agents/skills/tauri/SKILL.md",
".agents/skills/teaching-page/SKILL.md",
".agents/skills/technical-articles/SKILL.md",
".agents/skills/testing/SKILL.md",
".agents/skills/tsconfig/SKILL.md",
".agents/skills/type-level-error-messages/SKILL.md",
".agents/skills/typebox/SKILL.md"
],
"skillMdFetched": 60
}