omarchy-plugin-check independent community review · not affiliated with omarchy
caution

LetsFG Flights

io.github.letsfg.flights · Productivity · bar widget · LetsFG/LetsFG · ↗ marketplace
caution combined · worst of core + verified (1 trusted, 2 counted)
opc opc: caution mkt marketplace: caution reviewed 26b1fa8 upstream 3a309f6
providertiersigverdict riskcounts ascriteria commit · treewhen
core sig caution 37 caution safe-to-run : not checked no-net : failed no-exec : failed no-persist : passed no-priv : passed no-obfusc : passed no-secrets : passed human : not checked 26b1fa8 f84060a 2026-10-02
unsigned ≤caution unsigned caution — ≤ caution — 26b1fa8 = 2026-08-27

verdict

opc · core
caution 37/100 risk

caution: score 37; 16 low; uses processExec, network, fileWrite, packageInstall, externalCode

reasons
score in the caution band · capabilities: processExec, network, fileWrite, packageInstall · relies on external code not in the reviewed commit, so safe-to-run is not checked: airportsdata (package, pypi), click (package, pypi), httpx (package, pypi), pydantic (package, pypi), requests (package, pypi), rich (package, pypi) +1 more
criteria
safe-to-run : not checked no-net : failed no-exec : failed no-persist : passed no-priv : passed no-obfusc : passed no-secrets : passed human : not checked
ai
no escalation
guard
canary control n/a tools schema

does

purpose
A bar widget with a flight-search panel that calls letsfg.co over XHR using the user's LetsFG token, with an anonymous install ID sent for analytics.
kinds
bar-widget
entry
barWidget → BarWidget.qml
manifest
valid
scope
repository root · marketplace-verified

caps

level · evidence
persist survives restart
priv sudo / pkexec / polkit
pkg installs packages package · openapi.yaml:32
bin ships binaries
clip reads/writes clipboard
screen captures screen
hypr controls the compositor
ext runs code it does not ship external-code · sdk/python/pyproject.toml

areas

1 of 10 touched
shell touched
hypr not touched
systemd not touched
pacman not touched
sudoers not touched
rc not touched
ssh not touched
browsers not touched
gpg not touched
dbus not touched

net

31 hosts
hostschemeevidence
basemaps.cartocdn.com https network · Model.js:1345
booking.flyscoot.com https network · sdk/python/google_checkout_live_sweep_results_v2.json:494
bookingportal.china-airlines.com https network · sdk/python/google_checkout_live_sweep_japan_longhaul.json:50
checknfly.co.uk https network · sdk/python/google_checkout_live_sweep_japan_longhaul.json:8
checkout.stripe.com https network · Model.js:504
checkout.stripe.com.evil.com https network · Model.js:403
context7.com https network · context7.json:2
github.com https network · .mcp.json:13network · mkdocs.yml:6network · sdk/js/package.json:44network · sdk/mcp/package.json:38network · sdk/mcp/src/index.ts:46network · sdk/python/pyproject.toml:55 +1
glama.ai https network · glama.json:2
i.travelapi.com https network · Model.js:1681
images.kiwi.com https network · Model.js:187
images.pexels.com https network · Model.js:1839
letsfg.co https network · .mcp.json:12network · Model.js:36network · Panel.qml:2643network · mkdocs.yml:2network · openapi.yaml:24network · sdk/js/package.json:46 +12
localhost http network · lighthouserc.js:6
lucide.dev https network · tools/build-icons.py:16
oversea.csair.com https network · sdk/python/google_checkout_live_sweep_japan_longhaul.json:134
pics.avs.io https network · Model.js:171
q-xx.bstatic.com https network · Model.js:1682
smithery.ai https network · smithery.yaml:5
static.modelcontextprotocol.io https network · server.json:2
tickets.vueling.com https network · sdk/python/google_checkout_live_sweep_results.json:8network · sdk/python/google_checkout_live_sweep_results_v2.json:8
upload.wikimedia.org https network · Model.js:1840
www.delta.com https network · sdk/python/google_checkout_live_sweep_results_v2.json:528
www.despegar.com.mx https network · sdk/python/google_checkout_live_sweep_results.json:239network · sdk/python/google_checkout_live_sweep_results_v2.json:239
www.flighthub.com https network · sdk/python/google_checkout_live_sweep_japan_longhaul.json:176
www.google.com https network · sdk/python/google_checkout_live_sweep_longhaul_london_us.json:8network · sdk/python/google_checkout_live_sweep_results.json:146network · sdk/python/google_checkout_live_sweep_results_v2.json:146
www.lastminute.com https network · sdk/python/google_checkout_live_sweep_japan_longhaul.json:100
www.lionair.co.id https network · sdk/python/google_checkout_live_sweep_results.json:205network · sdk/python/google_checkout_live_sweep_results_v2.json:205
www.martigo.pl https network · sdk/python/google_checkout_live_sweep_results.json:281network · sdk/python/google_checkout_live_sweep_results_v2.json:281
www.mea.com.lb https network · sdk/python/google_checkout_live_sweep_results_v2.json:323
www.vietjetair.com https network · sdk/python/google_checkout_live_sweep_results.json:112network · sdk/python/google_checkout_live_sweep_results_v2.json:112

deps

0 vulns · 8 pkgs · 7 external
packageversionecodirectpinnedmanifest
@types/node ^25.3.3 npm yes yes sdk/js/package.json
tsup ^8.0.0 npm yes yes sdk/js/package.json
tsx ^4.19.0 npm yes yes sdk/js/package.json
typescript ^5.3.0 npm yes yes sdk/js/package.json
@types/node ^25.5.0 npm yes yes sdk/mcp/package.json
tsup ^8.0.0 npm yes yes sdk/mcp/package.json
tsx ^4.19.0 npm yes yes sdk/mcp/package.json
typescript ^5.3.0 npm yes yes sdk/mcp/package.json
external airportsdataclickhttpxpydanticrequestsrichtyper

secrets

27

supply

scorecardn/aunavailable
pinnedyes
signed34%commits
bus factor1
age214drepo age
unpinned fetch0remote code

inject

hidden unicode28
prompt injection2
obfuscation0

quality

loc25,185
lint errors1shellcheck · eslint · qmllint · bandit
lint warnings4,930
tests28files
docsreadme
licenseMIT
Python 8,677 · 50 files QML 4,837 · 18 files TypeScript 4,740 · 10 files JavaScript 4,329 · 4 files CSS 1,282 · 2 files YAML 1,069 · 8 files Shell 95 · 1 files Dockerfile 80 · 2 files
hotspots
sdk/mcp/src/index.ts sdk/python/letsfg/local.py sdk/python/letsfg/client.py tools/split-comparison.py .mcp.json openapi.yaml sdk/python/letsfg/cli.py sdk/python/letsfg/connectors/auth.py

perf

spawns/min0estimated
timers5
keep loadedyesalways resident
large assets23943 KB 2481 KB
timerintervalrepeatspawns
Panel.qml:1099 0.26 s no —
Panel.qml:1106 runtime no —
Panel.qml:1118 runtime no —
Panel.qml:1139 runtime no —
Panel.qml:1342 1 s yes —

activity

github
commits 90d78
contributors12
open issues5
releasev2026.5.88
last commit2026-08-27
archivedn/a

diff

first review · nothing to diff

findings

17 above info · 509 info · 0 hard
low injection .mcp.json:11 ctxsentry · 95%
MCP 'letsfg.description' field carries hidden instructions / references to secrets — classic tool poisoning. [CG701/mcp-tool-poisoning]
Flight and hotel search & booking for AI agents. Server-side engine covers hundreds of airlines with per-flight reliability history, plus real bookable hotel ra…
ai: likely false positive
low package openapi.yaml:32 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
pip install letsfg
ai: likely false positive
low secret Panel.qml:1071 ai · 60%
Reads the CLI's token file ~/.letsfg/config.json and sends the bearer token to letsfg.co. This is the plugin's stated purpose, and the file is read-only to the plugin.
path: Quickshell.env("HOME") + "/.letsfg/config.json"
ai confirmed
low supply-chain sdk/mcp/src/index.ts:29 guarddog · 60%
guarddog threat-runtime-environment-read: Detects reading of environment variables (credential access, often contains secrets)
const BASE_URL = (process.env.LETSFG_BASE_URL || 'https://letsfg.co').replace(/\/$/, ''); const BEARER_TOKEN = process.env.LETSFG_BEARER_TOKEN || ''; const API_KEY = process.env.LETSFG_API_KEY || ''; const VERSION = '1.3.1';
ai confirmed
low supply-chain sdk/mcp/src/index.ts:30 guarddog · 60%
guarddog threat-runtime-environment-read: Detects reading of environment variables (credential access, often contains secrets)
const BEARER_TOKEN = process.env.LETSFG_BEARER_TOKEN || ''; const API_KEY = process.env.LETSFG_API_KEY || ''; const VERSION = '1.3.1';
ai confirmed
low injection sdk/mcp/src/index.ts:291 ctxsentry · 80%
Hidden-priority marker of the kind used in MCP tool-poisoning payloads. [CG105/instruction-override]
description: 'Complete workflow guide: authenticate -> search -> book, pricing, passenger rules, error handling, and search tips. Read this before using any tools.',
ai: likely false positive
low other sdk/python/letsfg/cli.py:852 bandit · 90%
blacklist: Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
851     try: 852         with urllib.request.urlopen(req, timeout=30) as resp: 853             result = json.loads(resp.read().decode())
ai: unsure
low other sdk/python/letsfg/client.py:1035 bandit · 90%
blacklist: Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1034         try: 1035             with urlopen(req, timeout=30) as resp: 1036                 return json.loads(resp.read().decode())
ai: unsure
low other sdk/python/letsfg/client.py:1075 bandit · 90%
blacklist: Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1074         try: 1075             with urlopen(req, timeout=timeout or self.timeout) as resp: 1076                 return json.loads(resp.read().decode())
ai: unsure
low other sdk/python/letsfg/connectors/auth.py:128 bandit · 90%
blacklist: Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
127     try: 128         with urlopen(req, timeout=timeout) as resp: 129             return resp.status, json.loads(resp.read())
ai: unsure
low other sdk/python/letsfg/local.py:129 bandit · 90%
blacklist: Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
128     try: 129         with urlopen(req, timeout=30) as resp: 130             result = json.loads(resp.read())
ai: unsure
low other sdk/python/letsfg/local.py:148 bandit · 90%
blacklist: Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
147         ) 148         with urlopen(poll_req, timeout=15) as resp: 149             return json.loads(resp.read())
ai: unsure
low other sdk/python/letsfg/local.py:227 bandit · 90%
blacklist: Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
226     try: 227         with urlopen(req, timeout=60) as resp: 228             return json.loads(resp.read())
ai: unsure
low external-code sdk/python/pyproject.toml extcode · 90%
Declares 7 runtime dependencies fetched from a package registry at install/build time (not reviewed): pydantic, httpx, airportsdata, requests, typer, rich, click
low exec tools/build-ranking.py:101 bandit · 90%
subprocess_popen_with_shell_equals_true: subprocess call with shell=True identified, security issue.
100            "--outDir", tmp_dir] 101     proc = subprocess.run(cmd, capture_output=True, text=True, shell=(os.name == "nt")) 102     tmp_js = os.path.join(tmp_dir, "bundle.js")
ai confirmed
low other tools/split-comparison.py:71 bandit · 90%
blacklist: Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
70         headers=headers(json_body=True), method="POST") 71     with urllib.request.urlopen(req, timeout=60) as r: 72         return json.loads(r.read())
ai: likely false positive
low other tools/split-comparison.py:77 bandit · 90%
blacklist: Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
76     req = urllib.request.Request(f"{BASE}{path}", headers=headers(), method="GET") 77     with urllib.request.urlopen(req, timeout=30) as r: 78         return json.loads(r.read())
ai: likely false positive
509 info findings
info supply-chain .github/dependabot.yml:8 zizmor · 90%
insufficient cooldown in Dependabot updates (https://docs.zizmor.sh/audits/#dependabot-cooldown)
info supply-chain .github/workflows/docs.yml:18 zizmor · 50%
credential persistence through GitHub Actions artifacts (https://docs.zizmor.sh/audits/#artipacked)
info package .github/workflows/docs.yml:25 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info supply-chain .github/workflows/sdk-tests.yml:16 zizmor · 70%
overly broad permissions (https://docs.zizmor.sh/audits/#excessive-permissions)
info supply-chain .github/workflows/sdk-tests.yml:19 zizmor · 50%
credential persistence through GitHub Actions artifacts (https://docs.zizmor.sh/audits/#artipacked)
info package .github/workflows/sdk-tests.yml:26 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info supply-chain .github/workflows/test.yml:32 zizmor · 50%
credential persistence through GitHub Actions artifacts (https://docs.zizmor.sh/audits/#artipacked)
info supply-chain .github/workflows/test.yml:54 zizmor · 50%
credential persistence through GitHub Actions artifacts (https://docs.zizmor.sh/audits/#artipacked)
info supply-chain .github/workflows/test.yml:122 zizmor · 50%
credential persistence through GitHub Actions artifacts (https://docs.zizmor.sh/audits/#artipacked)
info package .github/workflows/test.yml:128 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package .github/workflows/test.yml:129 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info network .mcp.json:12 textscan · 100%
URL literal: https://letsfg.co
info network .mcp.json:13 textscan · 100%
URL literal: https://github.com
info package agent-skills-contribution/packages/skills-catalog/skills/(tooling)/letsfg/references/mcp-setup.md:8 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info network agent-skills-contribution/packages/skills-catalog/skills/(tooling)/letsfg/references/mcp-setup.md:19 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info package agent-skills-contribution/packages/skills-catalog/skills/(tooling)/letsfg/SKILL.md:68 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info obfuscation AGENTS.md:5 heckler · 100%
Variation Selector 16 (U+FE0F)
info network AGENTS.md:120 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network AGENTS.md:126 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info package AGENTS.md:196 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package AGENTS.md:260 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info network AGENTS.md:347 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network AGENTS.md:360 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret AGENTS.md:360 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network AGENTS.md:966 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network AGENTS.md:973 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network AGENTS.md:979 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network AGENTS.md:990 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network AGENTS.md:997 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network AGENTS.md:1000 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info other assets/demo.gif malcontent · 60%
copy files using cp [MEDIUM]
info other assets/demo.gif malcontent · 60%
Supports SSH (secure shell) [MEDIUM]
info other assets/ranking.js malcontent · 60%
complex math with parseInt or fromCharCode conversions [MEDIUM]
info other assets/ranking.js malcontent · 60%
performs math directly against parsed integers [MEDIUM]
info exec assets/ranking.js:13 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:15 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:22 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:52 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:144 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:149 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:276 eslint · 60%
Unsafe Regular Expression
info exec assets/ranking.js:811 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:814 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:1000 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:1145 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:1162 eslint · 60%
Variable Assigned to Object Injection Sink
info exec assets/ranking.js:1164 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:1347 eslint · 60%
Variable Assigned to Object Injection Sink
info exec assets/ranking.js:1874 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:2042 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:2045 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:2046 eslint · 60%
Generic Object Injection Sink
info exec assets/ranking.js:2047 eslint · 60%
Generic Object Injection Sink
info package CLAUDE.md:55 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package CLAUDE.md:152 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package CLAUDE.md:159 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package CLAUDE.md:167 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info network context7.json:2 textscan · 100%
URL literal: https://context7.com
info package CONTRIBUTING.md:52 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package CONTRIBUTING.md:60 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package CONTRIBUTING.md:69 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package Dockerfile:31 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package Dockerfile.python:26 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package Dockerfile.python:38 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info obfuscation docs/agent-guide.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network docs/agent-guide.md:152 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/agent-guide.md:157 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/agent-guide.md:163 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/agent-guide.md:169 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/agent-guide.md:176 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/agent-guide.md:188 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info obfuscation docs/api-errors.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network docs/api-errors.md:46 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-errors.md:46 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info obfuscation docs/api-guide.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network docs/api-guide.md:122 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-guide.md:122 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-guide.md:126 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info obfuscation docs/api-onboarding.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network docs/api-onboarding.md:23 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-onboarding.md:33 gitleaks · 70%
Possible hard-coded secret (Detected a Generic API Key, potentially exposing access to various services and sensitive operations.); value redacted, liveness not verified.
info network docs/api-onboarding.md:45 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-onboarding.md:45 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-onboarding.md:54 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-onboarding.md:54 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-onboarding.md:65 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-onboarding.md:65 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-onboarding.md:74 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-onboarding.md:74 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-onboarding.md:92 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/api-onboarding.md:100 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/api-onboarding.md:112 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-onboarding.md:112 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-onboarding.md:121 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-onboarding.md:121 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-onboarding.md:130 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-onboarding.md:130 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info obfuscation docs/api-polling.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network docs/api-polling.md:31 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-polling.md:31 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-polling.md:61 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-polling.md:61 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info obfuscation docs/api-sandbox.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network docs/api-sandbox.md:53 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-sandbox.md:53 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-sandbox.md:104 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-sandbox.md:104 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-sandbox.md:132 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-sandbox.md:132 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info obfuscation docs/api-search.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network docs/api-search.md:42 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-search.md:42 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-search.md:74 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-search.md:74 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-search.md:231 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-search.md:231 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-search.md:273 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-search.md:273 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/api-search.md:293 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/api-search.md:293 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info obfuscation docs/architecture-guide.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info obfuscation docs/cli-reference.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info package docs/cli-reference.md:21 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package docs/cli-reference.md:27 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info obfuscation docs/getting-started.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info package docs/getting-started.md:22 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package docs/getting-started.md:37 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info network docs/getting-started.md:75 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/getting-started.md:89 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/getting-started.md:104 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/getting-started.md:116 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/getting-started.md:116 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/getting-started.md:127 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/getting-started.md:127 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/getting-started.md:138 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/getting-started.md:138 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/getting-started.md:147 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret docs/getting-started.md:147 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network docs/hotels.md:56 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/hotels.md:59 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info obfuscation docs/index.md:6 heckler · 100%
Variation Selector 16 (U+FE0F)
info package docs/index.md:22 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info obfuscation docs/openapi.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network docs/openapi.md:53 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network docs/openapi.md:59 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info obfuscation docs/packages.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info package docs/packages.md:22 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package docs/packages.md:23 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package docs/packages.md:33 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package docs/packages.md:58 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info obfuscation docs/quickstart-claude.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network docs/quickstart-claude.md:31 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info package docs/quickstart-claude.md:86 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package docs/quickstart-claude.md:138 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info obfuscation docs/quickstart-cursor.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network docs/quickstart-cursor.md:29 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info package docs/quickstart-cursor.md:77 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package docs/quickstart-cursor.md:136 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info obfuscation docs/quickstart-windsurf.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network docs/quickstart-windsurf.md:29 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info package docs/quickstart-windsurf.md:77 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package docs/quickstart-windsurf.md:131 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package docs/self-hosting.md:15 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info network docs/self-hosting.md:68 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info obfuscation docs/tutorials.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info network glama.json:2 textscan · 100%
URL literal: https://glama.ai
info other lighthouserc.js malcontent · 60%
executes a command [MEDIUM]
info network lighthouserc.js:6 textscan · 100%
URL literal: http://localhost
info network mkdocs.yml:2 textscan · 100%
URL literal: https://letsfg.co
info network mkdocs.yml:6 textscan · 100%
URL literal: https://github.com
info other Model.js malcontent · 60%
charAt/substr operations with long strings [MEDIUM]
info other Model.js malcontent · 60%
complex math with parseInt or fromCharCode conversions [MEDIUM]
info other Model.js malcontent · 60%
references an 'agent' [MEDIUM]
info other Model.js malcontent · 60%
Invokes curl [MEDIUM]
info other Model.js malcontent · 60%
submits content to websites [MEDIUM]
info other Model.js malcontent · 60%
connects to an arbitrary hostname:port [MEDIUM]
info other Model.js malcontent · 60%
references spoofing [MEDIUM]
info other Model.js malcontent · 60%
References 'malicious' [MEDIUM]
info network Model.js:36 textscan · 100%
URL literal: https://letsfg.co
info network Model.js:171 textscan · 100%
URL literal: https://pics.avs.io
info network Model.js:187 textscan · 100%
URL literal: https://images.kiwi.com
info exec Model.js:199 eslint · 60%
Generic Object Injection Sink
info exec Model.js:234 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:241 eslint · 60%
Generic Object Injection Sink
info exec Model.js:362 eslint · 60%
Unsafe Regular Expression
info network Model.js:403 textscan · 100%
URL literal: https://checkout.stripe.com.evil.com
info network Model.js:504 textscan · 100%
URL literal: https://checkout.stripe.com
info exec Model.js:670 eslint · 60%
Generic Object Injection Sink
info exec Model.js:849 eslint · 60%
Generic Object Injection Sink
info exec Model.js:854 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1008 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1015 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1021 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1022 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1024 eslint · 60%
Function Call Object Injection Sink
info exec Model.js:1025 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1101 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1102 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1104 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1113 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1142 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1198 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1199 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1206 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1207 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1240 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1272 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1277 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1287 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1288 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1292 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1293 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1303 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1314 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1320 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1328 eslint · 60%
Variable Assigned to Object Injection Sink
info network Model.js:1345 textscan · 100%
URL literal: https://basemaps.cartocdn.com
info exec Model.js:1430 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1458 eslint · 60%
Variable Assigned to Object Injection Sink
info network Model.js:1502 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info exec Model.js:1560 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1563 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1653 eslint · 60%
Generic Object Injection Sink
info network Model.js:1681 textscan · 100%
URL literal: https://i.travelapi.com
info network Model.js:1682 textscan · 100%
URL literal: https://q-xx.bstatic.com
info exec Model.js:1690 eslint · 60%
Function Call Object Injection Sink
info exec Model.js:1706 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1763 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1769 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1779 eslint · 60%
Function Call Object Injection Sink
info network Model.js:1839 textscan · 100%
URL literal: https://images.pexels.com
info network Model.js:1840 textscan · 100%
URL literal: https://upload.wikimedia.org
info exec Model.js:1857 eslint · 60%
Function Call Object Injection Sink
info exec Model.js:1876 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1877 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1937 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:1975 eslint · 60%
Unsafe Regular Expression
info exec Model.js:1987 eslint · 60%
Generic Object Injection Sink
info exec Model.js:1988 eslint · 60%
Generic Object Injection Sink
info exec Model.js:2105 eslint · 60%
Generic Object Injection Sink
info exec Model.js:2118 eslint · 60%
Generic Object Injection Sink
info exec Model.js:2121 eslint · 60%
Generic Object Injection Sink
info exec Model.js:2123 eslint · 60%
Function Call Object Injection Sink
info exec Model.js:2144 eslint · 60%
Function Call Object Injection Sink
info exec Model.js:2149 eslint · 60%
Function Call Object Injection Sink
info exec Model.js:2174 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:2206 eslint · 60%
Variable Assigned to Object Injection Sink
info exec Model.js:2212 eslint · 60%
Generic Object Injection Sink
info exec Model.js:2214 eslint · 60%
Generic Object Injection Sink
info exec Model.js:2223 eslint · 60%
Generic Object Injection Sink
info other models/flights.py malcontent · 60%
references an 'agent' [MEDIUM]
info other OMARCHY-PLUGIN.md:37 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info package OMARCHY-PLUGIN.md:56 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info other OMARCHY-PLUGIN.md:69 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info other OMARCHY-PLUGIN.md:132 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info other OMARCHY-PLUGIN.md:133 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info other OMARCHY-PLUGIN.md:275 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info other OMARCHY-PLUGIN.md:397 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info package OMARCHY-PLUGIN.md:413 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info other OMARCHY-PLUGIN.md:431 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info network openapi.yaml:24 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network openapi.yaml:24 textscan · 100%
URL literal: https://letsfg.co
info network openapi.yaml:26 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info other Panel.qml malcontent · 60%
references an 'agent' [MEDIUM]
info other Panel.qml malcontent · 60%
upload content via HTTP form [MEDIUM]
info other Panel.qml malcontent · 60%
submits content to websites [MEDIUM]
info other Panel.qml malcontent · 60%
requests resources via URL [MEDIUM]
info other Panel.qml malcontent · 60%
References 'malicious' [MEDIUM]
info other Panel.qml:96 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info other Panel.qml:130 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info filesystem Panel.qml:152 opengrep · 90%
Writes files from QML (FileView.setText / JsonAdapter writeAdapter).
info other Panel.qml:276 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info other Panel.qml:345 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info other Panel.qml:736 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info other Panel.qml:873 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info network Panel.qml:1025 ai · 60%
Generates a random anonymous install ID and sends it to the server as an analytics header (X-LetsFG-Install). It is disclosed in the code comments.
info filesystem Panel.qml:1046 opengrep · 90%
Writes files from QML (FileView.setText / JsonAdapter writeAdapter).
info filesystem Panel.qml:1053 opengrep · 90%
Writes files from QML (FileView.setText / JsonAdapter writeAdapter).
info network Panel.qml:1277 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info network Panel.qml:1284 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info network Panel.qml:2643 textscan · 100%
URL literal: https://letsfg.co
info other preview/run.py malcontent · 60%
Detects writing executable files or changing file permissions to executable [MEDIUM]
info other preview/run.py malcontent · 60%
possible hidden file path [MEDIUM]
info other preview/run.py malcontent · 60%
references path within /Users [MEDIUM]
info other preview/run.py malcontent · 60%
modifies file permissions [MEDIUM]
info obfuscation README.md:11 heckler · 100%
Variation Selector 16 (U+FE0F)
info package README.md:43 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info obfuscation README.md:55 heckler · 100%
Variation Selector 16 (U+FE0F)
info package README.md:289 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package README.md:292 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info obfuscation README.md:403 heckler · 100%
Variation Selector 16 (U+FE0F)
info package README.md:406 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info network README.md:426 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network README.md:432 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network README.md:437 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info network README.md:451 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info secret README.md:451 gitleaks · 85%
Possible hard-coded secret (Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.); value redacted, liveness not verified.
info network README.md:455 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info obfuscation README.md:560 heckler · 100%
Variation Selector 16 (U+FE0F)
info other README.md:573 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info other README.md:584 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info package README.md:606 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package README.md:608 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info other README.md:612 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info obfuscation README.md:781 heckler · 100%
Variation Selector 16 (U+FE0F)
info other sdk/js/package-lock.json malcontent · 60%
references multiple operating systems [MEDIUM]
info other sdk/js/package.json malcontent · 60%
references an 'agent' [MEDIUM]
info network sdk/js/package.json:44 textscan · 100%
URL literal: https://github.com
info network sdk/js/package.json:46 textscan · 100%
URL literal: https://letsfg.co
info package sdk/js/README.md:15 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package sdk/js/README.md:22 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package sdk/js/README.md:109 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info other sdk/js/src/auth.test.ts malcontent · 60%
references and possibly executes relative path [MEDIUM]
info supply-chain sdk/js/src/auth.test.ts:18 guarddog · 60%
guarddog threat-runtime-environment-read: Detects reading of environment variables (credential access, often contains secrets)
info supply-chain sdk/js/src/auth.test.ts:22 guarddog · 60%
guarddog threat-runtime-environment-read: Detects reading of environment variables (credential access, often contains secrets)
info supply-chain sdk/js/src/auth.test.ts:40 guarddog · 60%
guarddog threat-runtime-environment-read: Detects reading of environment variables (credential access, often contains secrets)
info other sdk/js/src/auth.ts malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/js/src/auth.ts malcontent · 60%
upload content via HTTP form [MEDIUM]
info other sdk/js/src/auth.ts malcontent · 60%
submits content to websites [MEDIUM]
info network sdk/js/src/auth.ts:21 textscan · 100%
URL literal: https://letsfg.co
info supply-chain sdk/js/src/auth.ts:82 guarddog · 60%
guarddog capability-network-download: Detects downloading files from network
info supply-chain sdk/js/src/auth.ts:82 guarddog · 60%
guarddog capability-network-outbound: Detects network request capabilities (HTTP, sockets, etc.)
info network sdk/js/src/auth.ts:82 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info supply-chain sdk/js/src/auth.ts:136 guarddog · 60%
guarddog capability-process-spawn: Detects process execution and spawning
info other sdk/js/src/cli.ts malcontent · 60%
complex math with parseInt or fromCharCode conversions [MEDIUM]
info other sdk/js/src/cli.ts malcontent · 60%
references and possibly executes relative path [MEDIUM]
info other sdk/js/src/cli.ts malcontent · 60%
references an 'agent' [MEDIUM]
info network sdk/js/src/cli.ts:407 textscan · 100%
URL literal: https://letsfg.co
info other sdk/js/src/index.test.ts malcontent · 60%
references and possibly executes relative path [MEDIUM]
info other sdk/js/src/index.test.ts malcontent · 60%
references an 'agent' [MEDIUM]
info network sdk/js/src/index.test.ts:49 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info other sdk/js/src/index.ts malcontent · 60%
references and possibly executes relative path [MEDIUM]
info other sdk/js/src/index.ts malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/js/src/index.ts malcontent · 60%
upload content via HTTP form [MEDIUM]
info other sdk/js/src/index.ts malcontent · 60%
submits content to websites [MEDIUM]
info other sdk/js/src/index.ts malcontent · 60%
gets very excited [MEDIUM]
info network sdk/js/src/index.ts:5 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info network sdk/js/src/index.ts:313 textscan · 100%
URL literal: https://letsfg.co
info network sdk/js/src/index.ts:760 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info network sdk/js/src/index.ts:823 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info other sdk/js/src/ranking.ts malcontent · 60%
complex math with parseInt or fromCharCode conversions [MEDIUM]
info other sdk/js/src/ranking.ts malcontent · 60%
performs math directly against parsed integers [MEDIUM]
info other sdk/js/src/ranking.ts malcontent · 60%
references and possibly executes relative path [MEDIUM]
info other sdk/mcp/package-lock.json malcontent · 60%
references multiple operating systems [MEDIUM]
info other sdk/mcp/package.json malcontent · 60%
references an 'agent' [MEDIUM]
info network sdk/mcp/package.json:38 textscan · 100%
URL literal: https://github.com
info package sdk/mcp/README.md:41 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package sdk/mcp/README.md:257 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info network sdk/mcp/README.md:264 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info package sdk/mcp/README.md:393 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package sdk/mcp/README.md:394 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info other sdk/mcp/src/index.test.ts malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/mcp/src/index.test.ts malcontent · 60%
submits content to websites [MEDIUM]
info exec sdk/mcp/src/index.test.ts:7 opengrep · 90%
JavaScript spawns processes (child_process).
info supply-chain sdk/mcp/src/index.test.ts:85 guarddog · 60%
guarddog capability-network-download: Detects downloading files from network
info supply-chain sdk/mcp/src/index.test.ts:85 guarddog · 60%
guarddog capability-network-outbound: Detects network request capabilities (HTTP, sockets, etc.)
info network sdk/mcp/src/index.test.ts:85 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info network sdk/mcp/src/index.test.ts:90 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info supply-chain sdk/mcp/src/index.test.ts:108 guarddog · 60%
guarddog capability-process-spawn: Detects process execution and spawning
info other sdk/mcp/src/index.ts malcontent · 60%
Contains HTML content [MEDIUM]
info other sdk/mcp/src/index.ts malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/mcp/src/index.ts malcontent · 60%
upload content via HTTP form [MEDIUM]
info other sdk/mcp/src/index.ts malcontent · 60%
submits content to websites [MEDIUM]
info network sdk/mcp/src/index.ts:28 textscan · 100%
URL literal: https://letsfg.co
info network sdk/mcp/src/index.ts:46 textscan · 100%
URL literal: https://github.com
info network sdk/mcp/src/index.ts:151 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info network sdk/mcp/src/index.ts:170 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info network sdk/mcp/src/index.ts:215 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info network sdk/mcp/src/index.ts:825 opengrep · 90%
HTTP request from QML/JS (XMLHttpRequest / fetch).
info other sdk/python/examples/quickstart.py malcontent · 60%
Installs software using pip from python [MEDIUM]
info package sdk/python/examples/quickstart.py:8 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info network sdk/python/google_checkout_live_sweep_japan_longhaul.json:8 textscan · 100%
URL literal: https://checknfly.co.uk
info network sdk/python/google_checkout_live_sweep_japan_longhaul.json:50 textscan · 100%
URL literal: https://bookingportal.china-airlines.com
info network sdk/python/google_checkout_live_sweep_japan_longhaul.json:100 textscan · 100%
URL literal: https://www.lastminute.com
info network sdk/python/google_checkout_live_sweep_japan_longhaul.json:134 textscan · 100%
URL literal: https://oversea.csair.com
info network sdk/python/google_checkout_live_sweep_japan_longhaul.json:176 textscan · 100%
URL literal: https://www.flighthub.com
info network sdk/python/google_checkout_live_sweep_longhaul_london_us.json:8 textscan · 100%
URL literal: https://www.google.com
info network sdk/python/google_checkout_live_sweep_results_v2.json:8 textscan · 100%
URL literal: https://tickets.vueling.com
info network sdk/python/google_checkout_live_sweep_results_v2.json:112 textscan · 100%
URL literal: https://www.vietjetair.com
info network sdk/python/google_checkout_live_sweep_results_v2.json:146 textscan · 100%
URL literal: https://www.google.com
info network sdk/python/google_checkout_live_sweep_results_v2.json:205 textscan · 100%
URL literal: https://www.lionair.co.id
info network sdk/python/google_checkout_live_sweep_results_v2.json:239 textscan · 100%
URL literal: https://www.despegar.com.mx
info network sdk/python/google_checkout_live_sweep_results_v2.json:281 textscan · 100%
URL literal: https://www.martigo.pl
info network sdk/python/google_checkout_live_sweep_results_v2.json:323 textscan · 100%
URL literal: https://www.mea.com.lb
info network sdk/python/google_checkout_live_sweep_results_v2.json:494 textscan · 100%
URL literal: https://booking.flyscoot.com
info network sdk/python/google_checkout_live_sweep_results_v2.json:528 textscan · 100%
URL literal: https://www.delta.com
info network sdk/python/google_checkout_live_sweep_results.json:8 textscan · 100%
URL literal: https://tickets.vueling.com
info network sdk/python/google_checkout_live_sweep_results.json:112 textscan · 100%
URL literal: https://www.vietjetair.com
info network sdk/python/google_checkout_live_sweep_results.json:146 textscan · 100%
URL literal: https://www.google.com
info network sdk/python/google_checkout_live_sweep_results.json:205 textscan · 100%
URL literal: https://www.lionair.co.id
info network sdk/python/google_checkout_live_sweep_results.json:239 textscan · 100%
URL literal: https://www.despegar.com.mx
info network sdk/python/google_checkout_live_sweep_results.json:281 textscan · 100%
URL literal: https://www.martigo.pl
info other sdk/python/google_checkout_live_sweep.py malcontent · 60%
may access cookies [MEDIUM]
info other sdk/python/letsfg/cli.py malcontent · 60%
aliases core python library to an alternate name [MEDIUM]
info other sdk/python/letsfg/cli.py malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/python/letsfg/cli.py malcontent · 60%
upload content via HTTP form [MEDIUM]
info other sdk/python/letsfg/cli.py malcontent · 60%
submits content to websites [MEDIUM]
info other sdk/python/letsfg/cli.py malcontent · 60%
requests resources via URL [MEDIUM]
info other sdk/python/letsfg/cli.py:137 bandit · 90%
try_except_pass: Try, Except, Pass detected.
info network sdk/python/letsfg/cli.py:498 textscan · 100%
URL literal: https://letsfg.co
info obfuscation sdk/python/letsfg/cli.py:799 heckler · 100%
Variation Selector 16 (U+FE0F)
info supply-chain sdk/python/letsfg/cli.py:841 guarddog · 60%
guarddog capability-network-outbound: Detects network request capabilities (HTTP, sockets, etc.)
info network sdk/python/letsfg/cli.py:841 opengrep · 90%
HTTP client in Python.
info supply-chain sdk/python/letsfg/cli.py:852 guarddog · 60%
guarddog capability-network-download: Detects downloading files from network
info network sdk/python/letsfg/cli.py:852 opengrep · 90%
HTTP client in Python.
info supply-chain sdk/python/letsfg/cli.py:853 guarddog · 60%
guarddog capability-filesystem-read: Detects filesystem read capabilities
info other sdk/python/letsfg/client.py malcontent · 60%
modifies file permissions [MEDIUM]
info other sdk/python/letsfg/client.py malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/python/letsfg/client.py malcontent · 60%
upload content via HTTP form [MEDIUM]
info other sdk/python/letsfg/client.py malcontent · 60%
submits content to websites [MEDIUM]
info other sdk/python/letsfg/client.py malcontent · 60%
requests resources via URL [MEDIUM]
info network sdk/python/letsfg/client.py:56 textscan · 100%
URL literal: https://letsfg.co
info other sdk/python/letsfg/client.py:98 bandit · 90%
try_except_pass: Try, Except, Pass detected.
info other sdk/python/letsfg/client.py:920 bandit · 70%
hardcoded_password_default: Possible hardcoded password: 'tok_visa'
info other sdk/python/letsfg/connectors/auth.py malcontent · 60%
modifies file permissions [MEDIUM]
info other sdk/python/letsfg/connectors/auth.py malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/python/letsfg/connectors/auth.py malcontent · 60%
upload content via HTTP form [MEDIUM]
info other sdk/python/letsfg/connectors/auth.py malcontent · 60%
submits content to websites [MEDIUM]
info other sdk/python/letsfg/connectors/auth.py malcontent · 60%
requests resources via URL [MEDIUM]
info network sdk/python/letsfg/connectors/auth.py:10 textscan · 100%
URL literal: https://letsfg.co
info other sdk/python/letsfg/connectors/auth.py:80 bandit · 90%
try_except_pass: Try, Except, Pass detected.
info other sdk/python/letsfg/connectors/auth.py:220 bandit · 90%
try_except_pass: Try, Except, Pass detected.
info other sdk/python/letsfg/local.py malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/python/letsfg/local.py malcontent · 60%
upload content via HTTP form [MEDIUM]
info other sdk/python/letsfg/local.py malcontent · 60%
submits content to websites [MEDIUM]
info other sdk/python/letsfg/local.py malcontent · 60%
requests resources via URL [MEDIUM]
info network sdk/python/letsfg/local.py:25 textscan · 100%
URL literal: https://letsfg.co
info other sdk/python/letsfg/models.py malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/python/letsfg/models/__init__.py malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/python/letsfg/models/flights.py malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/python/letsfg/models/flights.py malcontent · 60%
submits content to websites [MEDIUM]
info network sdk/python/letsfg/models/flights.py:415 textscan · 100%
URL literal: https://letsfg.co
info network sdk/python/pyproject.toml:53 textscan · 100%
URL literal: https://letsfg.co
info network sdk/python/pyproject.toml:55 textscan · 100%
URL literal: https://github.com
info package sdk/python/README.md:15 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package sdk/python/README.md:22 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package sdk/python/README.md:398 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info other sdk/python/tests/test_booking_holdings_booking_urls.py malcontent · 60%
contains hardcoded endpoint with a question mark [MEDIUM]
info other sdk/python/tests/test_checkout_engine_configs.py malcontent · 60%
contains hardcoded endpoint with a question mark [MEDIUM]
info other sdk/python/tests/test_checkout_engine_configs.py malcontent · 60%
Contains HTML content [MEDIUM]
info network sdk/python/tests/test_currency_rates.py:56 opengrep · 90%
HTTP client in Python.
info other sdk/python/tests/test_public_offer_masking.py malcontent · 60%
contains hardcoded endpoint with a question mark [MEDIUM]
info other sdk/python/tests/test_skyscanner_connector.py malcontent · 60%
references an 'agent' [MEDIUM]
info other sdk/python/tests/test_starlink_flights.py malcontent · 60%
contains hardcoded endpoint with a question mark [MEDIUM]
info other sdk/python/tests/test_starlink_flights.py malcontent · 60%
Contains HTML content [MEDIUM]
info other sdk/python/tests/test_starlink_flights.py:71 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:82 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:83 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:84 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:85 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:88 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:89 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:90 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:91 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:92 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:93 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:94 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:102 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:103 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:104 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:105 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:112 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:116 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:117 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:118 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:119 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:120 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:121 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:122 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info other sdk/python/tests/test_starlink_flights.py:123 bandit · 90%
assert_used: Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
info network sdk/python/tests/test_wizzair_connector.py:42 opengrep · 90%
HTTP client in Python.
info network server.json:2 textscan · 100%
URL literal: https://static.modelcontextprotocol.io
info network server.json:6 textscan · 100%
URL literal: https://letsfg.co
info network server.json:8 textscan · 100%
URL literal: https://github.com
info obfuscation SKILL.md:15 heckler · 100%
Variation Selector 16 (U+FE0F)
info package SKILL.md:244 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info package SKILL.md:323 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info obfuscation skills/flight-search/references/api-reference.md:10 heckler · 100%
Variation Selector 16 (U+FE0F)
info obfuscation skills/flight-search/references/mcp-setup.md:3 heckler · 100%
Variation Selector 16 (U+FE0F)
info package skills/flight-search/references/mcp-setup.md:19 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info network skills/flight-search/references/mcp-setup.md:30 opengrep · 90%
Network client invoked from a script or Process command (curl/wget/nc/...).
info obfuscation skills/flight-search/SKILL.md:25 heckler · 100%
Variation Selector 16 (U+FE0F)
info package skills/flight-search/SKILL.md:87 opengrep · 90%
Installs language packages at runtime (pip/npm/cargo/go/gem/bun).
info network smithery.yaml:5 textscan · 100%
URL literal: https://smithery.ai
info other test/model-test.js malcontent · 60%
Detects access to sensitive files (credentials, configs, keys) [MEDIUM]
info other test/model-test.js malcontent · 60%
Detects unicode homoglyphs and uncommon characters used for obfuscation [MEDIUM]
info other test/model-test.js malcontent · 60%
complex math with parseInt or fromCharCode conversions [MEDIUM]
info other test/model-test.js malcontent · 60%
contains hardcoded endpoint with a question mark [MEDIUM]
info other test/model-test.js malcontent · 60%
Contains HTML content [MEDIUM]
info other test/model-test.js malcontent · 60%
assembles strings from UTF-16 code units [MEDIUM]
info other test/model-test.js malcontent · 60%
path reference within /root [MEDIUM]
info other test/model-test.js malcontent · 60%
references an 'agent' [MEDIUM]
info other test/model-test.js malcontent · 60%
submits content to websites [MEDIUM]
info secret test/model-test.js:79 gitleaks · 70%
Possible hard-coded secret (Detected a Generic API Key, potentially exposing access to various services and sensitive operations.); value redacted, liveness not verified.
info network tools/build-icons.py:16 textscan · 100%
URL literal: https://lucide.dev
info other tools/build-ranking.py malcontent · 60%
execute external program [MEDIUM]
info exec tools/build-ranking.py:23 bandit · 90%
blacklist: Consider possible security implications associated with the subprocess module.
info exec tools/build-ranking.py:101 opengrep · 90%
Python spawns processes.
info other tools/check-search-invariant.py malcontent · 60%
References 'malicious' [MEDIUM]
info other tools/split-comparison.py malcontent · 60%
upload content via HTTP form [MEDIUM]
info other tools/split-comparison.py malcontent · 60%
submits content to websites [MEDIUM]
info other tools/split-comparison.py malcontent · 60%
requests resources via URL [MEDIUM]
info network tools/split-comparison.py:32 textscan · 100%
URL literal: https://letsfg.co
info network tools/split-comparison.py:68 opengrep · 90%
HTTP client in Python.
info network tools/split-comparison.py:71 opengrep · 90%
HTTP client in Python.
info network tools/split-comparison.py:76 opengrep · 90%
HTTP client in Python.
info network tools/split-comparison.py:77 opengrep · 90%
HTTP client in Python.
info other tools/validate.sh:3 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.
info other tools/validate.sh:6 opengrep · 90%
Calls Omarchy commands or touches Omarchy shell state.

ai

escalate-only
pass 1okcontext pack, read-only
turns6
cost$0.14
pass 216findings re-checked
modelsonnet+fable
escalateno

Bar widget and panel only. Panel.qml uses XHR to letsfg.co and spawns no processes. It reads ~/.letsfg/config.json for the token and writes its own state files. Scanner hits are in SDK/tools files the shell doesn't load. Panel.qml and Model.js were only grepped.

escalate-only: the ai may add findings and raise one level; it never lowers a verdict and never clears a hard fail.