by r1c7
AI coding agent with one Python core and three front-ends — headless CLI, Textual TUI, and an Electron desktop. Works with any OpenAI-compatible API, with risk-tiered permissions, event-sourced replayable sessions, and a fail-closed OS-level sandbox.
# Add to your Claude Code skills
git clone https://github.com/r1c7/CluxMateCluxMate is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by r1c7. AI coding agent with one Python core and three front-ends — headless CLI, Textual TUI, and an Electron desktop. Works with any OpenAI-compatible API, with risk-tiered permissions, event-sourced replayable sessions, and a fail-closed OS-level sandbox. It has 50 GitHub stars.
CluxMate's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/r1c7/CluxMate" and add it to your Claude Code skills directory (see the Installation section above).
CluxMate is primarily written in Python. It is open-source under r1c7 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh CluxMate against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
An AI coding agent — one Python core, three front-ends.
English · 中文文档
CluxMate is an AI coding agent that reads your codebase, plans changes, edits files, runs commands, and answers questions. A single Python core powers three interchangeable front-ends:
| Front-end | What you get |
|---|---|
| Headless CLI | One-shot prompts for scripts, CI, and automation (cluxmate -p "...") |
| Textual TUI | A full interactive terminal UI (cluxmate) |
| Electron desktop | A polished GUI that drives the same core over JSON-RPC (stdio) |
It speaks the OpenAI-compatible API, so it works with DeepSeek, Qwen, GLM, OpenAI, OpenRouter, Ollama, or any self-hosted endpoint using the same protocol — just point it at a base_url. No vendor lock-in.
turn/start/turn/end, every step logs step/start, request/header, and tool results, so the exact prompt sent at any step can be reconstructed and replayed verbatim, and context compaction rewrites a summary region without erasing the underlying events. See Sessions you can replay below.safe / write / dangerous / critical); four modes (plan / default / acceptEdits / yolo) plus two persistent always-allow lists (write tier + dangerous tier — delete_file, and bash per category like bash:rm / bash:python / bash:run, never whole-tool) control approval. Running code (python script.py, node app.js, npm run, ./x.sh, …) is dangerous, not safe. plan mode is read-only by construction; dangerous commands prompt unless explicitly always-allowed, and critical commands (format/mkfs/dd, etc.) and sandbox escalation always prompt.bash commands run inside an OS-level sandbox (Windows Low-integrity token, Linux bubblewrap, macOS Seatbelt). Sandboxing is fail-closed and only yolo mode — the explicit opt-out — disarms it. See Security: sandbox.web_fetch / web_search pass through an SSRF guard in every mode (including yolo): internal/private addresses (RFC1918, loopback, link-local, cloud metadata, …) are denied by default, every redirect hop is re-validated, and DNS resolution failures close the request. Allow/block rules are configurable (~/.cluxmate/ssrf.json), managed from desktop Settings → Sandbox → Network access. See Security: network access (SSRF guard).shared (unrestricted), off (kernel-level deny — bwrap --unshare-net / Seatbelt deny network*), or proxy (allowlist-only via a local filtering proxy). Default shared; Windows off is fail-closed for now. See Security: network egress (bash/MCP).general-purpose, read-only explore) with a depth cap of 4, each with its own replayable session log.MAX_TURNS remains the hard backstop.AGENTS.md), and Model Context Protocol servers (stdio / HTTP) plug into the same context pipeline.UserPromptSubmit / PreToolUse / PostToolUse / Stop / SessionStart / SessionEnd / SubagentStop / PreCompact / Notification, receiving context as stdin JSON and deciding to block or inject context via stdout JSON. Hooks are your own trusted config, never sandboxed; crashes/timeouts degrade to a no-op.bash, file read/write/edit/delete, grep, list_dir, web_fetch, web_search, ask_user_question, subagents, skills, memory updates and more; every tool's output is capped and truncated to keep context bounded.┌──────────────────────────────────────────────┐
│ Front-ends │
│ CLI ─── REPL ─── Textual TUI ─── Desktop │
└──────────────────────────────────────────────┘
│
JSON-RPC over stdio (desktop)
│
┌──────────────────────────────────────────────┐
│ Python agent core │
│ AgentLoop ── SessionLog (event-sourced) │
│ Builder ── Permissions ── Checkpoints │
│ WriteFence ── Bash/MCP sandbox │
│ Skills ── Memory ── MCP ── Subagents │
│ Hooks ── Grants │
└──────────────────────────────────────────────┘
│
OpenAI-compatible API (httpx)
│
┌──────────────────────────────────────────────┐
│ DeepSeek · Qwen · GLM · OpenAI · any base │
└──────────────────────────────────────────────┘
The session log is the source of truth: an append-only sequence of events from which the model's message history is derived. This keeps request prefixes stable (prompt-cache friendly), enables exact replay, and survives crashes.
Everything the agent does is recorded in an append-only event log — one .jsonl file per session — and the provider message history is derived from those events, never stored separately. That single source of truth buys a lot:
turn/start / turn/end; inside it, every model request logs step/start + request/header (config, system prompt, tool schemas — only when they change), and every tool call logs its result. The exact prompt sent at any step can be reconstructed verbatim (session/context shows it turn by turn).user/message events (source: memory / skill / mode), and a mode or tool-schema change appends a fresh request/header with reason change — so replay shows what the agent knew and could do at every point, not just what it said.SessionLog, linked to its parent via subagent/spawn pointers. Replaying a session replays the whole delegation tree, parents and children, in order.ReplaceOp). The underlying events stay in the append-only log and the prompt-cache-friendly prefix stays intact — nothing is silently lost.tool/result + turn/end {interrupted} events, so a reloaded history is always a valid transcript. Undo rewinds to a turn boundary via a single truncate.Permissions decide what is allowed; two enforcement boundaries make denials stick:
① WriteFence (in-process) — guards the five file tools (write_file, search_replace, multi_edit, multi_write, delete_file). Every path is canonicalized (.. and symlinks resolved) then checked: deny-list first, containment second, before any I/O. Only the working directory, the platform temp dir, and your ~/.cluxmate/AGENTS.md are writable — and <project>/.cluxmate/ (permission config, MCP servers, skills) is always off-limits so a prompt-injected model can never edit its own permission settings.
② Bash + MCP sandbox (OS-level) — model-generated bash commands run under an OS sandbox instead of your full user, with a kernel-level backend on each platform:
NO_WRITE_UP) with the wor