DeepLoop autonomous research autopilot control plane.
Project description
DeepLoop
Structured research missions from a bundled starter or local project folder — with visible autonomy boundaries, durable mission state, and an explicit operator inbox.
DeepLoop helps researchers and operators run structured work from existing artifacts or a bundled starter instead of rebuilding everything around one long chat. It keeps the loop moving, pauses only at real safety, authority, or support boundaries, and makes the path legible when you need to inspect or redirect it.
DeepLoop owns behavior and orchestration; substrate repos own reusable domain or science rules.
Why it matters
- Start from a real folder or a bundled starter: use the same mission flow either way.
- Keep control visible:
status,inbox, andresumemake the operator inbox explicit when DeepLoop needs a real decision. - Inspect the loop: operator-facing summaries expose runtime telemetry, inner-loop progress, stage-kernel activity, reroutes, and temporary gaps instead of hiding them in raw JSON.
- Keep evidence close to the work: your project folder stays focused on facts, docs, and outputs while DeepLoop keeps durable mission state.
- Use autonomy with governance: the shipped path includes explicit release boundaries, autonomy governance, and reviewed promotion surfaces.
- Separate platform from domain logic: DeepLoop runs the loop; substrate repos keep reusable methods, constraints, and science rules.
Getting started
-
Install DeepLoop
pip install deeploop
For the full install matrix — GitHub installs, editable contributor setup, two-clone hybrid workflows, and the documented Conda path — use Getting started.
-
Set up a provider
DeepLoop uses OpenAI-compatible API providers. Configure your API key and endpoint:
export OPENAI_API_KEY="sk-..." export OPENAI_BASE_URL="https://api.deepseek.com"
The default control-plane profile uses
deepseek-chatvia the OpenAI-compatible adapter. See Provider setup for other options. -
Run DeepLoop
Start a mission with a single command:
deeploop start --idea "your research idea"
DeepLoop materializes a project under
WORKSPACE_ROOT/projects/, compiles a mission from your idea, and launches the same operator loop as every other path.To start from an existing project folder:
deeploop start --project-root <project-folder> --idea "your research idea"
To control iteration budget and cost:
deeploop start --idea "your research idea" --max-iterations 50 --max-cost 10.00
If you prefer an interactive kickoff that asks for your mission idea and lets you choose a bundled starter:
deeploop start
-
Use the operator CLI when a run pauses
deeploop status deeploop inbox deeploop resume
Start with
statusfor a compact overview of runtime telemetry, inner-loop progress, and current state. Openinboxonly when DeepLoop pauses for a real decision — it shows actionable handoffs with the exact information needed to respond. Uselogs,decisions,retry,reroute, ortriageonly when the surfaced handoff says you need more detail or a managed-mode override.
The deeploop CLI is the single entry point — start, status, inbox,
resume, and more are all subcommands.
Readiness at a glance
- Unified first run: Linux, Python 3.11+,
pip install deeploop,export OPENAI_API_KEY="sk-...",deeploop start --idea "your research idea" - Multi-provider: DeepSeek (default), Anthropic API (
ANTHROPIC_API_KEY), and OpenAI-compatible endpoints all supported as first-class control-plane providers - Tree search experiments: opt-in via
enable_tree_search: truein mission state for best-first exploration of experiment designs duringexperiment-designandexecutionphases - Mission dashboard:
python -m deeploop.cli.dashboard --state-path <mission_state.json>for an HTML read-only view (zero additional dependencies) - Same front door for existing work: use
deeploop start --project-root <project-folder> --idea "your research idea" - Repo-checkout validation path:
make setup,make public-bootstrap-check, and direct access toexamples/translation-budget-ladder/ - Messy starts are supported: rough plain-folder projects can initialize with disclosed clarifications/defaults, or you can use
deeploop init --discover ...for a guided kickoff - Repair stays bounded: if the folder is missing the plain-folder bootstrap contract, DeepLoop exits with bootstrap-repair guidance and suggested starter inputs instead of silently rewriting project files
- Current baseline release proof:
make public-bootstrap-check,make docker-release-validate, andmake docs-build
Best fit today
DeepLoop is best when you have:
- either a project folder on disk or a clear enough idea to start from a bundled starter
- a clear mission or question
- an operator who can check
statusand respond when the operator inbox opens - a need for bounded autonomy, durable state, and evidence-aware summaries
Public alpha — best on Linux with Python 3.11; not claiming a fully automatic experience for everyone. See the roadmap for current scope.
Key capabilities
Operating modes
sandboxed-yolofor the fastest bounded path when you want DeepLoop to keep moving inside the supported guardrailsmanagedwhen you want intervention hooks before DeepLoop continues; managed mode can surface a bounded retry, reroute, or downscope step for reviewhuman-directedwhen you want to approve important choices yourself
What you can inspect
- operator-facing status surfaces runtime telemetry, inner-loop progress, ratchets, reroutes, and temporary-gap recovery hints
- stage-kernel execution stays visible instead of disappearing behind one opaque agent loop
- the operator inbox keeps handoffs explicit when DeepLoop reaches a real decision or support boundary
Reusable methods and governance
- keep skills for reusable methods and domain/science rules in substrate repos
- use Release posture for the current claim and Autonomy governance for current boundaries
- review the current multi-substrate proof as proof of a bounded contract, not a claim of broad portability
Documentation
- Docs home
- Getting started
- Examples
- Plain-folder starter
- Release posture
- Portable bootstrap
- Provider setup
- Provider selection
- Autonomy governance
- Multi-substrate proof
- Technical reference
Contributing
Contributions, bug reports, and discussion are welcome.
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 deeploop-0.6.1.tar.gz.
File metadata
- Download URL: deeploop-0.6.1.tar.gz
- Upload date:
- Size: 613.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af1641feee97a4234b93742d8c60e45bc63c37015d17dbd06958ead6f9798f22
|
|
| MD5 |
8a9819ffc8045fa638e7e9b09bc36610
|
|
| BLAKE2b-256 |
b4c4afeb8aaa88f230f0b3c35847c95bf51d5cdf857022734bbb930bc46ffb18
|
Provenance
The following attestation bundles were made for deeploop-0.6.1.tar.gz:
Publisher:
publish.yml on MoyYuan/DeepLoop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
deeploop-0.6.1.tar.gz -
Subject digest:
af1641feee97a4234b93742d8c60e45bc63c37015d17dbd06958ead6f9798f22 - Sigstore transparency entry: 1933398114
- Sigstore integration time:
-
Permalink:
MoyYuan/DeepLoop@3c2c21f5ac9f9e4b976471b91ebcd8e57608eddd -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/MoyYuan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3c2c21f5ac9f9e4b976471b91ebcd8e57608eddd -
Trigger Event:
release
-
Statement type:
File details
Details for the file deeploop-0.6.1-py3-none-any.whl.
File metadata
- Download URL: deeploop-0.6.1-py3-none-any.whl
- Upload date:
- Size: 531.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65e0c257b3b75b7a3e3b21ca57e61c80a1019f712116475d34fb52c2d934cab8
|
|
| MD5 |
11a20ffa320a096eebfec01877bb64b3
|
|
| BLAKE2b-256 |
d33ea4ff45924d7cfda0fdf3024fc6ee10a70eef235d71bf7577bcbb32482a67
|
Provenance
The following attestation bundles were made for deeploop-0.6.1-py3-none-any.whl:
Publisher:
publish.yml on MoyYuan/DeepLoop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
deeploop-0.6.1-py3-none-any.whl -
Subject digest:
65e0c257b3b75b7a3e3b21ca57e61c80a1019f712116475d34fb52c2d934cab8 - Sigstore transparency entry: 1933398349
- Sigstore integration time:
-
Permalink:
MoyYuan/DeepLoop@3c2c21f5ac9f9e4b976471b91ebcd8e57608eddd -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/MoyYuan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3c2c21f5ac9f9e4b976471b91ebcd8e57608eddd -
Trigger Event:
release
-
Statement type: