DeepLoop autonomous research autopilot control plane.
Project description
DeepLoop
Structured research missions from a local project folder — with visible autonomy boundaries, durable mission state, and an explicit operator inbox.
DeepLoop helps researchers and operators run structured work from the artifacts already on disk 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 real project artifacts: bootstrap from a plain project folder, not just a prompt.
- 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
Fastest supported path:
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.
-
Prepare the workspace and validate the supported path
export DEEPLOOP_WORKSPACE_ROOT="$HOME/Workspaces" # optional; choose before init/start make setup make public-bootstrap-check
DeepLoop prints the resolved workspace root during
deeploop initanddeeploop start. IfDEEPLOOP_WORKSPACE_ROOTis unset, it uses an existing unambiguous~/Workspaces,~/workspace, or~/workspacesdirectory, then falls back to~/workspaces. -
Prepare a provider
-
Run the canonical example or your own plain-folder project
-
canonical example:
examples/translation-budget-ladder/ -
optional copy step:
cp -R examples/translation-budget-ladder PROJECT_FOLDER
-
fastest path:
deeploop run --project-root examples/translation-budget-ladder --until-complete
Note: If
<project-folder>/.deeploop/missions/*.yamlfiles exist,deeploop runautomatically uses the first one instead of bootstrapping a blank mission. For a plain folder with no existing config, it bootstraps from the folder's facts. To target a specific explicit config directly, usedeeploop init --config <mission-config.yaml>followed bydeeploop start --mission-state <mission-state.json>. -
explicit operator path:
deeploop init --project-root examples/translation-budget-ladder --force
On a copied folder, substitute
PROJECT_FOLDERin the commands above. -
-
Use the operator CLI when a run pauses
deeploop status --mission-state MISSION_STATE_PATH deeploop inbox --mission-state MISSION_STATE_PATH deeploop resume --mission-state MISSION_STATE_PATH
The deeploop CLI is the single entry point — run, init, status, inbox, resume, and more are all subcommands.
Best fit today
DeepLoop is best when you already have:
- a project folder on disk
- 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.1.2.tar.gz.
File metadata
- Download URL: deeploop-0.1.2.tar.gz
- Upload date:
- Size: 453.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e919c834da7103bed16e1719f41ca58bc9c3eb8e1c02e0e8672470db77a2ac9b
|
|
| MD5 |
099704a4de3d621ae2f4c5f8edc690af
|
|
| BLAKE2b-256 |
cb7fd84afdab589f04648ab484ebdc99bf2f6ad4281b6457557a9b63dce12281
|
Provenance
The following attestation bundles were made for deeploop-0.1.2.tar.gz:
Publisher:
publish.yml on tnetal/DeepLoop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
deeploop-0.1.2.tar.gz -
Subject digest:
e919c834da7103bed16e1719f41ca58bc9c3eb8e1c02e0e8672470db77a2ac9b - Sigstore transparency entry: 1462441071
- Sigstore integration time:
-
Permalink:
tnetal/DeepLoop@2d6094e1592325a934cd5b77e35e435e195330a5 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/tnetal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2d6094e1592325a934cd5b77e35e435e195330a5 -
Trigger Event:
release
-
Statement type:
File details
Details for the file deeploop-0.1.2-py3-none-any.whl.
File metadata
- Download URL: deeploop-0.1.2-py3-none-any.whl
- Upload date:
- Size: 408.5 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 |
37055cadf18ad4f3f3ef07291c6ee79776195ca3364d3d08b2b58344042b9599
|
|
| MD5 |
a970bd6cd4164cc78a78621e53bae352
|
|
| BLAKE2b-256 |
79c1f8d8373cfb9360bc0ce4b1eefc33993bc62a0767db3e4229a53e82dfce45
|
Provenance
The following attestation bundles were made for deeploop-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on tnetal/DeepLoop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
deeploop-0.1.2-py3-none-any.whl -
Subject digest:
37055cadf18ad4f3f3ef07291c6ee79776195ca3364d3d08b2b58344042b9599 - Sigstore transparency entry: 1462441098
- Sigstore integration time:
-
Permalink:
tnetal/DeepLoop@2d6094e1592325a934cd5b77e35e435e195330a5 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/tnetal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2d6094e1592325a934cd5b77e35e435e195330a5 -
Trigger Event:
release
-
Statement type: