Local colleague for Claude Code: Chrome side panel now, autonomous assistant and developer on your machine. Loopback only — no cloud.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 62 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
browser_assert_text
-
browser_click
-
browser_evaluate
-
browser_fill
-
browser_focus_tab
-
browser_get_console
-
browser_get_elements
-
browser_get_network
-
browser_get_page_info
-
browser_highlight
-
browser_hover
-
browser_key_press
-
browser_list_tabs
-
browser_navigate
-
browser_new_page
-
browser_screenshot
-
browser_scroll_to
-
browser_select_option
-
browser_snapshot
-
browser_upload_file
-
browser_wait_for_navigation
-
browser_wait_for_selector
-
cal_create_event
-
cal_find_free_slots
-
cal_get_event
-
cal_list_events
-
cal_validate_event_draft
-
devscope_capabilities
-
devscope_invoke
-
gm_get_thread
-
gm_list_labels
-
gm_search_threads
-
linkedin_fill_comment
-
linkedin_fill_composer
-
linkedin_read_search_state
-
linkedin_scrape_feed
-
linkedin_scrape_people_search
-
linkedin_scrape_profile
-
meta_get_insights
-
meta_list_accounts
-
meta_list_alerts
-
meta_list_campaigns
-
meta_update_campaign_budget
-
meta_update_campaign_status
-
schedule_list
-
schedule_playbook_update
-
schedule_setup_set_instruction
-
schedule_setup_update
-
task_ask_user
-
task_create
-
task_list
-
task_log
-
task_request_approval
-
task_save_mom_report
-
task_update
-
wa_ask
-
wa_get_messages
-
wa_list_chats
-
wa_mark_read
-
wa_nudges
-
wa_search
-
wa_send
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 5cddb30 · analyzer v33 · 1w ago
skills & prompt files 4
- skill 15273-devscope-bridge-5cddb30/.claude/skills/comms-cockpit/SKILL.md
- skill 15273-devscope-bridge-5cddb30/.claude/skills/devscope-browser/SKILL.md
- skill 15273-devscope-bridge-5cddb30/.claude/skills/devscope-capabilities/SKILL.md
- skill 15273-devscope-bridge-5cddb30/.claude/skills/meta-ads-cockpit/SKILL.md
danger signals2
- over-broad OAuth scope gmail.modify 15273-devscope-bridge-5cddb30/devscope_bridge/gmail/authorize_gmail.py :21
_SCOPES = ["https://www.googleapis.com/auth/gmail.modify"] - over-broad OAuth scope gmail.modify 15273-devscope-bridge-5cddb30/devscope_bridge/gmail/gmail_service.py :11
_SCOPES = ["https://www.googleapis.com/auth/gmail.modify"]
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 445
filesystem 52
- fs 15273-devscope-bridge-5cddb30/devscope_bridge/agents_scanner.py :11
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/board_state.py :13
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/bridge_auth.py :9
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :22
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/builtin_commands.py :25
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/calendar/authorize_calendar.py :15
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/calendar/calendar_service.py :7
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/calendar_mcp_server.py :12
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/capabilities.py :5
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/commands_scanner.py :6
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/compact_service.py :21
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/cursor_workspace.py :6
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/devscope_mcp_server.py :13
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/employee_config.py :14
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/fs_routes.py :13
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/gmail/authorize_gmail.py :19
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/gmail/gmail_service.py :7
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/gmail_mcp_server.py :12
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/local_env.py :7
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/main.py :22
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads/authorize_meta_ads.py :15
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads/cockpit_store.py :7
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads/meta_ads_poller.py :8
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads/meta_ads_service.py :7
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads_mcp_server.py :7
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/models_rest.py :70
or more Task tool_use blocks are still open (i.e. sub-agents are in - fs 15273-devscope-bridge-5cddb30/devscope_bridge/orchestrator_config.py :9
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/plugin_store.py :26
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/recording_transcode.py :5
import shutil - fs 15273-devscope-bridge-5cddb30/devscope_bridge/schedule_setup.py :8
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/session_http.py :9
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/session_hygiene.py :17
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/session_manager_cursor.py :36
import shutil - fs 15273-devscope-bridge-5cddb30/devscope_bridge/session_store.py :15
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/setup_mcp.py :15
import shutil - fs 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :12
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/task_store.py :17
from pathlib import Path - fs (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/conftest.py :9
from pathlib import Path - fs (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_agents_scanner.py :3
from pathlib import Path - fs (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_compact_service.py :21
from pathlib import Path - fs (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_cursor_workspace.py :3
from pathlib import Path - fs (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_new_slash_commands.py :29
from pathlib import Path - fs (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_recording_transcode.py :26
with open(out_path, "wb") as f: - fs (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_session_store_backwards_compatible.py :10
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/usage_audit.py :15
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/watchdog_medic.py :28
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp/cockpit_config.py :9
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp/cockpit_poller.py :12
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp/cockpit_routes.py :7
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp/cockpit_store.py :10
from pathlib import Path - fs 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp/nudge_engine.py :3
A chat is open (the user forgot to reply) when its last message is not from the - fs 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp_mcp_server.py :12
from pathlib import Path
shell / exec 7
- shell 15273-devscope-bridge-5cddb30/devscope_bridge/background_cursor_task.py :14
import subprocess - shell 15273-devscope-bridge-5cddb30/devscope_bridge/plugin_store.py :24
import subprocess - shell 15273-devscope-bridge-5cddb30/devscope_bridge/recording_transcode.py :6
import subprocess - shell 15273-devscope-bridge-5cddb30/devscope_bridge/session_manager_cursor.py :38
import subprocess - shell 15273-devscope-bridge-5cddb30/devscope_bridge/setup_mcp.py :16
import subprocess - shell (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_liveness_fields.py :57
Claude) and a subprocess.Popen (poll() method, for Cursor).""" - shell 15273-devscope-bridge-5cddb30/devscope_bridge/usage_audit.py :13
import subprocess
network 19
- net 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :25
import httpx - net 15273-devscope-bridge-5cddb30/devscope_bridge/calendar_mcp_server.py :15
import httpx - net 15273-devscope-bridge-5cddb30/devscope_bridge/devscope_mcp_server.py :16
import httpx - net 15273-devscope-bridge-5cddb30/devscope_bridge/gmail_mcp_server.py :15
import httpx - net 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads/authorize_meta_ads.py :16
from urllib.parse import parse_qs, urlparse - net 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads/meta_ads_service.py :10
import httpx - net 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads_mcp_server.py :10
import httpx - net 15273-devscope-bridge-5cddb30/devscope_bridge/oauth_usage_service.py :21
import httpx - net 15273-devscope-bridge-5cddb30/devscope_bridge/plugin_store.py :28
import httpx - net 15273-devscope-bridge-5cddb30/devscope_bridge/schedule_discover.py :10
from urllib.parse import urlparse - net 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :15
import httpx - net (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_actions_endpoint_resolves_on_browser_result.py :15
from httpx import AsyncClient, ASGITransport - net (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_actions_endpoint_returns_503_when_no_ws.py :6
from httpx import AsyncClient, ASGITransport - net (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_browser_action_deadline.py :29
from httpx import AsyncClient, ASGITransport - net (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_get_sessions_includes_agent_cwd.py :9
from httpx import AsyncClient, ASGITransport - net (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_liveness_fields.py :26
from httpx import AsyncClient, ASGITransport - net (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_pending_recovery.py :16
from httpx import AsyncClient, ASGITransport - net (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_post_sessions_creates_metadata.py :15
from httpx import AsyncClient, ASGITransport - net 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp_mcp_server.py :15
import httpx
secrets 5
- secrets 15273-devscope-bridge-5cddb30/devscope_bridge/calendar/authorize_calendar.py :26
client_secret = os.environ.get("GOOGLE_CLIENT_SECRET", "").strip() - secrets 15273-devscope-bridge-5cddb30/devscope_bridge/gmail/authorize_gmail.py :27
client_secret = os.environ.get("GOOGLE_CLIENT_SECRET", "").strip() - secrets 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads/authorize_meta_ads.py :33
os.environ.get("FACEBOOK_APP_SECRET") - secrets 15273-devscope-bridge-5cddb30/devscope_bridge/session_manager_cursor.py :262
if os.environ.get("DEVSCOPE_USE_API_KEY") != "1": - secrets 15273-devscope-bridge-5cddb30/devscope_bridge/session_runtime.py :143
if os.environ.get("DEVSCOPE_USE_API_KEY") != "1":
database 8
- db 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads/cockpit_store.py :5
import sqlite3 - db 15273-devscope-bridge-5cddb30/devscope_bridge/session_hygiene.py :16
import sqlite3 - db 15273-devscope-bridge-5cddb30/devscope_bridge/task_store.py :13
import sqlite3 - db (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_cockpit_sync.py :5
import sqlite3 - db (weak) 15273-devscope-bridge-5cddb30/devscope_bridge/tests/test_task_store.py :2
import sqlite3 - db 15273-devscope-bridge-5cddb30/devscope_bridge/usage_audit.py :12
import sqlite3 - db 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp/cockpit_store.py :8
import sqlite3 - db 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp/cockpit_sync.py :6
import sqlite3
tool registrations 62
- browser_navigate 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :178
- browser_screenshot 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :184
- browser_get_page_info 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :197
- browser_list_tabs 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :203
- browser_focus_tab 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :215
- browser_new_page 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :221
- browser_click 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :237
- browser_fill 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :252
- browser_get_elements 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :268
- browser_evaluate 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :281
- browser_snapshot 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :290
- browser_get_network 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :296
- browser_get_console 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :302
- browser_highlight 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :312
- browser_wait_for_selector 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :329
- browser_wait_for_navigation 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :343
- browser_assert_text 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :356
- browser_scroll_to 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :372
- browser_select_option 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :378
- browser_hover 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :391
- browser_key_press 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :397
- browser_upload_file 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :414
- linkedin_scrape_feed 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :459
- linkedin_fill_composer 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :468
- linkedin_fill_comment 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :482
- linkedin_scrape_people_search 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :496
- linkedin_read_search_state 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :510
- linkedin_scrape_profile 15273-devscope-bridge-5cddb30/devscope_bridge/browser_mcp_server.py :519
- cal_list_events 15273-devscope-bridge-5cddb30/devscope_bridge/calendar_mcp_server.py :81
- cal_get_event 15273-devscope-bridge-5cddb30/devscope_bridge/calendar_mcp_server.py :96
- cal_find_free_slots 15273-devscope-bridge-5cddb30/devscope_bridge/calendar_mcp_server.py :102
- cal_validate_event_draft 15273-devscope-bridge-5cddb30/devscope_bridge/calendar_mcp_server.py :120
- cal_create_event 15273-devscope-bridge-5cddb30/devscope_bridge/calendar_mcp_server.py :143
- devscope_invoke 15273-devscope-bridge-5cddb30/devscope_bridge/devscope_mcp_server.py :82
- devscope_capabilities 15273-devscope-bridge-5cddb30/devscope_bridge/devscope_mcp_server.py :97
- gm_search_threads 15273-devscope-bridge-5cddb30/devscope_bridge/gmail_mcp_server.py :77
- gm_get_thread 15273-devscope-bridge-5cddb30/devscope_bridge/gmail_mcp_server.py :89
- gm_list_labels 15273-devscope-bridge-5cddb30/devscope_bridge/gmail_mcp_server.py :95
- meta_list_accounts 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads_mcp_server.py :68
- meta_list_campaigns 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads_mcp_server.py :74
- meta_get_insights 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads_mcp_server.py :86
- meta_update_campaign_status 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads_mcp_server.py :98
- meta_update_campaign_budget 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads_mcp_server.py :112
- meta_list_alerts 15273-devscope-bridge-5cddb30/devscope_bridge/meta_ads_mcp_server.py :126
- task_list 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :80
- task_create 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :90
- task_update 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :101
- task_request_approval 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :114
- task_ask_user 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :122
- task_log 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :133
- task_save_mom_report 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :140
- schedule_playbook_update 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :146
- schedule_list 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :153
- schedule_setup_update 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :159
- schedule_setup_set_instruction 15273-devscope-bridge-5cddb30/devscope_bridge/task_mcp_server.py :166
- wa_list_chats 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp_mcp_server.py :103
- wa_get_messages 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp_mcp_server.py :115
- wa_search 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp_mcp_server.py :121
- wa_nudges 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp_mcp_server.py :127
- wa_send 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp_mcp_server.py :133
- wa_mark_read 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp_mcp_server.py :143
- wa_ask 15273-devscope-bridge-5cddb30/devscope_bridge/whatsapp_mcp_server.py :149
declared dependencies 9
- mcp@>=1.0,<2
- fastapi@>=0.115
- uvicorn@>=0.30
- websockets@>=13.0
- pydantic@>=2.0
- httpx@>=0.27
- google-api-python-client@>=2.100
- google-auth@>=2.20
- google-auth-oauthlib@>=1.0
cursor-plugin 1
- opaque (low) 15273-devscope-bridge-5cddb30/.cursor/mcp.json
bundled .cursor/ plugin descriptor (15273-devscope-bridge-5cddb30/.cursor/mcp.json) — presence-detected; review the descriptor