Local CLI coding agent powered by an OpenAI-compatible API.
Project description
SYLLIPTOR
Local CLI coding agent that turns plans into reviewed, PR-ready code.
Bring your own model. Sandboxed by default.
Why Sylliptor
- Forge — Plan, dispatch parallel workers, verify each task, ship.
- Cross-run memory — Failures become structured issues the next run avoids.
- Bring your own model — OpenAI, Anthropic, DeepSeek, Qwen, Gemini, Mistral, OpenRouter, xAI.
- Sandboxed by default — Docker or Bubblewrap. An always-on denylist refuses
rm -rf /,curl | sh, andsudo— even infullaccess.
How Forge Works
Type /forge in chat (or run sylliptor forge plan), describe what you want, and Forge:
- Asks 1–3 clarifying questions if the ask is vague.
- Writes
plan.jsonwith explicit tasks and runnable file scope. - On
/execute plan, dispatches a swarm of workers that run tasks in parallel. - Verifies each task before marking it done. Failures become
issueentries the next attempt sees. - Merges to
mainwhen everything passes.
All plans, traces, and per-task artifacts persist under .sylliptor/runs/<run_id>/. Resume any time with /forge resume.
Install
Sylliptor requires Python 3.11 or newer.
pipx install sylliptor-agent-cli
If your default python3 is older than 3.11:
pipx install --python python3.12 sylliptor-agent-cli
pip also works inside a virtual environment:
python -m pip install sylliptor-agent-cli
Quick Start
pipx install sylliptor-agent-cli
export SYLLIPTOR_API_KEY="YOUR_KEY"
sylliptor config set model "your-model"
sylliptor chat
On a fresh install, running sylliptor opens a 3-step setup wizard for API key, default model, and workspace. Re-run anytime:
sylliptor setup
Configure a provider endpoint and model:
sylliptor config set base_url "your-base-url"
sylliptor config set model "your-model"
Per-command key, endpoint, and model overrides:
sylliptor run --api-key-env OTHER_API_KEY --base-url "your-base-url" --model "your-model" "Summarize this project."
Core Commands
| Command | Use |
|---|---|
sylliptor |
Start setup or interactive chat. |
sylliptor setup |
Configure API key, model, and workspace defaults. |
sylliptor run "..." |
Run a one-shot task in the current workspace. |
sylliptor chat |
Start an interactive coding session. |
sylliptor forge plan |
Create or update a Forge plan from the CLI. |
sylliptor forge exec |
Execute a Forge task non-interactively. |
sylliptor forge swarm |
Run Forge tasks across parallel workers. |
sylliptor tools |
Show built-in tools and readiness. |
sylliptor sandbox doctor --smoke |
Check sandbox readiness. |
Useful chat commands include /help, /status, /mode, /config, /plan, /forge, /skill, /subagent, /terminals, /resume.
Execution Modes
Choose a mode per command with --mode, change it in chat with /mode, or set the default with sylliptor config set default_mode <mode>.
| Mode | Behavior |
|---|---|
readonly |
Inspection-only. No file writes, shell, MCP, or subagent delegation. |
review |
Default safe mode. Previews and asks before file writes and shell commands. |
auto |
Applies changes with fewer prompts. Hard denylist still applies. |
fullaccess |
No mode-level approval prompts. Denylist + audit log still active. |
sylliptor run --mode readonly "Find risky areas in this codebase."
sylliptor run --mode review "Implement the failing test fix."
sylliptor chat --mode auto
Sandbox & Safety
Shell and verification execution run inside a hardened Docker or Bubblewrap sandbox by default.
Shell commands and verification commands default to strict sandboxing. To deliberately disable
verification sandboxing for a trusted local setup, set verify_sandbox.mode="off" or
SYLLIPTOR_VERIFY_SANDBOX_MODE=off.
docker pull ghcr.io/alysisai/sylliptor-sandbox:dev
docker pull ghcr.io/alysisai/sylliptor-sandbox:server
Prepare or diagnose:
sylliptor sandbox setup
sylliptor sandbox doctor --smoke
sylliptor sandbox pull
The denylist is always-on across every mode. It refuses rm -rf /, curl ... | sh, sudo, force-push to main / master, raw disk writes, fork-bombs, recursive chmod 777 /, and direct > /dev/sd* redirects. In fullaccess, every successful shell command additionally writes a JSONL audit event.
Outbound HTTP from web tools and MCP OAuth goes through safe_http_request with SSRF guards: rejects non-HTTP schemes, loopback / link-local / private / multicast targets across IPv4 and IPv6, validates redirects, and enforces a streamed byte cap.
See Shell sandbox for backend requirements, image cosign signatures, SLSA provenance, and production pinning. See Security model for the full threat boundary.
Extend Sylliptor
Six capability surfaces. Four of them — skills, custom tools, MCP servers, hooks — bundle into a single declarative .toml plugin manifest.
- MCP — connect stdio or Streamable HTTP MCP servers, with OAuth, frozen catalogs, and narrowing-only project overrides.
- Custom tools — drop Python scripts into
.sylliptor/tools/*.py. AST-only discovery, trust-keyed by file hash. - Skills —
SKILL.mdinstruction bundles. Native + interop roots (.sylliptor_skills/,.agents/skills/,.claude/skills/,.github/skills/). - Subagents — focused delegation. Drop YAML+markdown into
.sylliptor_agents/*.mdfor custom agents. Built-ins:explorer,reviewer,test-strategist. - Hooks — lifecycle policy across 11 events (
PreToolUse,PostToolUse,SessionStart, ...). Three trust layers. - Plugins — declarative bundles of skills + custom tools + MCP servers + hooks. Pinned install (registry id or
git+https://...@<sha40>).
Run as an HTTP service with Server mode — worker jobs, uploads, queues, and authentication.
Repo conventions. Sylliptor reads AGENTS.md, CLAUDE.md, and CONVENTIONS.md from your repo root as read-only project context.
Configuration & Credentials
API keys can come from per-command options, SYLLIPTOR_API_KEY or persisted credentials.
sylliptor config show
sylliptor config set-api-key
sylliptor config clear-api-key
Provider profiles switch between configured endpoints:
sylliptor profile presets
sylliptor profile use openai
sylliptor profile list
See Credentials for key resolution and storage details.
Workspace Behavior
sylliptor run and sylliptor chat bind a workspace before the session starts. The requested path is --path or the current directory. In a git repository, Sylliptor binds to the repository root while preserving the starting directory as the focus directory.
Missing paths require --create-path. Broad directories such as ~ require an explicit override. / is blocked as a workspace root.
Project Links
Use Python 3.11 or newer for local development. See CONTRIBUTING.md for setup and PR expectations. Report vulnerabilities through SECURITY.md, not public GitHub issues.
Sylliptor is distributed under the Apache License 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sylliptor_agent_cli-0.9.0b1.tar.gz.
File metadata
- Download URL: sylliptor_agent_cli-0.9.0b1.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be3880626021a7f48dd63831739a8068af91e07a16946b0d6c28108aa1754d16
|
|
| MD5 |
35e91ff44aa4824a3fe726fe36caa228
|
|
| BLAKE2b-256 |
5454d60622e3f2c8dc518b0f40772482f98ee444abef21f446ea7a0e464875e5
|
Provenance
The following attestation bundles were made for sylliptor_agent_cli-0.9.0b1.tar.gz:
Publisher:
release.yml on AlysisAi/Sylliptor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sylliptor_agent_cli-0.9.0b1.tar.gz -
Subject digest:
be3880626021a7f48dd63831739a8068af91e07a16946b0d6c28108aa1754d16 - Sigstore transparency entry: 1484625439
- Sigstore integration time:
-
Permalink:
AlysisAi/Sylliptor@a9c3bdc074c2c222c5af9cbc58fcee45f69bf048 -
Branch / Tag:
refs/tags/v0.9.0b1 - Owner: https://github.com/AlysisAi
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a9c3bdc074c2c222c5af9cbc58fcee45f69bf048 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sylliptor_agent_cli-0.9.0b1-py3-none-any.whl.
File metadata
- Download URL: sylliptor_agent_cli-0.9.0b1-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8758d0898b0618a6babe9501f0e556bdcd352770e2fb935d96486cc83a898df9
|
|
| MD5 |
1add7158124ab99cf3668aebf80effa9
|
|
| BLAKE2b-256 |
e56e4ec6ef2ff974b7bccc5203d44ad8a2cb13bf4d7018706b71acee0ffe9e0a
|
Provenance
The following attestation bundles were made for sylliptor_agent_cli-0.9.0b1-py3-none-any.whl:
Publisher:
release.yml on AlysisAi/Sylliptor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sylliptor_agent_cli-0.9.0b1-py3-none-any.whl -
Subject digest:
8758d0898b0618a6babe9501f0e556bdcd352770e2fb935d96486cc83a898df9 - Sigstore transparency entry: 1484625478
- Sigstore integration time:
-
Permalink:
AlysisAi/Sylliptor@a9c3bdc074c2c222c5af9cbc58fcee45f69bf048 -
Branch / Tag:
refs/tags/v0.9.0b1 - Owner: https://github.com/AlysisAi
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a9c3bdc074c2c222c5af9cbc58fcee45f69bf048 -
Trigger Event:
push
-
Statement type: