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
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
export DEEPLOOP_WORKSPACE_ROOT="$HOME/Workspaces" # optional; choose before init/run/start deeploop setup deeploop preflight
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.If you are in a repo checkout and want the contributor validation path too:
make setup make public-bootstrap-check
-
Prepare a provider
-
quickest first-run machine check:
deeploop provider-ready --selection-profile control-plane-copilot-cli
deeploop runnow performs the same machine-level readiness check before kickoff for the default first-run control-plane profile. If setup is still missing, it stops with the exact missing requirement, one next step, and a resume command. -
-
Run DeepLoop
-
start from nothing with the installed bundled starters:
deeploop run --until-complete
DeepLoop opens an interactive kickoff, asks for your mission idea, lets you choose a bundled starter, materializes a project under
WORKSPACE_ROOT/projects/, compiles a mission, and launches the same operator loop as every other path. -
start from your own folder with the same command surface:
deeploop run --project-root <project-folder> --until-complete
-
start from the repo example if you also cloned DeepLoop:
cp -R examples/translation-budget-ladder PROJECT_FOLDER deeploop run --project-root PROJECT_FOLDER --until-complete
Repo-local
examples/...paths only exist in a DeepLoop source checkout. Package installs still get bundled starters through plaindeeploop run.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. If the folder is rough but still recognizable, DeepLoop can initialize with disclosed clarifications/defaults and keep the project folder unchanged. To target a specific explicit config directly, usedeeploop init --config <mission-config.yaml>followed bydeeploop start --mission-state <mission-state.json>. -
advanced discovery / operator path:
deeploop init --project-root PROJECT_FOLDER --force deeploop init --discover --project-root PROJECT_FOLDER --force
Use plain
deeploop init --project-root ...when the folder is rough but already recognizable. Add--discoverwhen you want DeepLoop to ask clarifying questions before kickoff.
On a copied folder, substitute
PROJECT_FOLDERin the commands above. If DeepLoop cannot safely bootstrap the folder yet, it stops with bounded bootstrap-repair guidance instead of mutating the project. -
-
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
Start with
status. Openinboxonly when DeepLoop pauses for you. 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 — run, init, status, inbox,
resume, and more are all subcommands.
Readiness at a glance
- Unified first run: Linux, Python 3.11+,
pip install deeploop,deeploop setup,deeploop preflight, thendeeploop run --until-complete - Same front door for existing work: use
deeploop run --project-root <project-folder> --until-complete - 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.1.8.tar.gz.
File metadata
- Download URL: deeploop-0.1.8.tar.gz
- Upload date:
- Size: 538.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a47c047c2b2eb504bce0664ccaee71d70bd729411049df2314e3348c251254c
|
|
| MD5 |
ba928df58fe709f685681fa6eb4cb1ea
|
|
| BLAKE2b-256 |
c32b1bb2add89ae714b14b3d43339b51f4142f4cc459cb3071ad0f6687713dfb
|
Provenance
The following attestation bundles were made for deeploop-0.1.8.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.8.tar.gz -
Subject digest:
2a47c047c2b2eb504bce0664ccaee71d70bd729411049df2314e3348c251254c - Sigstore transparency entry: 1554476887
- Sigstore integration time:
-
Permalink:
tnetal/DeepLoop@e1d7d439a74a5a0553766042f2e0bae6d7dc465b -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/tnetal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e1d7d439a74a5a0553766042f2e0bae6d7dc465b -
Trigger Event:
release
-
Statement type:
File details
Details for the file deeploop-0.1.8-py3-none-any.whl.
File metadata
- Download URL: deeploop-0.1.8-py3-none-any.whl
- Upload date:
- Size: 469.3 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 |
d9f59cd4ad8a9491477bdb74843241e743d59290c10ac2539f514e707f831869
|
|
| MD5 |
cdba7c015ed0a09a3a34c02ba0484cca
|
|
| BLAKE2b-256 |
5e538ca7063863d26c1ad416f4a09113f9a94067b9b2fd11c106e83f017efcea
|
Provenance
The following attestation bundles were made for deeploop-0.1.8-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.8-py3-none-any.whl -
Subject digest:
d9f59cd4ad8a9491477bdb74843241e743d59290c10ac2539f514e707f831869 - Sigstore transparency entry: 1554476920
- Sigstore integration time:
-
Permalink:
tnetal/DeepLoop@e1d7d439a74a5a0553766042f2e0bae6d7dc465b -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/tnetal
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e1d7d439a74a5a0553766042f2e0bae6d7dc465b -
Trigger Event:
release
-
Statement type: