T06 · System Persistence
- Location
keep/integrations.py:293- Finding
Automatic Persistent Modification of Agent Configuration and Lifecycle Hooks
- Content
View full analysis
bool: """Try to install the keep plugin via claude CLI. Runs `claude plugin marketplace add` and `claude plugin install`. Uses a short timeout to avoid blocking. Returns True on success. """ claude = shutil.which("claude") if not claude: return False try: # Add marketplace (idempotent) subprocess.run( [claude, "plugin", "marketplace", "add", CLAUDE_CODE_MARKETPLACE_URL], timeout=30, capture_output=True, ) # Install plugin (idempotent) result = subprocess.run( [claude, "plugin", "install", f"{CLAUDE_CODE_PLUGIN_NAME}@{CLAUDE_CODE_MARKETPLACE_NAME}"], timeout=30, capture_output=True, ) return result.returncode == 0 except (subprocess.TimeoutExpired, OSError) as e: logger.debug("claude plugin install failed: %s", e) return False ``` ```python def install_codex(config_dir: Path) -> list[str]: """Install protocol block for OpenAI Codex. Returns list of actions taken. """ actions = [] agents_md = config_dir / "AGENTS.md" if _install_protocol_block(agents_md): actions.append("protocol block") return actions ``` ```python def _check_cwd_agents_md() -> None: """Install protocol block into AGENTS.md in cwd if present.""" agents_md = Path.cwd() / "AGENTS.md" if agents_md.is_file(): if _install_protocol_block(agents_md): print( f"keep: installed protocol block in {agents_md}", file=sys.stderr, ) ``` ```python def check_and_install(config: "StoreConf ...[truncated 3922 chars]- Remediation
View remediation
