github Python analyzed fd59417

xmaks82/self-improving-agent

github

Terminal coding agent that executes tools (real think>tool>result loop with confirm + undo, MCP tools in-loop) and rewrites its own system prompt from feedback with metrics + auto-rollback. Free by default via the FCM model router.

maintainer
xmaks82
licence
MIT
first seen
2026-06-15
last seen
2026-07-04
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport stdio counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit fd59417 · analyzer v33 · 3w ago

danger signals1

code evidence vv1.5.1 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 119

filesystem 30

  • fs xmaks82-self-improving-agent-fd59417/src/agent/approval/undo.py :5 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/auth/oauth.py :25 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/config.py :3 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/core/runtime_config.py :5 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/core/session_memory.py :5 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/interfaces/cli.py :6 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/interfaces/voice.py :6 import shutil
  • fs xmaks82-self-improving-agent-fd59417/src/agent/main.py :97 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/mcp/manager.py :3 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/mcp/registry.py :4 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/memory/manager.py :3 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/memory/store.py :5 from pathlib import Path
show 18 more
  • fs xmaks82-self-improving-agent-fd59417/src/agent/memory/team_sync.py :6 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/planning/manager.py :4 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/plugins/loader.py :6 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/prompts/composer.py :18 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/storage/logs.py :3 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/storage/prompts.py :3 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/storage/sessions.py :6 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/tools/brief.py :3 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/tools/file_state.py :8 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/tools/filesystem.py :5 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/tools/git.py :4 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/tools/notebook.py :4 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/tools/registry.py :4 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/tools/search.py :4 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/tools/shell.py :7 from pathlib import Path
  • fs xmaks82-self-improving-agent-fd59417/src/agent/tools/worktree.py :6 from pathlib import Path
  • fs (weak) xmaks82-self-improving-agent-fd59417/tests/test_agentic_loop.py :9 from pathlib import Path
  • fs (weak) xmaks82-self-improving-agent-fd59417/tests/test_sanity.py :5 from pathlib import Path

shell / exec 2

  • shell xmaks82-self-improving-agent-fd59417/src/agent/interfaces/voice.py :7 import subprocess
  • shell xmaks82-self-improving-agent-fd59417/src/agent/memory/team_sync.py :5 import subprocess

network 8

  • net xmaks82-self-improving-agent-fd59417/src/agent/auth/oauth.py :28 import httpx
  • net xmaks82-self-improving-agent-fd59417/src/agent/clients/cerebras_client.py :6 import httpx
  • net xmaks82-self-improving-agent-fd59417/src/agent/clients/openrouter_client.py :12 import httpx
  • net xmaks82-self-improving-agent-fd59417/src/agent/clients/sambanova_client.py :6 import httpx
  • net xmaks82-self-improving-agent-fd59417/src/agent/interfaces/voice.py :78 import httpx
  • net xmaks82-self-improving-agent-fd59417/src/agent/memory/embeddings.py :17 import httpx
  • net xmaks82-self-improving-agent-fd59417/src/agent/tools/web_fetch.py :6 import socket
  • net xmaks82-self-improving-agent-fd59417/src/agent/tools/web_search.py :4 import urllib.parse

secrets 12

  • secrets xmaks82-self-improving-agent-fd59417/src/agent/auth/oauth.py :122 env_token = os.environ.get("CLAUDE_CODE_OAUTH_TOKEN")
  • secrets xmaks82-self-improving-agent-fd59417/src/agent/clients/anthropic_client.py :58 self._fallback_api_key = api_key or os.getenv("ANTHROPIC_API_KEY")
  • secrets xmaks82-self-improving-agent-fd59417/src/agent/clients/cerebras_client.py :39 api_key = api_key or os.getenv("CEREBRAS_API_KEY")
  • secrets xmaks82-self-improving-agent-fd59417/src/agent/clients/factory.py :120 api_key = anthropic_api_key or os.getenv("ANTHROPIC_API_KEY")
  • secrets xmaks82-self-improving-agent-fd59417/src/agent/clients/fcm_client.py :34 self.api_key = api_key or os.getenv("FCM_API_KEY", "fcm")
  • secrets xmaks82-self-improving-agent-fd59417/src/agent/clients/groq_client.py :58 api_key = api_key or os.getenv("GROQ_API_KEY")
  • secrets xmaks82-self-improving-agent-fd59417/src/agent/clients/openrouter_client.py :51 self.api_key = api_key or os.getenv("OPENROUTER_API_KEY")
  • secrets xmaks82-self-improving-agent-fd59417/src/agent/clients/sambanova_client.py :55 api_key = api_key or os.getenv("SAMBANOVA_API_KEY")
  • secrets xmaks82-self-improving-agent-fd59417/src/agent/clients/zhipu_client.py :37 api_key = os.getenv("ZHIPU_API_KEY")
  • secrets xmaks82-self-improving-agent-fd59417/src/agent/config.py :38 anthropic_api_key=os.getenv("ANTHROPIC_API_KEY"),
  • secrets xmaks82-self-improving-agent-fd59417/src/agent/interfaces/voice.py :24 has_api_key = bool(os.environ.get("OPENAI_API_KEY"))
  • secrets xmaks82-self-improving-agent-fd59417/src/agent/main.py :73 if os.getenv("ANTHROPIC_API_KEY"):

declared dependencies 17

  • mcp@>=1.0.0
  • anthropic@>=0.40.0
  • zhipuai@>=2.0.0
  • groq@>=0.9.0
  • httpx@>=0.27.0
  • pyyaml@>=6.0
  • aiofiles@>=24.0
  • aiosqlite@>=0.19.0
  • rich@>=13.0
  • prompt-toolkit@>=3.0
  • python-dotenv@>=1.0
  • fastapi@>=0.115.0
show 5 more
  • uvicorn@>=0.32.0
  • websockets@>=13.0
  • pytest@>=8.0
  • pytest-asyncio@>=0.24
  • ruff@>=0.8