Skip to content

Feat: Daytona plugin#2362

Merged
crazywoola merged 2 commits intolanggenius:mainfrom
mislavivanda:feat/daytona
May 3, 2026
Merged

Feat: Daytona plugin#2362
crazywoola merged 2 commits intolanggenius:mainfrom
mislavivanda:feat/daytona

Conversation

@mislavivanda
Copy link
Copy Markdown
Contributor

Plugin Submission Form

1. Metadata

2. Submission Type

  • New plugin submission
  • Version update for existing plugin

3. Description

This plugin integrates Dify with Daytona, a secure sandbox infrastructure provider for AI agents. It exposes 7 tools that let Dify workflows and agents:

  • Provision isolated sandbox environments from Daytona snapshots or custom Docker images
  • Execute Python, TypeScript, or JavaScript code inside a sandbox
  • Run shell commands with separated stdout/stderr/exit code
  • Upload files into a sandbox (e.g. CSV datasets, scripts) and download files back into Dify (e.g. generated charts, processed outputs)
  • Expose services running on a sandbox port (web apps, APIs, dashboards) via a public preview URL
  • Manage the full sandbox lifecycle

4. Checklist

  • I have read and followed the Publish to Dify Marketplace guidelines
  • I have read and comply with the Plugin Developer Agreement
  • I confirm my plugin works properly on both Dify Community Edition and Cloud Version
  • I confirm my plugin has been thoroughly tested for completeness and functionality
  • My plugin brings new value to Dify

5. Documentation Checklist

  • Step-by-step setup instructions
  • Detailed usage instructions
  • All required APIs and credentials are clearly listed
  • Connection requirements and configuration details
  • Link to the repository for the plugin source code

6. Privacy Protection Information

Data Collection

This plugin does not collect any user personal data (no name, email, IP address, location, device ID, biometric, financial, or health information).

The plugin transmits the following user-provided data to the Daytona API solely to operate the sandbox service:

  • API Key: Daytona API credentials, used for authentication
  • Code and Commands: Code snippets and shell commands that the user submits for execution
  • File Contents: Files uploaded to or downloaded from sandboxes via the upload/download tools
  • Sandbox Identifiers: Sandbox IDs returned by the Daytona API
  • Execution Output: stdout, stderr, and exit codes from executed code/commands

None of these constitute user personal data per the Privacy Protection Guidelines categorization. All transmitted data is sent exclusively to the Daytona API and is governed by Daytona's Privacy Policy.

Privacy Policy

  • I confirm that I have prepared and included a privacy policy in my plugin package based on the Plugin Privacy Protection Guidelines

Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com>
Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com>
Copy link
Copy Markdown
Member

@crazywoola crazywoola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail
Dependency install ❌ Fail Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/.venv/bin/pip install -r /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/unpacked_plugin/requirements.txt WARNING: Cache entry deserializ…
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.5.0, but it was not found.
Install test ❌ Fail Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/.venv/bin/python /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/toolkit/validator/test-plugin-install.py -d /var/folders/c5/ssq8b54n0rj6…

Full Check Results

Check Status Detail
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=2116, ignored_zh=0, allowed_zh<=0)
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes.
Manifest author ✅ Pass author is valid.
Icon validation ✅ Pass icon exists: _assets/icon.png
Version check ✅ Pass version 0.0.1 is available.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=2719, allowed_zh<=0)
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty.
Dependency install ❌ Fail Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/.venv/bin/pip install -r /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/unpacked_plugin/requirements.txt WARNING: Cache entry deserializ…
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.5.0, but it was not found.
Install test ❌ Fail Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/.venv/bin/python /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/toolkit/validator/test-plugin-install.py -d /var/folders/c5/ssq8b54n0rj6…
Packaging test ✅ Pass packaging check passed.

Required Fixes

  • Dependency install: Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/.venv/bin/pip install -r /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/unpacked_plugin/requirements.txt
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    WARNING: Cache entry deserialization failed, entry ignored
    error: subprocess-exited-with-error

    × Building wheel for tiktoken (pyproject.toml) did not run successfully.
    │ exit code: 1
    ╰─> [50 lines of output]
    /private/var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pip-build-env-evj7uufr/overlay/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: project.license as a TOML table is deprecated
    !!

            ********************************************************************************
            Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0).
    
            By 2027-Feb-18, you need to update your project and remove deprecated calls
            or your builds will no longer be supported.
    
            See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
            ********************************************************************************
    
    !!
      corresp(dist, value, root_dir)
    running bdist_wheel
    running build
    running build_py
    creating build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/registry.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/__init__.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/core.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/model.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/load.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/_educational.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    creating build/lib.macosx-26.0-arm64-cpython-314/tiktoken_ext
    copying tiktoken_ext/openai_public.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken_ext
    running egg_info
    writing tiktoken.egg-info/PKG-INFO
    writing dependency_links to tiktoken.egg-info/dependency_links.txt
    writing requirements to tiktoken.egg-info/requires.txt
    writing top-level names to tiktoken.egg-info/top_level.txt
    reading manifest file 'tiktoken.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching 'Makefile'
    adding license file 'LICENSE'
    writing manifest file 'tiktoken.egg-info/SOURCES.txt'
    copying tiktoken/py.typed -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    running build_ext
    running build_rust
    error: can't find Rust compiler
    
    If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.
    
    To update pip, run:
    
        pip install --upgrade pip
    
    and then retry package installation.
    
    If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.
    [end of output]
    

    note: This error originates from a subprocess, and is likely not a problem with pip.
    ERROR: Failed building wheel for tiktoken
    error: failed-wheel-build-for-install

× Failed to build installable wheels for some pyproject.toml based projects
╰─> tiktoken

  • dify_plugin version: dify_plugin must be installed and >= 0.5.0, but it was not found.
  • Install test: Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/.venv/bin/python /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/toolkit/validator/test-plugin-install.py -d /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-uyr_iy5z/unpacked_plugin

Please address these issues and push an update.

Copy link
Copy Markdown
Member

@crazywoola crazywoola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM

Decision: Approve

Local Check Results

Check Status Detail
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=2116, ignored_zh=0, allowed_zh<=0)
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes.
Manifest author ✅ Pass author is valid.
Icon validation ✅ Pass icon exists: _assets/icon.png
Version check ✅ Pass version 0.0.1 is available.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=2719, allowed_zh<=0)
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty.
Dependency install ✅ Pass requirements installed successfully.
dify_plugin version ✅ Pass dify_plugin version 0.5.1 satisfies >= 0.5.0.
Install test ✅ Pass plugin install test passed.
Packaging test ✅ Pass packaging check passed.

@crazywoola crazywoola merged commit 37fab56 into langgenius:main May 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants