github Python analyzed 06122cf

ContextPulse/contextpulse

github

Always-on context for AI agents: screen capture, OCR, voice, MCP server. Local-first, AGPL-3.0.

maintainer
ContextPulse
license
AGPL-3.0
first seen
2026-07-09
last seen
2026-08-18
releases · 30d
0
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution in ContextPulse/contextpulse
  2. HIGH code analysis flagged dynamic code execution in ContextPulse/contextpulse
  3. HIGH code analysis flagged dynamic code execution in ContextPulse/contextpulse
capabilities 44 tools
transport stdio · streamable-http counts 44 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • about
  • add_to_vocabulary
  • check_corrections
  • consolidate_learning
  • describe_workspace
  • find_related_context
  • get_active_project
  • get_activity_summary
  • get_agent_stats
  • get_app_usage
  • get_buffer_status
  • get_clipboard_history
  • get_context_at
  • get_correction_history
  • get_event_timeline
  • get_monitor_summary
  • get_project_context
  • get_recent
  • get_recent_touch_events
  • get_recent_transcriptions
  • get_recent_voice
  • get_screen_text
  • get_screenshot
  • get_session_summary
  • get_touch_stats
  • get_vocabulary
  • get_voice_stats
  • identify_project
  • learn_from_session
  • list_projects
  • memory_forget
  • memory_list
  • memory_recall
  • memory_search
  • memory_semantic_search
  • memory_stats
  • memory_store
  • rebuild_context_vocabulary
  • remove_from_vocabulary
  • route_to_journal
  • search_all_events
  • search_clipboard
  • search_history
  • search_voice
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 06122cf · analyzer v33 · 21h ago

danger signals2

code evidence vv0.1.0-alpha · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 169

filesystem 68

  • fs ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/config.py :14 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/daemon.py :26 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/first_run.py :12 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/license.py :18 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/license_dialog.py :131 lambda _: __import__("webbrowser").open("https://contextpulse.ai/pricing"),
  • fs ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/licensing.py :36 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/platform/macos.py :20 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/settings.py :298 webbrowser.open("https://contextpulse.ai/pricing")
  • fs ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/skill_setup.py :20 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/spine/bus.py :21 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/core/tests/conftest.py :72 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/core/tests/test_daemon.py :237 daemon_mod.CRASH_LOG = tmp_path # directory, not file — open() will fail
  • fs ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/embeddings.py :14 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/mcp_server.py :23 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/storage.py :19 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/project/src/contextpulse_project/detector.py :5 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/project/src/contextpulse_project/journal_bridge.py :7 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/project/src/contextpulse_project/registry.py :7 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/screen/scripts/auto_benchmark.py :12 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/screen/scripts/benchmark_storage.py :14 4. VS Code with a file open (code)
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/screen/scripts/verify_live.py :12 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/activity.py :14 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/app.py :10 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/buffer.py :19 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/capture.py :13 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/config.py :6 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/icon.py :6 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :22 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/ocr_worker.py :22 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/setup.py :12 import shutil
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/screen/tests/conftest.py :4 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/screen/tests/test_buffer.py :5 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/screen/tests/test_capture.py :68 loaded = Image.open(path)
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/screen/tests/test_config.py :27 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/screen/tests/test_e2e.py :92 img = Image.open(frame_path)
  • fs ContextPulse-contextpulse-06122cf/packages/touch/src/contextpulse_touch/correction_detector.py :21 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/touch/tests/conftest.py :4 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/touch/tests/test_correction_detector.py :5 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/touch/tests/test_edge_cases.py :6 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/touch/tests/test_integration.py :13 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/analyzer.py :13 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/clipboard_harvester.py :15 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/consolidator.py :13 import shutil
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/context_vocab.py :16 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/escalation.py :15 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/hot_words.py :16 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/metrics.py :15 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/model_manager.py :11 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/ocr_harvester.py :16 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/recorder.py :159 with wave.open(buf, "wb") as wf:
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/session_learner.py :21 from pathlib import Path
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/transcriber.py :126 os.unlink(tmp_path)
  • fs ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/vocabulary.py :12 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/conftest.py :4 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_audio_pipeline.py :29 wf = wave.open(io.BytesIO(wav_bytes), "rb")
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_clipboard_harvester.py :9 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_consolidator.py :9 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_context_vocab.py :7 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_escalation.py :9 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_hot_words.py :9 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_metrics.py :9 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_ocr_harvester.py :9 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_recorder.py :38 wav_file = wave.open(io.BytesIO(result), "rb")
  • fs (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_transcriber.py :151 with wave.open(buf, "wb") as wf:
  • fs (weak) ContextPulse-contextpulse-06122cf/scripts/canary_health_check.py :31 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/scripts/nightly_learning.py :18 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/tests/soak/generate_test_data.py :23 from pathlib import Path
  • fs (weak) ContextPulse-contextpulse-06122cf/tests/test_user_acceptance.py :22 import shutil

shell / exec 11

  • shell ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/daemon.py :21 import subprocess
  • shell ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/platform/macos.py :18 import subprocess
  • shell ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/platform/macos_permissions.py :15 import subprocess
  • shell ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/platform/windows.py :184 import subprocess
  • shell ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/skill_setup.py :297 import subprocess
  • shell ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/tray_macos.py :9 import subprocess
  • shell ContextPulse-contextpulse-06122cf/packages/project/src/contextpulse_project/journal_bridge.py :5 import subprocess
  • shell (weak) ContextPulse-contextpulse-06122cf/packages/screen/scripts/auto_benchmark.py :8 import subprocess
  • shell ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/app.py :6 import subprocess
  • shell (weak) ContextPulse-contextpulse-06122cf/scripts/canary_health_check.py :26 import subprocess
  • shell (weak) ContextPulse-contextpulse-06122cf/tests/test_user_acceptance.py :23 import subprocess

network 1

  • net ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/embeddings.py :13 import urllib.request

secrets 1

  • secrets ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/config.py :48 return os.getenv("ANTHROPIC_API_KEY", "")

database 31

  • db ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/spine/bus.py :19 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/core/tests/test_spine.py :4 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/storage.py :15 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/memory/tests/test_embeddings.py :337 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/activity.py :10 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/touch/src/contextpulse_touch/correction_detector.py :18 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/touch/src/contextpulse_touch/mcp_server.py :10 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/touch/tests/conftest.py :82 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/touch/tests/test_cross_modal.py :11 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/touch/tests/test_integration.py :10 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/touch/tests/test_mcp_tools.py :4 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/analyzer.py :28 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/clipboard_harvester.py :13 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/consolidator.py :14 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/escalation.py :13 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/hot_words.py :14 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/mcp_server.py :10 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/metrics.py :12 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/ocr_harvester.py :14 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/session_learner.py :19 import sqlite3
  • db ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/voice_module.py :508 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/conftest.py :105 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_clipboard_harvester.py :7 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_consolidator.py :7 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_escalation.py :7 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_hot_words.py :7 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_integration.py :11 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_mcp_tools.py :3 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_metrics.py :7 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/packages/voice/tests/test_ocr_harvester.py :7 import sqlite3
  • db (weak) ContextPulse-contextpulse-06122cf/tests/soak/generate_test_data.py :106 "import sqlite3\nconn = sqlite3.connect('activity.db')\ncursor = conn.execute('SELECT * FROM events WHERE timestamp > ?', (cutoff,))",

tool registrations 71

  • about ContextPulse-contextpulse-06122cf/glama/server.py :39
  • get_monitor_summary ContextPulse-contextpulse-06122cf/glama/server.py :67
  • get_screenshot ContextPulse-contextpulse-06122cf/glama/server.py :85
  • get_screen_text ContextPulse-contextpulse-06122cf/glama/server.py :109
  • get_recent ContextPulse-contextpulse-06122cf/glama/server.py :129
  • get_buffer_status ContextPulse-contextpulse-06122cf/glama/server.py :151
  • get_context_at ContextPulse-contextpulse-06122cf/glama/server.py :167
  • search_history ContextPulse-contextpulse-06122cf/glama/server.py :190
  • get_activity_summary ContextPulse-contextpulse-06122cf/glama/server.py :216
  • get_app_usage ContextPulse-contextpulse-06122cf/glama/server.py :238
  • get_session_summary ContextPulse-contextpulse-06122cf/glama/server.py :257
  • find_related_context ContextPulse-contextpulse-06122cf/glama/server.py :274
  • describe_workspace ContextPulse-contextpulse-06122cf/glama/server.py :296
  • identify_project ContextPulse-contextpulse-06122cf/glama/server.py :317
  • get_active_project ContextPulse-contextpulse-06122cf/glama/server.py :338
  • list_projects ContextPulse-contextpulse-06122cf/glama/server.py :355
  • get_project_context ContextPulse-contextpulse-06122cf/glama/server.py :371
  • route_to_journal ContextPulse-contextpulse-06122cf/glama/server.py :391
  • get_recent_voice ContextPulse-contextpulse-06122cf/glama/server.py :419
  • search_voice ContextPulse-contextpulse-06122cf/glama/server.py :439
  • get_voice_stats ContextPulse-contextpulse-06122cf/glama/server.py :460
  • get_correction_history ContextPulse-contextpulse-06122cf/glama/server.py :480
  • add_to_vocabulary ContextPulse-contextpulse-06122cf/glama/server.py :503
  • get_vocabulary ContextPulse-contextpulse-06122cf/glama/server.py :527
  • remove_from_vocabulary ContextPulse-contextpulse-06122cf/glama/server.py :543
  • get_clipboard_history ContextPulse-contextpulse-06122cf/glama/server.py :569
  • search_clipboard ContextPulse-contextpulse-06122cf/glama/server.py :590
  • get_recent_touch_events ContextPulse-contextpulse-06122cf/glama/server.py :614
  • get_touch_stats ContextPulse-contextpulse-06122cf/glama/server.py :634
  • memory_store ContextPulse-contextpulse-06122cf/glama/server.py :655
  • memory_recall ContextPulse-contextpulse-06122cf/glama/server.py :683
  • memory_search ContextPulse-contextpulse-06122cf/glama/server.py :704
  • memory_semantic_search ContextPulse-contextpulse-06122cf/glama/server.py :725
  • memory_list ContextPulse-contextpulse-06122cf/glama/server.py :750
  • memory_forget ContextPulse-contextpulse-06122cf/glama/server.py :769
  • memory_stats ContextPulse-contextpulse-06122cf/glama/server.py :790
  • memory_store ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/mcp_server.py :84
  • memory_recall ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/mcp_server.py :119
  • memory_search ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/mcp_server.py :136
  • memory_semantic_search ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/mcp_server.py :180
  • memory_list ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/mcp_server.py :206
  • memory_forget ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/mcp_server.py :227
  • memory_stats ContextPulse-contextpulse-06122cf/packages/memory/src/contextpulse_memory/mcp_server.py :242
  • identify_project ContextPulse-contextpulse-06122cf/packages/project/src/contextpulse_project/mcp_server.py :38
  • get_active_project ContextPulse-contextpulse-06122cf/packages/project/src/contextpulse_project/mcp_server.py :63
  • list_projects ContextPulse-contextpulse-06122cf/packages/project/src/contextpulse_project/mcp_server.py :84
  • get_project_context ContextPulse-contextpulse-06122cf/packages/project/src/contextpulse_project/mcp_server.py :98
  • route_to_journal ContextPulse-contextpulse-06122cf/packages/project/src/contextpulse_project/mcp_server.py :110
  • get_monitor_summary ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :101
  • get_screenshot ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :286
  • get_recent ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :383
  • get_screen_text ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :435
  • get_buffer_status ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :473
  • get_activity_summary ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :546
  • search_history ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :589
  • get_context_at ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :627
  • get_clipboard_history ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :675
  • search_clipboard ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :708
  • get_agent_stats ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :741
  • search_all_events ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :777
  • get_event_timeline ContextPulse-contextpulse-06122cf/packages/screen/src/contextpulse_sight/mcp_server.py :836
  • get_recent_touch_events ContextPulse-contextpulse-06122cf/packages/touch/src/contextpulse_touch/mcp_server.py :31
  • get_touch_stats ContextPulse-contextpulse-06122cf/packages/touch/src/contextpulse_touch/mcp_server.py :106
  • get_correction_history ContextPulse-contextpulse-06122cf/packages/touch/src/contextpulse_touch/mcp_server.py :182
  • get_recent_transcriptions ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/mcp_server.py :32
  • get_voice_stats ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/mcp_server.py :86
  • get_vocabulary ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/mcp_server.py :143
  • learn_from_session ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/mcp_server.py :175
  • rebuild_context_vocabulary ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/mcp_server.py :210
  • consolidate_learning ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/mcp_server.py :235
  • check_corrections ContextPulse-contextpulse-06122cf/packages/voice/src/contextpulse_voice/mcp_server.py :271

declared dependencies 34

  • mcp@>=1.0
  • contextpulse-core@>=0.1.0
  • contextpulse-sight@>=0.1.0
  • contextpulse-voice@>=0.1.0
  • contextpulse-touch@>=0.1.0
  • python-dotenv@>=1.0
  • cryptography@>=43.0
  • mss@>=9.0
  • pynput@>=1.7
  • pystray@>=0.19
  • Pillow@>=10.0
  • numpy@>=1.26
  • rapidocr-onnxruntime@>=1.2
  • faster-whisper@>=1.0
  • sounddevice@>=0.4
  • pyperclip@>=1.8
  • pyautogui@>=0.9
  • anthropic@>=0.39
  • onnxruntime@>=1.17
  • tokenizers@>=0.19
  • contextpulse-memory@>=0.1.0
  • pyobjc-framework-Cocoa@>=12.1
  • pyobjc-framework-Quartz@>=10.0
  • pyobjc-framework-ApplicationServices@>=10.0
  • pyobjc-framework-Vision@>=10.0
  • rumps@>=0.4
  • mlx-whisper@>=0.4.3
  • openai@>=2.32.0
  • pytest@>=8.0
  • pytest-cov@>=5.0
  • pytest-timeout@>=2.4.0
  • pytest-threadleak@>=0.1
  • hypothesis@>=6.100
  • ruff@>=0.15.11

clipboard 1

  • clipboard shell call ContextPulse-contextpulse-06122cf/packages/core/src/contextpulse_core/platform/linux.py :30 "For Wayland, use wl-paste --watch.",