Skip to main content

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, and resume make 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

  1. 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.

  2. 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 init and deeploop start. If DEEPLOOP_WORKSPACE_ROOT is unset, it uses an existing unambiguous ~/Workspaces, ~/workspace, or ~/workspaces directory, 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
    
  3. Prepare a provider

    deeploop run now 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.

  4. 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 plain deeploop run.

      Note: If <project-folder>/.deeploop/missions/*.yaml files exist, deeploop run automatically 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, use deeploop init --config <mission-config.yaml> followed by deeploop 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 --discover when you want DeepLoop to ask clarifying questions before kickoff.

    On a copied folder, substitute PROJECT_FOLDER in the commands above. If DeepLoop cannot safely bootstrap the folder yet, it stops with bounded bootstrap-repair guidance instead of mutating the project.

  5. 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. Open inbox only when DeepLoop pauses for you. Use logs, decisions, retry, reroute, or triage only 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, then deeploop 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 to examples/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, and make 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 status and 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-yolo for the fastest bounded path when you want DeepLoop to keep moving inside the supported guardrails
  • managed when you want intervention hooks before DeepLoop continues; managed mode can surface a bounded retry, reroute, or downscope step for review
  • human-directed when 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

Documentation

Contributing

Contributions, bug reports, and discussion are welcome.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deeploop-0.1.10.tar.gz (543.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deeploop-0.1.10-py3-none-any.whl (471.5 kB view details)

Uploaded Python 3

File details

Details for the file deeploop-0.1.10.tar.gz.

File metadata

  • Download URL: deeploop-0.1.10.tar.gz
  • Upload date:
  • Size: 543.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for deeploop-0.1.10.tar.gz
Algorithm Hash digest
SHA256 d7f25c5782ef1f1e8ca912f4da10b2772f8f4190a6ea589e3138a5676893c080
MD5 410d81fc6230defb2b6eca7f85d2a075
BLAKE2b-256 ef7445ffc44c3c3a2ec8cb565f9da60d1e6761f7b2cd70976302af0128cce6dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for deeploop-0.1.10.tar.gz:

Publisher: publish.yml on tnetal/DeepLoop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file deeploop-0.1.10-py3-none-any.whl.

File metadata

  • Download URL: deeploop-0.1.10-py3-none-any.whl
  • Upload date:
  • Size: 471.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for deeploop-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 fb7601aac86804545f656a1ee676d048e75640bd531c2e0a390783e22c83d1ea
MD5 780e0eb15295c86d08749cd012e2725b
BLAKE2b-256 c55f0a8ef25776e5c304e65bbff68b96ea71f004c0072e9710261fb9f35ba225

See more details on using hashes here.

Provenance

The following attestation bundles were made for deeploop-0.1.10-py3-none-any.whl:

Publisher: publish.yml on tnetal/DeepLoop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page