screenpipe/screenpipe
YC (S26) | Open Computer History | Continuously record your company computer work, map your workflows, help you find work worth automating, and power your agents' context
risk
- capability exposure inferred + 35
- recent drift inferred + 20
- tool safety inferred + 12
- trust mitigators mixed − 8
inferred mixed
The A–E grade is our heuristic synthesis — a "review this" prompt, not a verdict. Each factor is tagged by what backs it: attested (a verifiable record), reported (a third party's claim), or inferred (our own heuristic, e.g. permissions). See methodology.
risk trajectory
- D · 64 → C · 59
- C · 56 → D · 64
- D · 64 → C · 56
- D · 68 → D · 64
- A · 0 → D · 68
capability exposure
vulnerabilities
No known CVEs for this server.
tool safety
- high dangerous code
committed secret: Slack token, Stripe live key, Slack app token, Anthropic key, OpenAI key · dynamic exec: new Function() · credential logged in 1 file(s)
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- medium dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
skills & danger signals
analyzed commit 88758df · analyzer v33 · 3h ago
skills & prompt files 37
- skill .claude/skills/develop-screenpipe-windows/SKILL.md
- skill .claude/skills/release/SKILL.md
- skill .claude/skills/screenpipe-api/SKILL.md
- skill .claude/skills/screenpipe-cli/SKILL.md
- skill .claude/skills/screenpipe-health/SKILL.md
- skill .claude/skills/screenpipe-logs/SKILL.md
- skill .claude/skills/screenpipe-tauri/SKILL.md
- agent-rules AGENTS.md
- agent-rules CLAUDE.md
- skill apps/screenpipe-app-tauri/src-tauri/src/workflows/skill.md
- skill crates/screenpipe-core/assets/skills/render-html-report/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-api/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-bug-report/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-chats/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-cli/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-commitment-review/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-customer-context/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-decision-history/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-durable-learning/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-focus-review/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-incident-timeline/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-interview-synthesis/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-meeting-follow-up/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-meeting-prep/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-process-guide/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-project-handoff/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-project-status/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-recall/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-research-synthesis/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-resume-work/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-shareable-recap/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-team/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-workflow-discovery/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-workflow-maintenance/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-worklog/SKILL.md
- skill crates/screenpipe-core/assets/skills/screenpipe-writing-context/SKILL.md
- skill packages/workflows-ui/skills/video-sop/SKILL.md
danger signals18
- dynamic code execution new Function() apps/screenpipe-app-tauri/lib/browser/__tests__/browser-scripts.test.ts :40
const fn = new Function(`return (async () => {\n${SNAPSHOT_SRC}\n})()`); - dynamic code execution new Function() apps/screenpipe-app-tauri/scripts/timeline-parity-export.ts :80
const api = new Function(`${js.replace(/export\s+/g, "")}\nreturn __timelineParityApi();`)() as { - suspicious endpoint us.i.posthog.com (telemetry) apps/screenpipe-app-tauri/app/providers.tsx :133
api_host: "https://us.i.posthog.com", - suspicious endpoint us.posthog.com (telemetry) apps/screenpipe-app-tauri/components/activity-ledger.test.tsx :682
app === "Telegram" ? "https://us.posthog.com/project/1" : null, - suspicious endpoint 8.8.8.8 apps/screenpipe-app-tauri/lib/http/__tests__/tauri-fetch.test.ts :334
"https://8.8.8.8", - suspicious endpoint 34.122.128.37 packages/ai-gateway/src/providers/index.ts :160
const vllmUrl = env.EVENT_CLASSIFIER_URL || 'http://34.122.128.37:8080/v1'; - suspicious endpoint o42.ingest.us.sentry.io (telemetry) packages/sdk/__test__/telemetry.test.mjs :76
assert.equal(parsed.storeUrl, "https://o42.ingest.us.sentry.io/api/9876/store/"); - suspicious endpoint us.i.posthog.com (telemetry) packages/sdk/session/telemetry-core.js :22
const POSTHOG_HOST = "https://us.i.posthog.com"; - over-broad OAuth scope https://mail.google.com/ apps/screenpipe-app-tauri/lib/chat/link-preview.test.ts :66
"https://mail.google.com/mail/u/0/#inbox/private-thread-id", - over-broad OAuth scope https://www.googleapis.com/auth/cloud-platform packages/ai-gateway/src/providers/vertex.ts :151
scope: 'https://www.googleapis.com/auth/cloud-platform', - committed secret Slack token crates/screenpipe-connect/src/oauth.rs :1659
xoxp-u…(15 chars, redacted) - committed secret Stripe live key crates/screenpipe-core/src/pii_removal.rs :711
sk_liv…(28 chars, redacted) - committed secret Slack app token crates/screenpipe-core/src/pii_removal.rs :983
xapp-1…(37 chars, redacted) - committed secret Anthropic key crates/screenpipe-core/src/pii_removal.rs :1038
sk-ant…(39 chars, redacted) - committed secret Slack token crates/screenpipe-core/src/pii_removal.rs :1100
xoxb-t…(26 chars, redacted) - committed secret OpenAI key crates/screenpipe-redact/src/pipeline.rs :1028
sk-pro…(28 chars, redacted) - committed secret OpenAI key crates/screenpipe-redact/tests/worker_integration.rs :601
sk-pro…(30 chars, redacted) - credential in logs credential in log apps/screenpipe-app-tauri/e2e/mock-updates/updater-harness.ts :103
console.info('[updater-local] signing:', PRIVATE_KEY);
other grade factors
- recent drift +20 capability drift →
embed badge
Heuristic, inferred signals — false positives (legitimately powerful tools, forks, language ports) are expected. Treat each as "review this", not a verdict. See the ecosystem-wide picture on the security hub, or the fleet security of screenpipe.