[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-daytonaio--daytona":3,"tool-daytonaio--daytona":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",151314,2,"2026-04-11T23:32:58",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":72,"owner_website":78,"owner_url":79,"languages":80,"stars":121,"forks":122,"last_commit_at":123,"license":124,"difficulty_score":10,"env_os":125,"env_gpu":126,"env_ram":127,"env_deps":128,"category_tags":134,"github_topics":135,"view_count":10,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":144,"updated_at":145,"faqs":146,"releases":181},6806,"daytonaio\u002Fdaytona","daytona","Daytona is a Secure and Elastic Infrastructure for Running AI-Generated Code","Daytona 是一个专为运行 AI 生成代码而设计的安全、弹性基础设施。在 AI 代理（Agent）日益普及的今天，如何安全地执行不可信的自动生成的代码成为一大挑战。Daytona 通过提供完全隔离的“沙箱”环境解决了这一痛点，每个沙箱都是一台拥有独立内核、文件系统、网络栈及专属计算资源的完整计算机，确保代码在受控环境中运行，互不干扰且风险可控。\n\n该平台特别适合开发者、AI 研究人员以及构建智能体工作流的技术团队使用。无论是需要并行处理大量任务，还是希望在不同会话间保持状态持久化，Daytona 都能提供稳定支持。其独特的技术亮点在于极致的启动速度——从代码提交到执行仅需不到 90 毫秒，并基于 OCI\u002FDocker 标准构建，支持 Python、TypeScript 和 JavaScript 等多种语言。此外，Daytona 提供了丰富的 SDK、API 和命令行工具，让用户能轻松编程管理沙箱的生命周期、文件操作及进程执行。凭借状态快照功能，它还能让 AI 代理在多次交互中保留上下文记忆，是构建下一代 AI 应用架构的理想基石。","&nbsp;\n\n\u003Cdiv align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fraw\u002Fmain\u002Fassets\u002Fimages\u002FDaytona-logotype-white.png\">\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdaytonaio_daytona_readme_878bb7544479.png\">\n    \u003Cimg alt=\"Daytona logo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdaytonaio_daytona_readme_878bb7544479.png\" width=\"50%\">\n  \u003C\u002Fpicture>\n\u003C\u002Fdiv>\n\n\u003Ch3 align=\"center\">\n  Run AI Code.\n  \u003Cbr\u002F>\n  Secure and Elastic Infrastructure for\n  Running Your AI-Generated Code.\n\u003C\u002Fh3>\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fwww.daytona.io\u002Fdocs\"> Documentation \u003C\u002Fa>·\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fissues\u002Fnew?assignees=&labels=bug&projects=&template=bug_report.md&title=%F0%9F%90%9B+Bug+Report%3A+\"> Report Bug \u003C\u002Fa>·\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fissues\u002Fnew?assignees=&labels=enhancement&projects=&template=feature_request.md&title=%F0%9F%9A%80+Feature%3A+\"> Request Feature \u003C\u002Fa>·\n    \u003Ca href=\"https:\u002F\u002Fgo.daytona.io\u002Fslack\"> Join our Slack \u003C\u002Fa>·\n    \u003Ca href=\"https:\u002F\u002Fx.com\u002Fdaytonaio\"> Connect on X \u003C\u002Fa>\n\u003C\u002Fp>\n\n&nbsp;\n\nDaytona is a secure and elastic infrastructure runtime for AI-generated code execution and agent workflows. Our open-source platform provides [sandboxes](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fsandboxes\u002F), full composable computers with complete isolation, a dedicated kernel, filesystem, network stack, and allocated vCPU, RAM, and disk.\n\nSandboxes are the core component of the Daytona platform, spinning up in under 90ms from code to execution and running any code in Python, TypeScript, and JavaScript. Built on OCI\u002FDocker compatibility, massive parallelization, and unlimited persistence, sandboxes deliver consistent, predictable environments for agent workflows.\n\nAgents and developers interact with sandboxes programmatically using the Daytona [SDKs](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002F#3-install-the-sdk), [API](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Ftools\u002Fapi\u002F#daytona\u002F), and [CLI](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Ftools\u002Fcli\u002F). Operations span sandbox lifecycle management, filesystem operations, process and code execution, and runtime configuration through base images, packages, and tooling. Our stateful environment [snapshots](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fsnapshots\u002F) enable persistent agent operations across sessions, making Daytona the ideal foundation for AI agent architectures.\n\n## Features\n\nDaytona provides an extensive set of features and tools for interacting with sandboxes.\n\n- **Platform**: governance and operational controls for organizations standardizing on Daytona\n- **Sandboxes**: isolated full composable computers that execute workloads and retain state\n- **Agent tools**: programmatic capabilities for application code, agents, and integrations\n- **Human tools**: interfaces and remote sessions for interacting with sandboxes\n- **System tools**: platform-level hooks and controls for lifecycle events and network access\n\n| Platform                                                                   | Sandboxes                                                               | Agent tools                                                                       | Human tools                                                               | System tools                                                  |\n| :------------------------------------------------------------------------- | :---------------------------------------------------------------------- | :-------------------------------------------------------------------------------- | :------------------------------------------------------------------------ | :------------------------------------------------------------ |\n| [Organizations](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Forganizations\u002F)                | [Environment](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fconfiguration\u002F)               | [Process & code execution](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fprocess-code-execution\u002F)   | [Dashboard](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fgetting-started#dashboard)        | [Webhooks](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fwebhooks\u002F)             |\n| [API Keys](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fapi-keys\u002F)                          | [Snapshots](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fsnapshots\u002F)                     | [File system operations](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Ffile-system-operations\u002F)     | [Web terminal](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fweb-terminal\u002F)                 | [Network limits](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fnetwork-limits\u002F) |\n| [Limits](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Flimits\u002F)                              | [Declarative builder](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fdeclarative-builder\u002F) | [Language server protocol](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Flanguage-server-protocol\u002F) | [SSH access](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fssh-access\u002F)                     |                                                               |\n| [Billing](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fbilling\u002F)                            | [Volumes](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fvolumes\u002F)                         | [Computer use](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fcomputer-use\u002F)                         | [VNC access](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fvnc-access\u002F)                     |                                                               |\n| [Audit logs](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Faudit-logs\u002F)                      | [Regions](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fregions\u002F)                         | [MCP server](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fmcp\u002F)                                    | [VPN connection](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fvpn-connections\u002F)            |                                                               |\n| [OpenTelemetry](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fexperimental\u002Fotel-collection\u002F) |                                                                         | [Git operations](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fgit-operations\u002F)                     | [Preview](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fpreview\u002F)                           |                                                               |\n| [Integrations](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fguides\u002F)                        |                                                                         | [Pseudo terminal (PTY)](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fpty\u002F)                         | [Custom preview proxy](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fcustom-preview-proxy\u002F) |                                                               |\n| [Security exhibit](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fsecurity-exhibit\u002F)          |                                                                         | [Log streaming](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Flog-streaming\u002F)                       | [Playground](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fplayground\u002F)                     |                                                               |\n\n## Architecture\n\nDaytona platform is organized into multiple plane components, each serving a specific purpose. A detailed overview of each component is available in the [architecture documentation](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Farchitecture\u002F).\n\n- **Interface plane**: provides client interfaces for interacting with Daytona\n- **Control plane**: orchestrates all sandbox operations\n- **Compute plane**: runs and manages sandbox instances\n\n### Applications\n\nRunnable applications and services for the Daytona platform. Each directory is a deployable or buildable component, available in the [apps](apps) directory.\n\n- [`api`](apps\u002Fapi): NestJS-based RESTful service; primary entry point for all platform operations\n- [`cli`](apps\u002Fcli): Go command-line interface access to core features for interacting with sandboxes\n- [`daemon`](apps\u002Fdaemon): code execution agent that runs inside each sandbox\n- [`dashboard`](apps\u002Fdashboard): web user interface for visual sandbox management\n- [`docs`](apps\u002Fdocs): documentation content; website published to [daytona.io\u002Fdocs](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002F)\n- [`otel-collector`](apps\u002Fotel-collector): trace and metric collection for Daytona SDK operations\n- [`proxy`](apps\u002Fproxy): reverse proxy for custom routing and preview URLs\n- [`runner`](apps\u002Frunner): compute nodes that power Daytona's compute plane and run sandboxes\n- [`snapshot-manager`](apps\u002Fsnapshot-manager): orchestrates the creation of sandbox snapshots\n- [`ssh-gateway`](apps\u002Fssh-gateway): standalone SSH gateway that accepts authenticated `ssh` connections\n\n### Client libraries\n\nClient libraries integrate the Daytona platform from application code through developer-facing SDKs backed by OpenAPI-generated REST clients and toolbox API clients. Each directory is a publishable package for a specific language or runtime, available in the [libs](libs) directory.\n\n#### Python\n\n```bash\npip install daytona\n```\n\nStandalone packages and libraries for interacting with Daytona using Python:\n\n> [`sdk-python`](libs\u002Fsdk-python) • [`api-client-python`](libs\u002Fapi-client-python) • [`api-client-python-async`](libs\u002Fapi-client-python-async) • [`toolbox-api-client-python`](libs\u002Ftoolbox-api-client-python) • [`toolbox-api-client-python-async`](libs\u002Ftoolbox-api-client-python-async)\n\n#### TypeScript\n\n```bash\nnpm install @daytona\u002Fsdk\n```\n\nStandalone packages and libraries for interacting with Daytona using TypeScript:\n\n> [`sdk-typescript`](libs\u002Fsdk-typescript) • [`api-client`](libs\u002Fapi-client) • [`toolbox-api-client`](libs\u002Ftoolbox-api-client)\n\n#### Ruby\n\n```bash\ngem install daytona\n```\n\nStandalone packages and libraries for interacting with Daytona using Ruby:\n\n> [`sdk-ruby`](libs\u002Fsdk-ruby) • [`api-client-ruby`](libs\u002Fapi-client-ruby) • [`toolbox-api-client-ruby`](libs\u002Ftoolbox-api-client-ruby)\n\n#### Go\n\n```bash\ngo get github.com\u002Fdaytonaio\u002Fdaytona\u002Flibs\u002Fsdk-go\n```\n\nStandalone packages and libraries for interacting with Daytona using Go:\n\n> [`sdk-go`](libs\u002Fsdk-go) • [`api-client-go`](libs\u002Fapi-client-go) • [`toolbox-api-client-go`](libs\u002Ftoolbox-api-client-go)\n\n#### Java\n\nGradle (`build.gradle.kts`):\n\n```kotlin\ndependencies {\n    implementation(\"io.daytona:sdk:0.1.0\")\n}\n```\n\nMaven (`pom.xml`):\n\n```xml\n\u003Cdependency>\n  \u003CgroupId>io.daytona\u003C\u002FgroupId>\n  \u003CartifactId>sdk\u003C\u002FartifactId>\n  \u003Cversion>0.1.0\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\nStandalone packages and libraries for interacting with Daytona using Java:\n\n> [`sdk-java`](libs\u002Fsdk-java) • [`api-client-java`](libs\u002Fapi-client-java) • [`toolbox-api-client-java`](libs\u002Ftoolbox-api-client-java)\n\n## Deployments\n\nDaytona is available as a managed service on [app.daytona.io](https:\u002F\u002Fapp.daytona.io). Daytona can run as a fully hosted service, as an open-source stack you operate, or in a hybrid setup where Daytona orchestrates sandboxes while execution happens on machines you manage.\n\n- [Open source deployment](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Foss-deployment\u002F): full local stack from the [`docker`](docker) directory using Docker Compose\n- [Customer managed compute](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Frunners\u002F): custom regions and runner machines that operate Daytona sandboxes on your own compute infrastructure\n\n## Quick Start\n\n1. Create an account at [app.daytona.io](https:\u002F\u002Fapp.daytona.io)\n2. Generate an [API key](https:\u002F\u002Fapp.daytona.io\u002Fdashboard\u002Fkeys)\n3. Create a sandbox\n\n### Python SDK\n\n```py\nfrom daytona import Daytona, DaytonaConfig\n\nconfig = DaytonaConfig(api_key=\"YOUR_API_KEY\")\ndaytona = Daytona(config)\nsandbox = daytona.create()\nresponse = sandbox.process.code_run('print(\"Hello World!\")')\nprint(response.result)\n```\n\n### Typescript SDK\n\n```jsx\nimport { Daytona } from \"@daytona\u002Fsdk\";\n\nconst daytona = new Daytona({ apiKey: \"YOUR_API_KEY\" });\nconst sandbox = await daytona.create();\nconst response = await sandbox.process.codeRun('print(\"Hello World!\")');\nconsole.log(response.result);\n```\n\n### Ruby SDK\n\n```ruby\nrequire 'daytona'\n\nconfig = Daytona::Config.new(api_key: 'YOUR_API_KEY')\ndaytona = Daytona::Daytona.new(config)\nsandbox = daytona.create\nresponse = sandbox.process.code_run(code: 'print(\"Hello World!\")')\nputs response.result\n```\n\n### Go SDK\n\n```go\npackage main\n\nimport (\n  \"context\"\n  \"fmt\"\n  \"github.com\u002Fdaytonaio\u002Fdaytona\u002Flibs\u002Fsdk-go\u002Fpkg\u002Fdaytona\"\n  \"github.com\u002Fdaytonaio\u002Fdaytona\u002Flibs\u002Fsdk-go\u002Fpkg\u002Ftypes\"\n)\n\nfunc main() {\n  config := &types.DaytonaConfig{APIKey: \"YOUR_API_KEY\"}\n  client, _ := daytona.NewClientWithConfig(config)\n  ctx := context.Background()\n  sandbox, _ := client.Create(ctx, nil)\n  response, _ := sandbox.Process.ExecuteCommand(ctx, \"echo 'Hello World!'\")\n  fmt.Println(response.Result)\n}\n```\n\n### Java SDK\n\n```java\nimport io.daytona.sdk.Daytona;\nimport io.daytona.sdk.DaytonaConfig;\nimport io.daytona.sdk.Sandbox;\nimport io.daytona.sdk.model.ExecuteResponse;\n\npublic class Main {\n  public static void main(String[] args) {\n    DaytonaConfig config = new DaytonaConfig.Builder()\n        .apiKey(\"YOUR_API_KEY\")\n        .build();\n    try (Daytona daytona = new Daytona(config)) {\n      Sandbox sandbox = daytona.create();\n      ExecuteResponse response = sandbox.getProcess().executeCommand(\"echo 'Hello World!'\");\n      System.out.println(response.getResult());\n    }\n  }\n}\n```\n\n### API\n\n```bash\ncurl 'https:\u002F\u002Fapp.daytona.io\u002Fapi\u002Fsandbox' \\\n  --request POST \\\n  --header 'Authorization: Bearer \u003CYOUR_API_KEY>' \\\n  --header 'Content-Type: application\u002Fjson' \\\n  --data '{}'\n```\n\n### CLI\n\n```bash\ndaytona create\n```\n\n## Development\n\n### Devcontainer (full environment)\n\nOpen this repository in a [devcontainer](https:\u002F\u002Fcontainers.dev\u002F)-compatible editor (VS Code, GitHub Codespaces) for a batteries-included setup with all languages, tools, and supporting services.\n\n### Nix (lightweight, agent-friendly)\n\nIf you prefer working outside the devcontainer — or are an AI agent executing build commands — use the Nix dev shells:\n\n```bash\n# Enter the full dev shell (Go + Node + Python + Ruby + JDK)\nnix develop\n\n# Or pick a language-specific shell\nnix develop .#go       # Go services & libs\nnix develop .#node     # TypeScript \u002F Node.js apps & libs\nnix develop .#python   # Python SDKs & libs\nnix develop .#ruby     # Ruby SDKs & libs\nnix develop .#java     # Java SDKs & libs\n```\n\n**Prerequisites:** [Nix](https:\u002F\u002Fnixos.org\u002Fdownload\u002F) with flakes enabled (`experimental-features = nix-command flakes` in `~\u002F.config\u002Fnix\u002Fnix.conf`).\n\nFor non-interactive \u002F CI usage:\n\n```bash\nnix develop .#go --command bash -c \"go build .\u002F...\"\n```\n\nOptional: Install [direnv](https:\u002F\u002Fdirenv.net\u002F) + [nix-direnv](https:\u002F\u002Fgithub.com\u002Fnix-community\u002Fnix-direnv) for automatic shell activation when you `cd` into the project.\n\nSee [`AGENTS.md`](AGENTS.md) for the full shell reference, project-to-shell mapping, and common commands.\n\n> **Note:** Supporting services (PostgreSQL, Redis, etc.) are still managed via `docker compose -f .devcontainer\u002Fdocker-compose.yaml up`.\n\n---\n\n## Contributing\n\n> [!NOTE]\n> Daytona is Open Source under the [GNU AFFERO GENERAL PUBLIC LICENSE](LICENSE), and is the [copyright of its contributors](NOTICE). If you would like to contribute to the software, read the [Developer Certificate of Origin Version 1.1](https:\u002F\u002Fdevelopercertificate.org\u002F) and the [contributing guide](CONTRIBUTING.md) to get started.\n","&nbsp;\n\n\u003Cdiv align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fraw\u002Fmain\u002Fassets\u002Fimages\u002FDaytona-logotype-white.png\">\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdaytonaio_daytona_readme_878bb7544479.png\">\n    \u003Cimg alt=\"Daytona logo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdaytonaio_daytona_readme_878bb7544479.png\" width=\"50%\">\n  \u003C\u002Fpicture>\n\u003C\u002Fdiv>\n\n\u003Ch3 align=\"center\">\n  运行 AI 代码。\n  \u003Cbr\u002F>\n  为您的 AI 生成代码提供安全且弹性的基础设施。\n\u003C\u002Fh3>\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fwww.daytona.io\u002Fdocs\"> 文档 \u003C\u002Fa>·\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fissues\u002Fnew?assignees=&labels=bug&projects=&template=bug_report.md&title=%F0%9F%90%9B+Bug+Report%3A+\"> 报告 Bug \u003C\u002Fa>·\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fissues\u002Fnew?assignees=&labels=enhancement&projects=&template=feature_request.md&title=%F0%9F%9A%80+Feature%3A+\"> 请求功能 \u003C\u002Fa>·\n    \u003Ca href=\"https:\u002F\u002Fgo.daytona.io\u002Fslack\"> 加入我们的 Slack \u003C\u002Fa>·\n    \u003Ca href=\"https:\u002F\u002Fx.com\u002Fdaytonaio\"> 在 X 上联系 \u003C\u002Fa>\n\u003C\u002Fp>\n\n&nbsp;\n\nDaytona 是一个用于执行 AI 生成代码和代理工作流的安全、弹性的基础设施运行时。我们的开源平台提供 [沙箱](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fsandboxes\u002F)，即完全隔离的可组合计算机，拥有独立的内核、文件系统、网络栈以及分配的 vCPU、RAM 和磁盘。\n\n沙箱是 Daytona 平台的核心组件，能够在不到 90 毫秒内从代码启动并开始执行，并支持 Python、TypeScript 和 JavaScript 等多种语言的代码运行。基于 OCI\u002FDocker 兼容性、大规模并行化以及无限持久化的特性，沙箱为代理工作流提供了稳定、可预测的环境。\n\n代理和开发者可以通过 Daytona 的 [SDKs](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002F#3-install-the-sdk)、[API](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Ftools\u002Fapi\u002F#daytona\u002F) 和 [CLI](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Ftools\u002Fcli\u002F) 以编程方式与沙箱交互。操作范围涵盖沙箱生命周期管理、文件系统操作、进程与代码执行，以及通过基础镜像、软件包和工具进行运行时配置。我们提供的有状态环境 [快照](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fsnapshots\u002F) 能够在会话之间保持代理的持续运行，使 Daytona 成为构建 AI 代理架构的理想基础。\n\n## 功能\n\nDaytona 提供了丰富的功能和工具来与沙箱交互。\n\n- **平台**：为采用 Daytona 标准化的组织提供治理和运营控制\n- **沙箱**：隔离的完整可组合计算机，用于执行工作负载并保留状态\n- **代理工具**：面向应用代码、代理和集成的程序化能力\n- **人类工具**：用于与沙箱交互的界面和远程会话\n- **系统工具**：用于生命周期事件和网络访问的平台级钩子和控制\n\n| 平台                                                                   | 沙箱                                                               | 代理工具                                                                       | 人类工具                                                               | 系统工具                                                  |\n| :------------------------------------------------------------------------- | :---------------------------------------------------------------------- | :-------------------------------------------------------------------------------- | :------------------------------------------------------------------------ | :------------------------------------------------------------ |\n| [组织](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Forganizations\u002F)                | [环境](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fconfiguration\u002F)               | [进程与代码执行](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fprocess-code-execution\u002F)   | [仪表板](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fgetting-started#dashboard)        | [Webhooks](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fwebhooks\u002F)             |\n| [API 密钥](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fapi-keys\u002F)                          | [快照](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fsnapshots\u002F)                     | [文件系统操作](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Ffile-system-operations\u002F)     | [Web 终端](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fweb-terminal\u002F)                 | [网络限制](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fnetwork-limits\u002F) |\n| [限制](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Flimits\u002F)                              | [声明式构建器](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fdeclarative-builder\u002F) | [语言服务器协议](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Flanguage-server-protocol\u002F) | [SSH 访问](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fssh-access\u002F)                     |                                                               |\n| [计费](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fbilling\u002F)                            | [卷](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fvolumes\u002F)                         | [计算机使用](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fcomputer-use\u002F)                         | [VNC 访问](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fvnc-access\u002F)                     |                                                               |\n| [审计日志](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Faudit-logs\u002F)                      | [区域](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fregions\u002F)                         | [MCP 服务器](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fmcp\u002F)                                    | [VPN 连接](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fvpn-connections\u002F)            |                                                               |\n| [OpenTelemetry](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fexperimental\u002Fotel-collection\u002F) |                                                                         | [Git 操作](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fgit-operations\u002F)                     | [预览](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fpreview\u002F)                           |                                                               |\n| [集成](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fguides\u002F)                        |                                                                         | [伪终端 (PTY)](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fpty\u002F)                         | [自定义预览代理](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fcustom-preview-proxy\u002F) |                                                               |\n| [安全展示](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fsecurity-exhibit\u002F)          |                                                                         | [日志流](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Flog-streaming\u002F)                       | [游乐场](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Fplayground\u002F)                     |                                                               |\n\n## 架构\n\nDaytona 平台由多个平面组件组成，每个组件都有特定的用途。每个组件的详细概述可在 [架构文档](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Farchitecture\u002F) 中找到。\n\n- **界面平面**：提供与 Daytona 交互的客户端接口\n- **控制平面**：编排所有沙盒操作\n- **计算平面**：运行和管理沙盒实例\n\n### 应用程序\n\nDaytona 平台可运行的应用程序和服务。每个目录都是一个可部署或可构建的组件，位于 [apps](apps) 目录中。\n\n- [`api`](apps\u002Fapi)：基于 NestJS 的 RESTful 服务；平台所有操作的主要入口\n- [`cli`](apps\u002Fcli)：Go 命令行界面，用于访问核心功能以与沙盒交互\n- [`daemon`](apps\u002Fdaemon)：在每个沙盒内运行的代码执行代理\n- [`dashboard`](apps\u002Fdashboard)：用于可视化管理沙盒的 Web 用户界面\n- [`docs`](apps\u002Fdocs)：文档内容；网站发布于 [daytona.io\u002Fdocs](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002F)\n- [`otel-collector`](apps\u002Fotel-collector)：用于收集 Daytona SDK 操作的跟踪和指标\n- [`proxy`](apps\u002Fproxy)：用于自定义路由和预览 URL 的反向代理\n- [`runner`](apps\u002Frunner)：为 Daytona 计算平面提供动力并运行沙盒的计算节点\n- [`snapshot-manager`](apps\u002Fsnapshot-manager)：编排沙盒快照的创建\n- [`ssh-gateway`](apps\u002Fssh-gateway)：独立的 SSH 网关，接受经过身份验证的 `ssh` 连接\n\n### 客户端库\n\n客户端库通过面向开发者的 SDK 将 Daytona 平台集成到应用程序代码中，这些 SDK 由 OpenAPI 生成的 REST 客户端和工具箱 API 客户端支持。每个目录都是针对特定语言或运行时的可发布包，位于 [libs](libs) 目录中。\n\n#### Python\n\n```bash\npip install daytona\n```\n\n使用 Python 与 Daytona 交互的独立包和库：\n\n> [`sdk-python`](libs\u002Fsdk-python) • [`api-client-python`](libs\u002Fapi-client-python) • [`api-client-python-async`](libs\u002Fapi-client-python-async) • [`toolbox-api-client-python`](libs\u002Ftoolbox-api-client-python) • [`toolbox-api-client-python-async`](libs\u002Ftoolbox-api-client-python-async)\n\n#### TypeScript\n\n```bash\nnpm install @daytona\u002Fsdk\n```\n\n使用 TypeScript 与 Daytona 交互的独立包和库：\n\n> [`sdk-typescript`](libs\u002Fsdk-typescript) • [`api-client`](libs\u002Fapi-client) • [`toolbox-api-client`](libs\u002Ftoolbox-api-client)\n\n#### Ruby\n\n```bash\ngem install daytona\n```\n\n使用 Ruby 与 Daytona 交互的独立包和库：\n\n> [`sdk-ruby`](libs\u002Fsdk-ruby) • [`api-client-ruby`](libs\u002Fapi-client-ruby) • [`toolbox-api-client-ruby`](libs\u002Ftoolbox-api-client-ruby)\n\n#### Go\n\n```bash\ngo get github.com\u002Fdaytonaio\u002Fdaytona\u002Flibs\u002Fsdk-go\n```\n\n使用 Go 与 Daytona 交互的独立包和库：\n\n> [`sdk-go`](libs\u002Fsdk-go) • [`api-client-go`](libs\u002Fapi-client-go) • [`toolbox-api-client-go`](libs\u002Ftoolbox-api-client-go)\n\n#### Java\n\nGradle (`build.gradle.kts`):\n\n```kotlin\ndependencies {\n    implementation(\"io.daytona:sdk:0.1.0\")\n}\n```\n\nMaven (`pom.xml`):\n\n```xml\n\u003Cdependency>\n  \u003CgroupId>io.daytona\u003C\u002FgroupId>\n  \u003CartifactId>sdk\u003C\u002FartifactId>\n  \u003Cversion>0.1.0\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n使用 Java 与 Daytona 交互的独立包和库：\n\n> [`sdk-java`](libs\u002Fsdk-java) • [`api-client-java`](libs\u002Fapi-client-java) • [`toolbox-api-client-java`](libs\u002Ftoolbox-api-client-java)\n\n## 部署\n\nDaytona 可作为托管服务在 [app.daytona.io](https:\u002F\u002Fapp.daytona.io) 上使用。Daytona 可以作为完全托管的服务运行，也可以作为您自行运营的开源堆栈，或者在混合部署中运行，在这种情况下，Daytona 编排沙盒，而执行则在您管理的机器上进行。\n\n- [开源部署](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Foss-deployment\u002F)：使用 Docker Compose 从 [`docker`](docker) 目录中的完整本地堆栈\n- [客户管理的计算](https:\u002F\u002Fwww.daytona.io\u002Fdocs\u002Frunners\u002F)：自定义区域和运行 Daytona 沙盒的运行器机器，部署在您自己的计算基础设施上\n\n## 快速入门\n\n1. 在 [app.daytona.io](https:\u002F\u002Fapp.daytona.io) 上创建一个账户\n2. 生成一个 [API 密钥](https:\u002F\u002Fapp.daytona.io\u002Fdashboard\u002Fkeys)\n3. 创建一个沙盒\n\n### Python SDK\n\n```py\nfrom daytona import Daytona, DaytonaConfig\n\nconfig = DaytonaConfig(api_key=\"YOUR_API_KEY\")\ndaytona = Daytona(config)\nsandbox = daytona.create()\nresponse = sandbox.process.code_run('print(\"Hello World!\")')\nprint(response.result)\n```\n\n### TypeScript SDK\n\n```jsx\nimport { Daytona } from \"@daytona\u002Fsdk\";\n\nconst daytona = new Daytona({ apiKey: \"YOUR_API_KEY\" });\nconst sandbox = await daytona.create();\nconst response = await sandbox.process.codeRun('print(\"Hello World!\")');\nconsole.log(response.result);\n```\n\n### Ruby SDK\n\n```ruby\nrequire 'daytona'\n\nconfig = Daytona::Config.new(api_key: 'YOUR_API_KEY')\ndaytona = Daytona::Daytona.new(config)\nsandbox = daytona.create\nresponse = sandbox.process.code_run(code: 'print(\"Hello World!\")')\nputs response.result\n```\n\n### Go SDK\n\n```go\npackage main\n\nimport (\n  \"context\"\n  \"fmt\"\n  \"github.com\u002Fdaytonaio\u002Fdaytona\u002Flibs\u002Fsdk-go\u002Fpkg\u002Fdaytona\"\n  \"github.com\u002Fdaytonaio\u002Fdaytona\u002Flibs\u002Fsdk-go\u002Fpkg\u002Ftypes\"\n)\n\nfunc main() {\n  config := &types.DaytonaConfig{APIKey: \"YOUR_API_KEY\"}\n  client, _ := daytona.NewClientWithConfig(config)\n  ctx := context.Background()\n  sandbox, _ := client.Create(ctx, nil)\n  response, _ := sandbox.Process.ExecuteCommand(ctx, \"echo 'Hello World!'\")\n  fmt.Println(response.Result)\n}\n```\n\n### Java SDK\n\n```java\nimport io.daytona.sdk.Daytona;\nimport io.daytona.sdk.DaytonaConfig;\nimport io.daytona.sdk.Sandbox;\nimport io.daytona.sdk.model.ExecuteResponse;\n\npublic class Main {\n  public static void main(String[] args) {\n    DaytonaConfig config = new DaytonaConfig.Builder()\n        .apiKey(\"YOUR_API_KEY\")\n        .build();\n    try (Daytona daytona = new Daytona(config)) {\n      Sandbox sandbox = daytona.create();\n      ExecuteResponse response = sandbox.getProcess().executeCommand(\"echo 'Hello World!'\");\n      System.out.println(response.getResult());\n    }\n  }\n}\n```\n\n### API\n\n```bash\ncurl 'https:\u002F\u002Fapp.daytona.io\u002Fapi\u002Fsandbox' \\\n  --request POST \\\n  --header 'Authorization: Bearer \u003CYOUR_API_KEY>' \\\n  --header 'Content-Type: application\u002Fjson' \\\n  --data '{}'\n```\n\n### CLI\n\n```bash\ndaytona create\n```\n\n## 开发\n\n### Devcontainer（完整环境）\n\n在兼容 [devcontainer](https:\u002F\u002Fcontainers.dev\u002F) 的编辑器（VS Code、GitHub Codespaces）中打开此仓库，即可获得包含所有语言、工具和支持服务的开箱即用设置。\n\n### Nix（轻量级，适合代理）\n\n如果您更喜欢在 devcontainer 外工作——或者您是执行构建命令的人工智能代理——请使用 Nix 开发 shell：\n\n```bash\n# 进入完整的开发 shell（Go + Node + Python + Ruby + JDK）\nnix develop\n\n# 或者选择特定语言的 Shell\nnix develop .#go       # Go 服务与库\nnix develop .#node     # TypeScript \u002F Node.js 应用与库\nnix develop .#python   # Python SDK 与库\nnix develop .#ruby     # Ruby SDK 与库\nnix develop .#java     # Java SDK 与库\n```\n\n**前置条件：** 安装 [Nix](https:\u002F\u002Fnixos.org\u002Fdownload\u002F) 并启用 Flakes 功能（在 `~\u002F.config\u002Fnix\u002Fnix.conf` 中添加 `experimental-features = nix-command flakes`）。\n\n对于非交互式或 CI 环境使用：\n\n```bash\nnix develop .#go --command bash -c \"go build .\u002F...\"\n```\n\n可选：安装 [direnv](https:\u002F\u002Fdirenv.net\u002F) 和 [nix-direnv](https:\u002F\u002Fgithub.com\u002Fnix-community\u002Fnix-direnv)，以便在进入项目目录时自动激活 Shell。\n\n完整 Shell 参考、项目到 Shell 的映射以及常用命令，请参阅 [`AGENTS.md`](AGENTS.md)。\n\n> **注意：** 支持性服务（PostgreSQL、Redis 等）仍通过 `docker compose -f .devcontainer\u002Fdocker-compose.yaml up` 进行管理。\n\n---\n\n## 贡献\n\n> [!NOTE]\n> Daytona 是遵循 [GNU AFFERO GENERAL PUBLIC LICENSE](LICENSE) 开源的，其版权归属所有贡献者（详见 `NOTICE` 文件）。如果您希望为本项目贡献力量，请阅读 [Developer Certificate of Origin Version 1.1](https:\u002F\u002Fdevelopercertificate.org\u002F) 和 [贡献指南](CONTRIBUTING.md)，以开始您的贡献之旅。","# Daytona 快速上手指南\n\nDaytona 是一个专为 AI 生成代码和 Agent 工作流设计的安全、弹性基础设施运行时。它提供完全隔离的“沙盒”（Sandbox），支持在 90ms 内启动，可执行 Python、TypeScript 和 JavaScript 代码，并保留状态快照。\n\n## 环境准备\n\n在开始之前，请确保满足以下条件：\n\n*   **操作系统**：Linux、macOS 或 Windows（WSL2 推荐）。\n*   **网络访问**：能够访问 `app.daytona.io`（官方托管服务）或具备 Docker 环境（如需本地部署）。\n*   **开发语言环境**（任选其一）：\n    *   Python 3.8+\n    *   Node.js 16+\n    *   Go 1.20+\n    *   Ruby 3.0+\n    *   Java 8+ (Gradle\u002FMaven)\n*   **账号与密钥**：需要注册 Daytona 账号并获取 API Key。\n\n## 安装步骤\n\n### 1. 获取 API Key\n1. 访问 [app.daytona.io](https:\u002F\u002Fapp.daytona.io) 注册账号。\n2. 登录后进入 Dashboard，导航至 **API Keys** 页面。\n3. 点击生成新的 API Key 并复制保存。\n\n### 2. 安装 SDK\n根据你使用的编程语言，选择以下一种方式安装客户端库：\n\n**Python**\n```bash\npip install daytona\n```\n\n**TypeScript \u002F Node.js**\n```bash\nnpm install @daytona\u002Fsdk\n```\n\n**Ruby**\n```bash\ngem install daytona\n```\n\n**Go**\n```bash\ngo get github.com\u002Fdaytonaio\u002Fdaytona\u002Flibs\u002Fsdk-go\n```\n\n**Java (Maven)**\n在 `pom.xml` 中添加依赖：\n```xml\n\u003Cdependency>\n  \u003CgroupId>io.daytona\u003C\u002FgroupId>\n  \u003CartifactId>sdk\u003C\u002FartifactId>\n  \u003Cversion>0.1.0\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n*(注：目前官方未提供特定的中国镜像源，如遇下载缓慢，可配置对应语言包管理器的国内镜像，如 PyPI 清华源或 npm 淘宝源)*\n\n## 基本使用\n\n以下示例展示如何初始化客户端、创建沙盒并运行一段简单的代码。请将 `YOUR_API_KEY` 替换为你刚才生成的密钥。\n\n### Python 示例\n\n```python\nfrom daytona import Daytona, DaytonaConfig\n\n# 初始化配置\nconfig = DaytonaConfig(api_key=\"YOUR_API_KEY\")\ndaytona = Daytona(config)\n\n# 创建沙盒\nsandbox = daytona.create()\n\n# 执行代码\nresponse = sandbox.process.code_run('print(\"Hello World!\")')\nprint(response.result)\n```\n\n### TypeScript 示例\n\n```typescript\nimport { Daytona } from \"@daytona\u002Fsdk\";\n\nasync function main() {\n  \u002F\u002F 初始化客户端\n  const daytona = new Daytona({ apiKey: \"YOUR_API_KEY\" });\n  \n  \u002F\u002F 创建沙盒\n  const sandbox = await daytona.create();\n  \n  \u002F\u002F 执行代码\n  const response = await sandbox.process.codeRun('print(\"Hello World!\")');\n  console.log(response.result);\n}\n\nmain();\n```\n\n### Ruby 示例\n\n```ruby\nrequire 'daytona'\n\n# 初始化配置\nconfig = Daytona::Config.new(api_key: 'YOUR_API_KEY')\ndaytona = Daytona::Daytona.new(config)\n\n# 创建沙盒\nsandbox = daytona.create\n\n# 执行代码\nresponse = sandbox.process.code_run(code: 'print(\"Hello World!\")')\nputs response.result\n```\n\n### Go 示例\n\n```go\npackage main\n\nimport (\n  \"fmt\"\n  \"github.com\u002Fdaytonaio\u002Fdaytona\u002Flibs\u002Fsdk-go\u002Fpkg\u002Fdaytona\"\n)\n\nfunc main() {\n  \u002F\u002F 初始化客户端\n  client := daytona.NewDaytona(daytona.WithApiKey(\"YOUR_API_KEY\"))\n  \n  \u002F\u002F 创建沙盒\n  sandbox, err := client.CreateSandbox()\n  if err != nil {\n    panic(err)\n  }\n  \n  \u002F\u002F 执行代码\n  response, err := sandbox.Process.CodeRun(\"print(\\\"Hello World!\\\")\")\n  if err != nil {\n    panic(err)\n  }\n  \n  fmt.Println(response.Result)\n}\n```\n\n运行上述代码后，Daytona 将在云端秒级启动一个隔离环境，执行你的代码并返回结果。你可以利用此机制构建复杂的 AI Agent 工作流或进行安全的代码测试。","某金融科技公司正在构建一个自动化代码审计系统，需要让 AI 代理频繁生成并执行高风险的 Python 脚本来检测潜在漏洞。\n\n### 没有 daytona 时\n- **安全隐患大**：直接在共享服务器或本地容器运行 AI 生成的未知代码，一旦脚本包含恶意逻辑，极易导致宿主机被入侵或数据泄露。\n- **环境不一致**：不同脚本依赖冲突频发，开发人员需花费大量时间手动配置隔离环境，导致“在我机器上能跑”的问题反复出现。\n- **启动速度慢**：传统虚拟机或重型容器启动耗时数秒甚至分钟级，无法满足 AI 代理高并发、即时响应的执行需求。\n- **状态难持久**：每次执行后环境即销毁，AI 无法在后续步骤中复用之前的计算结果或文件状态，迫使工作流断裂。\n\n### 使用 daytona 后\n- **原生安全隔离**：daytona 为每段 AI 代码提供拥有独立内核、文件系统和网络栈的沙箱，即使代码恶意也完全无法逃逸，确保宿主绝对安全。\n- **环境秒级就绪**：依托其弹性架构，沙箱从代码提交到执行仅需 90 毫秒，完美支撑 AI 代理的大规模并行任务调度。\n- **状态无缝延续**：利用快照功能，AI 代理可在多次交互中保留沙箱内的文件与变量状态，实现复杂的多步推理与调试工作流。\n- **标准化交付**：通过统一的 SDK 和 API 管理全生命周期，团队不再受困于环境差异，专注于核心算法优化而非运维琐事。\n\ndaytona 通过提供毫秒级启动且具备完整隔离性的沙箱基础设施，让企业能够安全、高效地将 AI 生成的代码真正投入生产流程。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdaytonaio_daytona_e762d9dd.png","daytonaio","Daytona","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fdaytonaio_b19566d9.png","Daytona is a Secure and Elastic Infrastructure for Running AI-Generated Code.",null,"support@daytona.io","https:\u002F\u002Fwww.daytona.io","https:\u002F\u002Fgithub.com\u002Fdaytonaio",[81,85,89,93,97,101,105,109,113,117],{"name":82,"color":83,"percentage":84},"TypeScript","#3178c6",44.7,{"name":86,"color":87,"percentage":88},"MDX","#fcb32c",23.4,{"name":90,"color":91,"percentage":92},"Go","#00ADD8",14,{"name":94,"color":95,"percentage":96},"Python","#3572A5",8.9,{"name":98,"color":99,"percentage":100},"Ruby","#701516",2.8,{"name":102,"color":103,"percentage":104},"Java","#b07219",1.9,{"name":106,"color":107,"percentage":108},"JavaScript","#f1e05a",1.2,{"name":110,"color":111,"percentage":112},"Astro","#ff5a03",0.9,{"name":114,"color":115,"percentage":116},"HTML","#e34c26",0.7,{"name":118,"color":119,"percentage":120},"SCSS","#c6538c",0.5,72253,5549,"2026-04-12T01:13:14","AGPL-3.0","Linux, macOS, Windows","未说明","未说明（沙箱实例可分配 vCPU、RAM 和磁盘，具体取决于配置）",{"notes":129,"python":130,"dependencies":131},"Daytona 是一个用于运行 AI 生成代码的安全弹性基础设施平台，核心组件为沙箱（Sandboxes）。它支持多种部署方式：托管服务、完全开源本地栈（需 Docker Compose）或混合模式。客户端可通过 Python、TypeScript、Ruby、Go、Java 等语言的 SDK 进行交互。沙箱启动时间低于 90ms，支持 Python、TypeScript 和 JavaScript 代码执行。若选择开源部署，需在本地运行包含 API、CLI、Dashboard、Runner 等组件的完整栈。","3.8+ (推测，基于标准 Python SDK 兼容性，文中未明确指定最低版本)",[132,133],"Docker (OCI 兼容)","Docker Compose (用于开源部署)",[15,13,14],[136,137,138,139,140,141,142,143],"developer-tools","agentic-workflow","ai","ai-agents","ai-runtime","code-execution","code-interpreter","ai-sandboxes","2026-03-27T02:49:30.150509","2026-04-12T14:00:08.197508",[147,152,157,162,167,172,177],{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},30692,"如何在 Daytona 中运行 macOS 开发环境？","Daytona 现已支持通过专用的 macOS Provider 运行 macOS 镜像。你可以使用 `daytona-provider-macos` 插件来创建 macOS 工作空间，从而启用原本只能在 macOS 上运行的原生开发工作流。该功能已作为独立组件实现并关闭了相关需求议题。","https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fissues\u002F1338",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},30693,"如何在 Daytona 中运行 Windows 开发环境？","Daytona 支持通过 `daytona-provider-windows` 插件运行 Windows 镜像。用户可以利用此 Provider 创建 Windows 工作空间，以执行需要 Windows 环境的原生开发任务。该功能已由社区贡献者实现并合并。","https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fissues\u002F1339",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},30694,"为什么在浏览器访问 Daytona Dashboard 时出现 'Failed to fetch' 或 'Crypto.subtle' 错误？","该错误通常是因为在非安全上下文（即非 HTTPS 环境）中访问导致的。`Crypto.subtle` API 仅在 HTTPS 下可用。如果你是通过域名部署 Daytona，请确保配置了 HTTPS；如果是本地测试，请尝试使用 `localhost` 并确保浏览器地址栏显示的是安全连接，或者检查是否有关于域名部署的特定文档配置遗漏。","https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fissues\u002F2621",{"id":163,"question_zh":164,"answer_zh":165,"source_url":166},30695,"Daytona 中的 'Project' 和 'Workspace' 概念有什么区别？","'Project' 是围绕单个代码仓库（或本地项目文件夹）的上下文边界，其命名源自 'Devfile' 规范，用于定义项目内容的来源（如 Git 仓库或 ZIP 文件）。'Workspace' 则类似于 Devfile 结构中的运行环境概念。尽管有建议将 'Workspace' 重命名为 'Dev Environment' 以减少歧义，但目前的架构中 'Project' 作为 'Workspace' 的一部分是合理且保留的，以符合行业标准规范。","https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fissues\u002F600",{"id":168,"question_zh":169,"answer_zh":170,"source_url":171},30696,"如何为 Daytona 仪表盘表格保存排序状态？","Daytona 仪表盘现已支持持久化表格的排序状态。系统会将用户的排序选择保存在浏览器的 `localStorage` 中，并在页面刷新或重新加载时自动恢复之前的排序设置，无需用户每次重新调整。","https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fissues\u002F1782",{"id":173,"question_zh":174,"answer_zh":175,"source_url":176},30697,"如何在 Daytona SSH 连接中启用 X11 转发以运行图形界面应用？","用户可以通过在 `daytona ssh` 命令中添加标志（如 `-X` 或 `-Y`）来启用 X11 转发。这使得在远程 Daytona 工作空间中运行 GUI 应用程序成为可能。底层 SSH 服务器实现已更新以支持 X11 请求，具体配置可参考 Linux、macOS 或 Windows 上的标准 SSH X11 转发指南。","https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fissues\u002F1206",{"id":178,"question_zh":179,"answer_zh":180,"source_url":171},30698,"未分配给我的 Issue 我可以参与解决吗？","是的，你可以直接开始处理任何未被分配的 Issue，无需等待维护者正式指派。维护者明确表示：\"No need to get assigned. You're free to work on any unassigned issue\"（无需被指派，你可以自由处理任何未分配的问题）。但在提交 PR 前，请务必查阅仓库的贡献指南。",[182,187,192,197,202,207,212,217,222,227,232,237,242,247,252,257,262,267,272,277],{"id":183,"version":184,"summary_zh":185,"released_at":186},222545,"v0.164.0","## 0.164.0（2026-04-10）\n\n### 🩹 修复\n\n- **api：** 对邀请邮件中的组织名称进行转义，以防止 URL 自动链接（[#4341](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4341)）\n- **api：** 当未配置 svix 时返回 503 错误（[#4424](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4424)）\n- **api：** 沙箱运行器加入查询的 UUID（[#4425](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4425)）\n- **api：** 处理 JWT 策略中的瞬时错误（[#4423](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4423)）\n- **api：** 截断错误信息审计日志作业（[#4426](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4426)）\n- **daemon：** 在输出标签器清空后写入会话退出码（[#4422](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4422)）\n- **proxy：** 成功验证后移除认证头（[#4419](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4419)）\n- **sdk：** 连接池饱和警告（[#4386](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4386)）\n- **toolbox：** 在多部分下载中为 Unicode 文件名添加 RFC 5987 编码（[#4331](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4331)）\n\n### 重构\n\n- 认证守卫（[#4149](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4149)）\n\n### 杂项\n\n- 同步 v0.163.0 的 go.sum（[#4407](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4407)）\n- **ci：** 当 set-version 更改包版本时使 Nx 构建缓存失效（[#4410](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4410)）\n- **runner：** Dockerfile 中存在冲突的 Go 依赖项（[#4420](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4420)）\n- **sdk-go：** 升级至 v0.164.0（[#4428](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4428)）\n\n### ❤️ 感谢\n\n- 布鲁诺·格尔巴瓦茨 @brunogrbavac\n- 法布扬·武奇纳\n- 伊万·达格利奇 @idagelic\n- 米尔科·贾亚 @MDzaja\n- 托马·普利亚克 @Tpuljak\n- Zim","2026-04-10T10:24:38",{"id":188,"version":189,"summary_zh":190,"released_at":191},222546,"v0.163.0","## 0.163.0（2026-04-09）\n\n### 🚀 功能\n\n- **api、dashboard：** 在审计日志中包含 Actor API 密钥（[#3695](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3695)）\n- **daemon：** 将 daytona_snapshot 作为 OTel 资源属性发出（[#4400](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4400)）\n- **daemon：** 自定义 OTel 资源标签（[#4402](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4402)）\n- **daemon、sdk-python、sdk-typescript：** 统一类型化错误（[#4228](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4228)）\n- **docs：** 添加 Agent 技能参考（[#4403](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4403)）\n\n### 🩹 修复\n\n- **api：** 改进未授权情况下的 API 响应（[#4344](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4344)）\n\n### 重构\n\n- **api：** 自定义快照存储库（[#4284](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4284)）\n\n### 杂项\n\n- 同步 v0.162.0 的 go.sum（[#4385](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4385)）\n- **ci：** 确保在 Docker 构建作业中生成 go.work.sum（[#4388](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4388)）\n- **sdk-go：** 升级至 v0.163.0（[#4405](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4405)）\n- **security：** 添加权限块和检出加固措施（[#4382](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4382)）\n\n### ❤️ 感谢\n\n- Akhilesh Shastri @as-flow\n- Ante Projić @aprojic\n- Fabjan Vučina\n- Ivan Dagelic @idagelic\n- Juraj Štefanić @stefanicjuraj\n- Muhammad Hashmi @mu-hashmi\n- Toma Puljak @Tpuljak","2026-04-09T11:08:59",{"id":193,"version":194,"summary_zh":195,"released_at":196},222547,"v0.162.0","## 0.162.0 (2026-04-08)\n\n### 🚀 功能\n\n- **docs:** 添加动态元数据和 Open Graph 支持 ([#4217](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4217))\n- **runner:** 引入 BuildKit 支持 ([#4215](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4215))\n\n### 🩹 修复\n\n- **computer-use:** 修复滚动操作无限阻塞的问题 ([#4353](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4353))\n- **daemon:** 为 wsClient 的写入加锁 ([#4178](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4178))\n- **runner:** 在使用 rsync 复制时保留稀疏文件，以防止配额溢出 ([#4368](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4368))\n- **sdk-python:** 修复 async download_files 在分块边界处丢失 multipart 头部的问题 ([#4365](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4365))\n- **sdk-python、sdk-ruby:** 解决 demux_log 中 O(n²) 的 GIL 阻塞漏洞 ([#4366](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4366))\n\n### 杂项\n\n- 同步 v0.161.0 的 go.sum 文件 ([#4348](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4348))\n- 为 Java Maven Central 发布的 CI 系统依赖中添加 zip 工具 ([#4367](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4367))\n- 添加 Nix 和 AGENTS.md 文档 ([#4373](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4373))\n- 配置 Nx Cloud 以实现远程缓存 ([#4374](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4374))\n- **api、dashboard、docs、opencode-plugin、sdk-typescript:** 将所有 TypeScript 包从 @daytonaio\u002F* 重命名为 @daytona\u002F*，并进行双发布 ([#4340](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4340))\n- **ci:** 将密钥的作用域限制到作业\u002F步骤级别，以减少影响范围 ([#4334](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4334))\n- **sdk-go:** 升级到 v0.162.0 ([#4383](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4383))\n\n### ❤️ 感谢\n\n- Ante Projić @aprojic\n- Bruno Grbavac @brunogrbavac\n- Ivan Dagelic @idagelic\n- Juraj Štefanić @stefanicjuraj\n- Lovre Pešut @rovle\n- Mirko Džaja @MDzaja\n- Toma Puljak @Tpuljak","2026-04-08T13:04:05",{"id":198,"version":199,"summary_zh":200,"released_at":201},222548,"v0.161.0","## 0.161.0 (2026-04-03)\n\n### 🚀 功能\n\n- **docs:** 添加签名预览 URL 的 Go SDK 示例 ([#4295](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4295))\n- **sdk-java:** 实现 Java SDK ([#4320](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4320))\n\n### 🩹 修复\n\n- **dashboard:** 以核数显示 CPU 使用率 ([#4335](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4335))\n- **docs:** 添加代理源站处理和请求头过滤功能 ([#4343](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4343))\n- **sdk:** 连接池大小配置 ([#4336](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4336))\n\n### 杂项\n\n- 同步 v0.160.0 的 go.sum 文件 ([#4318](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4318))\n- 更新 Mastra 指南的依赖版本 ([#4319](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4319))\n- **docs:** 更新 Ruby SDK 的 README 文件 ([#4300](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4300))\n- **sdk-go:** 升级至 v0.161.0 ([#4346](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4346))\n\n### ❤️ 感谢\n\n- Ivan Dagelic @idagelic\n- Juraj Štefanić @stefanicjuraj\n- Mirko Džaja @MDzaja\n- Mislav Ivanda @mislavivanda\n- Toma Puljak @Tpuljak","2026-04-03T15:02:36",{"id":203,"version":204,"summary_zh":205,"released_at":206},222549,"v0.160.0","## 0.160.0（2026-04-02）\n\n### 🚀 功能\n\n- **仪表板：** 将创建对话框迁移到表单页面（[#4252](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4252)）\n- **文档：** 添加自定义 404 页面，并提供相关建议（[#4231](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4231)）\n- **文档：** 将 sitemap.xml 重定向至 sitemap-index.xml（[#4289](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4289)）\n- **文档：** 添加沙箱生命周期状态、描述及引用（[#4262](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4262)）\n- **文档：** 添加自动停止行为，并更新生命周期状态引用（[#4310](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4310)）\n- **代理：** 缩短无效认证缓存的 TTL（[#4291](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4291)）\n- **SDK：** 在创建操作中引入指数退避机制（[#4288](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4288)）\n\n### 🩹 修复\n\n- **API：** 在 v2 沙箱启动\u002F创建\u002F恢复时重置备份状态（[#4250](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4250)）\n- **API：** 快照移除事件中读取 ID 时出现未定义问题（[#4305](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4305)）\n- **API：** 快照操作中 UUID 解析失败导致 500 错误（[#4306](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4306)）\n- **CI：** 修复 workflow_dispatch 工作流中的模板注入漏洞（[#4299](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4299)）\n- **守护进程：** 从文件中加载会话命令（[#4235](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4235)）\n- **仪表板：** 仅允许撤销一次性账单（[15abf50ed](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F15abf50ed)）\n- **仪表板：** 移除支付处理器检查（[874e80370](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F874e80370)）\n- **文档：** 更新支持联系方式（[#4294](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4294)）\n- **文档：** 移除工具箱操作（[#4304](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4304)）\n- **运行器：** 在移除快照时，使用资源 ID 获取镜像名称（[#4290](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4290)）\n- **SDK-Python、SDK-TypeScript、SDK-Ruby：** 使用 printf 替代 echo 进行环境变量解码（[#4297](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4297)）\n- **SSH 网关：** 从日志输出中移除敏感令牌（[#4302](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4302)）\n\n### 重构\n\n- **API：** 在进行中响应中包含沙箱状态（[#4307](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4307)）\n\n### 杂项\n\n- 同步 v0.159.0 的 go.sum 文件（[#4287](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4287)）\n- 移除未使用的 Tailwind CQS 包（[#4285](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4285)）\n- **SDK-Go：** 升级至 v0.160.0（[#4317](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4317)）\n\n### ❤️ 感谢\n\n- Ante Projić @aprojic\n- Ivan Dagelic @idagelic\n- Juraj Štefanić @stefanicjuraj\n- Mirko Džaja @MDzaja\n- Robert Pavlinic @rpavlini\n- rpavlini\n- Toma Puljak @Tpuljak\n- Zim","2026-04-02T13:08:54",{"id":208,"version":209,"summary_zh":210,"released_at":211},222550,"v0.159.0","## 0.159.0（2026-03-31）\n\n### 🚀 功能\n\n- **api:** 废弃快照运行器清理逻辑（[#4272](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4272)）\n- **docs:** 添加 OpenAPI 规范引用（[#3546](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3546)）\n- **sdk-go:** 在 Go SDK 中对 GetPreviewLink 进行签名（[#4211](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4211)）\n\n### 🩹 修复\n\n- **api:** 重新排序运行器控制器路由（[#4263](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4263)）\n- **api:** 更新组织邀请状态（[#4265](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4265)）\n- **api:** 处理沙箱创建事件中的错误（[#4269](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4269)）\n- **api:** 在沙箱同步错误时更新 `updateWhere` 条件（[#4268](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4268)）\n- **api:** 预览访问的 Redis 键（[#4279](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4279)）\n- **api:** v2 归档中的竞态条件（[#4270](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4270)）\n- **api:** 失败认证的速率限制拦截（[#4282](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4282)）\n- **api-client-python:** 序列化 datetime 值（[#4208](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4208)）\n- **dashboard:** 将失败的付款账单设为可支付状态（[#4259](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4259)）\n- **dashboard:** 集中管理隐私同意状态并进行同步（[#4075](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4075)）\n- **docs:** 更新计费和限制信息（[#4015](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4015)）\n\n### 杂项\n\n- 同步 v0.158.1 的 go.sum 文件（[#4254](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4254)）\n- 加强 GitHub Actions 工作流的安全性（[#4249](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4249)）\n- 添加供应链包龄隔离机制（[#4283](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4283)）\n- **docs:** 更新 Python SDK 的 README 文件（[#4261](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4261)）\n- **sdk、api-client、toolbox-api-client:** 设置自定义 User-Agent 头，并统一 sdk-* 源代码文件名（[#4266](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4266)）\n- **sdk-go:** 升级至 v0.159.0（[#4286](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4286)）\n- **sdk-python:** 添加 isort 的 `known_first_party` 配置，以解决本地与 CI 环境中导入顺序不一致的问题（[#4255](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4255)）\n\n### ❤️ 感谢\n\n- Ante Projić @aprojic\n- dagecko\n- Fabjan Vučina\n- Ivan Dagelic @idagelic\n- Juraj Štefanić @stefanicjuraj\n- Mirko Džaja @MDzaja\n- Muhammad Hashmi @mu-hashmi\n- Ravitez Dondeti @dondetir\n- Robert Pavlinic @rpavlini\n- Saphal @saphalpdyl\n- Toma Puljak @Tpuljak","2026-03-31T12:43:49",{"id":213,"version":214,"summary_zh":215,"released_at":216},222551,"v0.158.1","## 0.158.1（2026-03-28）\n\n### 🩹 修复\n\n- **api:** 向迁移数据源添加 SSL 配置 ([#4246](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4246))\n\n### 重构\n\n- **api:** 沙箱最后活动时间 ([#3993](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3993))\n\n### 杂项\n\n- 同步 v0.158.0 的 go.sum 文件 ([#4245](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4245))\n- **sdk-go:** 升级至 v0.158.1 ([#4253](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4253))\n\n### ❤️ 感谢\n\n- Fabjan Vučina\n- Toma Puljak @Tpuljak","2026-03-28T19:00:36",{"id":218,"version":219,"summary_zh":220,"released_at":221},222552,"v0.158.0","## 0.158.0（2026-03-27）\n\n### 🚀 功能\n\n- **docs:** 添加强制停止沙箱功能 ([#4223](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4223))\n\n### 🩹 修复\n\n- **api:** 构建时优先使用最后一个入口点 ([#4239](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4239))\n- **api:** 允许在备份进行中执行沙箱操作 ([#4197](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4197))\n- **api:** 允许为 BUILD_SNAPSHOT 和 PULL_SNAPSHOT 作业设置更长的超时时间 ([#4237](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4237))\n- **api:** 处理快照大小的逻辑 ([#4212](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4212))\n- **api:** 处理沙箱操作冲突 ([#4241](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4241))\n- **daemon:** 返回空的 search_files 结果 ([#4207](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4207))\n- **docs:** 添加关于实验性沙箱大小调整的说明 ([#4234](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4234))\n- **sdk-python:** 为 process.exec() 添加缺失的 _request_timeout 参数 ([#4236](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4236))\n\n### 重构\n\n- **dashboard:** 将剩余实体迁移至 React Query ([#4190](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4190))\n\n### 杂项\n\n- 同步 v0.157.0 的 go.sum 文件 ([#4221](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4221))\n- **dev:** 添加 kill-ports.sh 脚本，用于终止悬空的应用实例 ([#4240](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4240))\n- **docs:** 更新 RL 指南的结构 ([#4219](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4219))\n- **sdk-go:** 升级至 v0.158.0 ([#4242](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4242))\n\n### ❤️ 感谢\n\n- Ivan Dagelic @idagelic\n- Juraj Štefanić @stefanicjuraj\n- Lovre Pešut @rovle\n- Mislav Ivanda @mislavivanda\n- Muhammad Hashmi @mu-hashmi\n- Robert Pavlinic @rpavlini\n- Toma Puljak @Tpuljak","2026-03-27T13:57:02",{"id":223,"version":224,"summary_zh":225,"released_at":226},222553,"v0.157.0","## 0.157.0 (2026-03-26)\n\n### 🚀 功能\n\n- **api:** 清除失败的构建缓存 ([#4160](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4160))\n- **api,runner,sdk:** 强制停止沙箱 ([#4172](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4172))\n- **guides:** OpenEnv FinQA 指南，包含单集演示和 GRPO 训练 ([#3979](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3979))\n- **sdk-typescript,sdk-python,sdk-ruby:** 仅从 dotenv 文件中加载 DAYTONA_ 环境变量，避免污染环境变量 ([#4186](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4186))\n\n### 🩹 修复\n\n- **api:** 防止过时的沙箱写入 ([#4146](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4146))\n- **api:** 迁移漂移 ([#3961](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3961))\n- **api:** 声明式构建过时任务调度 ([#4159](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4159))\n- **api:** 在沙箱状态同步中避免就地修改快照 ([#4187](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4187))\n- **daemon:** 关闭同步会话的标准输入，并跟踪异步持有进程 ([#4107](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4107))\n- **otel:** 将 OTEL SDK 升级至 v1.42.0 ([#4213](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4213))\n- **runner:** 传递启用沙箱间网络的配置项 ([#4195](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4195))\n- **sdk-python:** 在连接过时时重试请求 ([#4214](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4214))\n- **sdk-python:** 展示 upload_files 错误详情 ([#4048](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4048), [#4206](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4206))\n\n### 重构\n\n- **sdk-python:** 使用惰性导入优化 Python SDK 的导入时间 ([#4192](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4192))\n\n### 杂项\n\n- 同步 v0.156.0 的 go.sum 文件 ([#4194](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4194))\n- **docs:** 更新 TypeScript SDK 的 README 和包元数据 ([#4185](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4185))\n- **docs:** 更新 README 文件 ([#4176](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4176))\n- **sdk-go:** 升级至 v0.157.0 ([#4220](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4220))\n\n### ❤️ 感谢\n\n- Abi @LarytheLord\n- Fabjan Vučina\n- Ivan Dagelic @idagelic\n- Juraj Štefanić @stefanicjuraj\n- Lovre Pešut @rovle\n- Mirko Džaja @MDzaja\n- Muhammad Hashmi @mu-hashmi\n- Toma Puljak @Tpuljak","2026-03-26T14:34:01",{"id":228,"version":229,"summary_zh":230,"released_at":231},222554,"v0.156.0","## 0.156.0（2026-03-25）\n\n### 🚀 功能\n\n- **仪表板：** 为 cmdk 添加 PostHog 跟踪 ([#4081](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4081))\n- **仪表板：** React Query 审计日志 ([#4179](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4179))\n- **文档：** 添加组织相关引用 ([#4097](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4097))\n- **文档：** 增加已签名预览 URL 令牌过期时间详情 ([#4188](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4188))\n- **运行器：** 启用沙箱间网络配置 ([#4122](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4122))\n\n### 🩹 修复\n\n- **守护进程、SDK：** 支持 exec 和 code_run 的大型命令 ([#3918](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3918))\n- **运行器：** 在运行器上拉取快照 ([#4177](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4177))\n\n### 杂项\n\n- 同步 v0.155.0 的 go.sum 文件 ([#4184](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4184))\n- **SDK-Go：** 升级至 v0.156.0 ([#4193](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4193))\n\n### ❤️ 感谢\n\n- Juraj Štefanić @stefanicjuraj\n- Luka Brecic @lbrecic\n- Mirko Džaja @MDzaja\n- Robert Pavlinic @rpavlini\n- Toma Puljak @Tpuljak","2026-03-25T13:08:44",{"id":233,"version":234,"summary_zh":235,"released_at":236},222555,"v0.155.0","## 0.155.0 (2026-03-24)\n\n### 🚀 Features\n\n- Amp Code guide ([#4038](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4038))\n- **common-go:** telemetry TLS client config support ([#4182](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4182))\n\n### 🩹 Fixes\n\n- match backup completion to snapshot tag ([#4145](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4145))\n- **api:** handle svix 404 error as not found exception ([#4175](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4175))\n- **daemon:** timeout for process.exec ([#4147](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4147))\n\n### Chores\n\n- sync go.sum for v0.154.0 ([#4167](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4167))\n- **dev:** disable node_modules file watchers ([#4174](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4174))\n- **guides:** update model in DSPy RLMs guide and add validation code ([#4113](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4113))\n- **sdk-go:** bump to v0.155.0 ([#4183](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4183))\n\n### ❤️ Thank You\n\n- Bruno Grbavac @brunogrbavac\n- James Murdza\n- Lovre Pešut @rovle\n- Toma Puljak @Tpuljak\n- Vedran Jukic","2026-03-24T14:05:07",{"id":238,"version":239,"summary_zh":240,"released_at":241},222556,"v0.154.0","## 0.154.0 (2026-03-20)\n\n### 🚀 Features\n\n- **docs:** add entrypoint session details ([#4163](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4163))\n\n### 🩹 Fixes\n\n- **api:** recover recoverable sandboxes in-place when runner is draining ([#4029](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4029))\n- **api:** reduce log spam on archive ([#4152](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4152))\n- **api:** allow region resource access to sandbox ([#4161](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4161))\n- **api:** prime last activity at ([#4094](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4094))\n- **api:** guard for get single sandbox ([#4165](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4165))\n- **dashboard:** check WRITE_SANDBOXES permission before rendering create sandbox button ([#4162](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4162))\n- **docs:** README.md go example references wrong package for options ([#4130](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4130))\n- **python-sdk:** delete with timeout ([#4155](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4155))\n- **runner:** handle pulling snapshot on create ([#4114](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4114))\n- **runner:** use single fuse mount per volume with bind subdirs for subpaths ([#4047](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4047))\n\n### Chores\n\n- sync go.sum for v0.153.0 ([#4151](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4151))\n- **sdk-go:** bump to v0.154.0 ([#4166](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4166))\n\n### ❤️ Thank You\n\n- Bruno Grbavac @brunogrbavac\n- Fabjan Vučina\n- Ivan Dagelic @idagelic\n- Juraj Štefanić @stefanicjuraj\n- Luka Brecic @lbrecic\n- Matej Risek\n- Toma Puljak @Tpuljak","2026-03-20T13:15:43",{"id":243,"version":244,"summary_zh":245,"released_at":246},222557,"v0.153.0","## 0.153.0 (2026-03-19)\n\n### 🚀 Features\n\n- **api:** cleanup stale build fails ([#4046](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4046))\n- **api,runner:** add docker healthcheck to runner ([#3941](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3941))\n- **daemon:** entrypoint as session ([#3189](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3189))\n- **docs:** add network allow\u002Fblock list format and validation ([#4124](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4124))\n- ⚠️  **docs,sdk:** remove find one method ([#4115](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4115))\n\n### 🩹 Fixes\n\n- **api:** remove state lock on job completion ([#4148](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4148))\n- **cli:** snapshot delete by name ([#4129](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4129))\n\n### Chores\n\n- sync go.sum for v0.152.1 ([#4136](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4136))\n- go work sync and poetry lock after dependabot updates ([df5920f6f](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002Fdf5920f6f))\n- **deps:** bump github.com\u002Fcloudflare\u002Fcircl in \u002Fapps\u002Fdaemon ([715c2d907](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F715c2d907))\n- **deps:** bump basic-ftp from 5.0.5 to 5.2.0 ([6b7b4a93c](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F6b7b4a93c))\n- **deps:** bump rollup from 4.52.0 to 4.59.0 ([d00b9bd28](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002Fd00b9bd28))\n- **deps:** bump svgo from 2.8.0 to 2.8.2 ([5b9a0ec36](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F5b9a0ec36))\n- **deps:** bump immutable from 5.1.3 to 5.1.5 ([1f3d70c85](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F1f3d70c85))\n- **deps:** bump github.com\u002Fdocker\u002Fcli in \u002Fapps\u002Frunner ([640494e3e](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F640494e3e))\n- **deps:** bump tar from 7.5.7 to 7.5.11 ([f46a33393](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002Ff46a33393))\n- **deps:** bump devalue from 5.6.3 to 5.6.4 ([76b05def8](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F76b05def8))\n- **deps:** bump yauzl from 3.2.0 to 3.2.1 ([11be0c767](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F11be0c767))\n- **deps:** bump h3 from 1.15.5 to 1.15.8 ([bbdf6e9a8](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002Fbbdf6e9a8))\n- **deps:** bump socket.io-parser from 4.2.5 to 4.2.6 ([9dd51f9d2](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F9dd51f9d2))\n- **deps:** bump google.golang.org\u002Fgrpc in \u002Flibs\u002Fcommon-go ([ae3cf8e26](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002Fae3cf8e26))\n- **deps-dev:** bump nokogiri from 1.19.0 to 1.19.1 ([fe6392236](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002Ffe6392236))\n- **deps-dev:** bump tornado from 6.5.4 to 6.5.5 ([b252af289](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002Fb252af289))\n- **sdk-go:** bump to v0.153.0 ([#4150](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4150))\n\n### ⚠️  Breaking Changes\n\n- **docs,sdk:** The find_one\u002FfindOne method is being removed across all SDK languages (Python, TypeScript, Go, Ruby). All sandbox retrieval should be done via get using an ID or a name. If you're relying on label-based lookups, you'll need to switch to custom sandbox names before upgrading.\n\n### ❤️ Thank You\n\n- Fabjan Vučina\n- Ivan Dagelic @idagelic\n- Juraj Štefanić @stefanicjuraj\n- Luka Brecic\n- Toma Puljak @Tpuljak","2026-03-19T14:24:03",{"id":248,"version":249,"summary_zh":250,"released_at":251},222558,"v0.152.1","## 0.152.1 (2026-03-18)\n\n### 🩹 Fixes\n\n- **api:** merge two start action methods ([#4133](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4133))\n- **api,runner:** change allocated metrics to double precision ([#4120](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4120))\n\n### Chores\n\n- sync go.sum for v0.152.0 ([#4127](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4127))\n- **sdk-go:** bump to v0.152.1 ([#4135](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4135))\n\n### ❤️ Thank You\n\n- Luka Brecic\n- Toma Puljak","2026-03-18T15:06:11",{"id":253,"version":254,"summary_zh":255,"released_at":256},222563,"v0.148.0","## 0.148.0 (2026-02-27)\n\n### 🚀 Features\n\n- **api,runner:** job update validation and retries ([#3959](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3959))\n- **dashboard:** webhooks page ([15e19e21e](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F15e19e21e))\n- **dashboard:** add per-sandbox spending ([#3953](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3953))\n- **dashboard:** privacy preferences ([5f2de4603](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F5f2de4603))\n- **docs:** add OpenClaw guide using TypeScript SDK ([#3926](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3926))\n\n### 🩹 Fixes\n\n- **api:** bump last used at on snapshot activation ([#3966](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3966))\n- **api:** remove rate limit from hasSandboxAccess ([#3972](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3972))\n- **common-go:** don't write http errors if headers were already written ([#3962](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3962))\n- **daemon:** add graceful shutdown with OTel flush ([#3893](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3893))\n- **proxy:** token validation cache poison, retries ([#3958](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3958))\n\n### Refactor\n\n- **api,docs,sdk:** include toolbox-proxy-url in the SandboxDto ([#3895](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3895))\n\n### Chores\n\n- sync go.sum for v0.147.0 ([#3951](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3951))\n- **sdk-go:** bump to v0.148.0 ([#3976](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3976))\n\n### ❤️ Thank You\n\n- Ivan Dagelic @idagelic\n- James Murdza\n- Luka Brecic @lbrecic\n- Mirko Džaja @MDzaja\n- Robert Pavlinic @rpavlini\n- Toma Puljak @Tpuljak","2026-02-27T15:45:05",{"id":258,"version":259,"summary_zh":260,"released_at":261},222564,"v0.147.0","## 0.147.0 (2026-02-26)\n\n### 🚀 Features\n\n- **dashboard:** playground ux tweaks ([#3914](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3914))\n- **docs:** add security exhibit ([#3877](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3877))\n\n### 🩹 Fixes\n\n- **dashboard:** sandbox sheet o11y scroll ([#3935](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3935))\n- **proxy,otel-collector:** remove cache has before get ([#3940](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3940))\n- **runner:** don't cancel context for telemetry init ([#3936](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3936))\n\n### Chores\n\n- sync go.sum for v0.146.0 ([#3913](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3913))\n- add git to dockerfiles that depend on it ([#3917](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3917))\n- pin rubocop to 1.84.2 version ([#3944](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3944))\n- **sdk-go:** bump to v0.147.0 ([#3950](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3950))\n\n### ❤️ Thank You\n\n- Juraj Štefanić @stefanicjuraj\n- Mirko Džaja @MDzaja\n- Robert Pavlinic @rpavlini\n- Toma Puljak @Tpuljak","2026-02-26T12:32:26",{"id":263,"version":264,"summary_zh":265,"released_at":266},222559,"v0.152.0","## 0.152.0 (2026-03-17)\n\n### 🚀 Features\n\n- **docs:** add sandbox details page ([#4062](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4062))\n\n### 🩹 Fixes\n\n- **api:** handle pulling snapshot state ([#4111](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4111))\n- **api:** change timeout error to build failed ([#4125](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4125))\n- **daemon:** closing pty session panic ([#4110](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4110))\n- **dashboard:** sort tiers before rendering ([#4118](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4118))\n- **dashboard:** left-align create button to prevent overlap with widget ([#4119](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4119))\n- **playground:** prevent unnecessary CreateSandboxFromSnapshotParams in code snippets ([#4102](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4102))\n- **runner:** treat code 255 as stopped ([#4109](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4109))\n- **runner:** return nil on sandbox not found ([#4105](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4105))\n\n### Chores\n\n- sync go.sum for v0.151.0 ([#4103](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4103))\n- Update SECURITY.md with VDP scope and exclusion policy ([#4003](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4003))\n- improve CI cache ([#4116](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4116))\n- fix release workflow ([0cda8b078](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F0cda8b078))\n- **docs:** consistency improvements, fixes, and updates across guides ([#4104](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4104))\n- **docs:** reorder otel collection sections ([#4121](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4121))\n- **sdk-go:** bump to v0.152.0 ([#4126](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4126))\n\n### ❤️ Thank You\n\n- Ante Projić @aprojic\n- Ivan Dagelic\n- Juraj Štefanić @stefanicjuraj\n- Mislav Ivanda @mislavivanda\n- Toma Puljak","2026-03-17T15:29:40",{"id":268,"version":269,"summary_zh":270,"released_at":271},222560,"v0.151.0","## 0.151.0 (2026-03-13)\n\n### 🚀 Features\n\n- **api:** disable notification gateway option ([#4079](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4079))\n- **dashboard:** spending page touchup ([96e19412e](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F96e19412e))\n- **dashboard:** sandbox details page ([4e42743c3](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fcommit\u002F4e42743c3))\n- **dashboard:** implement create sandbox drawer ([#3928](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3928))\n- **dashboard:** usage timeline chart ([#4095](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4095))\n- **docs:** add amazon elastic container registry ([#3923](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3923))\n- **docs:** add api keys references ([#4071](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4071))\n- **docs:** add search index filtering ([#4085](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4085))\n- **docs:** add create sandbox dialog ([#3943](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3943))\n- **proxy:** redis username ([#4031](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4031))\n\n### 🩹 Fixes\n\n- **api:** unexpected pulling snapshot state ([#4072](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4072))\n- **api:** assigning sandbox to bad runner ([#4099](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4099))\n- **api:** use insert for job and audit log tables ([#4073](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4073))\n- **api:** allow deletion of volumes stuck in error state ([#4089](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4089))\n- **api:** enable offline queue redis ([#4100](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4100))\n- **api,runner:** handle destroy operations and state on runner ([#4035](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4035))\n- **daemon:** preemptive CU error detection ([#4083](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4083))\n- **daemon:** cu plugin crash ([#3232](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3232))\n- **dashboard:** shorter sandbox lifecycle in playground ([#4086](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4086))\n- **docs:** modify security exhibit wording and formatting ([#4064](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4064))\n- **docs:** update oss deployment note ([#4098](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4098))\n- **proxy:** propagate api error messages to user ([#4076](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4076))\n- **runner:** persist fuse mounts on runner restart ([#4093](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4093))\n\n### Refactor\n\n- **api:** swap strategy order in combined auth guard ([#4077](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4077))\n- **api:** poll jobs redis conn handling ([#4078](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4078))\n- **docs:** update human tools ([#3697](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3697))\n\n### Chores\n\n- sync go.sum for v0.150.0 ([#4068](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4068))\n- add .claude\u002Fworktrees to gitignore ([#4092](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4092))\n- add runner deb package to release assets ([#4090](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4090))\n- improve docker build caching ([#4096](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4096))\n- **sdk-go:** bump to v0.151.0 ([#4101](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4101))\n\n### ❤️ Thank You\n\n- Bruno Grbavac @brunogrbavac\n- Fabjan Vučina\n- Ivan Dagelic @idagelic\n- Juraj Štefanić @stefanicjuraj\n- Luka Brecic @lbrecic\n- Robert Pavlinic @rpavlini\n- Toma Puljak @Tpuljak","2026-03-13T14:55:37",{"id":273,"version":274,"summary_zh":275,"released_at":276},222561,"v0.150.0","## 0.150.0 (2026-03-10)\n\n### 🚀 Features\n\n- **api:** include regions in get snapshot ([#4045](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4045))\n- **api,runner,daemon:** send org and region id as labels in OTel ([#4008](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4008))\n- **daemon:** send entrypoint logs to OTel ([#3983](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3983))\n- **dashboard:** shimmer skeleton animation ([#4005](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4005))\n- **dashboard:** bootstrap storybook ([#3934](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3934))\n- **dashboard:** open pylon from sidebar ([#3986](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3986))\n- **docs:** add vulnerability disclosure program to security exhibit ([#4037](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4037))\n- **docs:** add snapshot lifecycle ([#3811](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3811))\n- **docs:** add OpenCode plugin guide ([#3925](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3925))\n- **runner:** add retry on ip address not found ([#4063](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4063))\n\n### 🩹 Fixes\n\n- **api:** allow get by id for general snapshots ([#4033](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4033))\n- **api:** reduce svix app portal access error log severity ([#4059](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4059))\n- **docs:** modify architecture wording ([#3997](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3997))\n- **docs:** update computer use references and wording ([#4057](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4057))\n- **opencode-plugin:** loading error in published npm package ([#3980](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3980))\n- **proxy:** dont log context canceled errors on last activity update ([#4055](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4055))\n- **proxy:** add forwarded for ip ([#4056](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4056))\n- **proxy:** cleanup and expand retries ([#4060](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4060))\n- **proxy:** add auth to get sandbox and snapshot logs ([#4065](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4065))\n- **runner:** exponential backoff for docker info on init ([#4036](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4036))\n- **runner:** wait for daemon before version check ([#4061](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4061))\n\n### Refactor\n\n- **docs:** update mcp server ([#3751](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3751))\n- **docs:** update declarative builder ([#3750](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3750))\n- **docs:** update volumes ([#3738](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3738))\n- **docs:** update network limits ([#3781](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3781))\n- **sdk-python:** replace multipart dependecy with python-multipart ([#3787](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3787))\n\n### Chores\n\n- sync go.sum for v0.149.0 ([#4018](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4018))\n- add GONOSUMDB to release workflow env ([#4022](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4022))\n- add serve-slim yarn task ([#4066](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4066))\n- **api:** use debian slim instead of alpine for docker image ([#4021](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4021))\n- **docs:** update index (quick start) ([#3812](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3812))\n- **sdk-go:** bump to v0.150.0 ([#4067](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4067))\n\n### ❤️ Thank You\n\n- Ante Projić @aprojic\n- Fabjan Vučina\n- Ivan Dagelic @idagelic\n- James Murdza\n- Juraj Štefanić @stefanicjuraj\n- Mirko Džaja @MDzaja\n- Robert Pavlinic @rpavlini\n- Toma Puljak @Tpuljak","2026-03-10T14:52:46",{"id":278,"version":279,"summary_zh":280,"released_at":281},222562,"v0.149.0","## 0.149.0 (2026-03-04)\n\n### 🚀 Features\n\n- **api:** add API key support for NotificationGateway ([#3991](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3991))\n- **api:** per organization snapshot inactivity timeout ([#3910](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3910))\n- **docs:** add OpenCode SDK agent guide ([#3927](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3927))\n- **docs:** add architecture ([#3864](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3864))\n\n### 🩹 Fixes\n\n- **api:** sandbox restore from existing backup ([#3982](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3982))\n- **api,docs:** remove audit logging from webhook app portal access endpoint ([#4009](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4009))\n- **daemon:** process keepalive signals for idle code interpreter connections ([#3998](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3998))\n- **dashboard:** webhooks misc fixes ([#3994](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3994))\n- **proxy:** signed preview url cookie auth ([#3985](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3985))\n\n### Chores\n\n- sync go.sum for v0.148.0 ([#3977](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3977))\n- add pre-commit check for migration file placement ([#3915](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3915))\n- **docker-compose:** change RUNNER_DOMAIN from localhost to runner ([#4006](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4006))\n- **docs:** modify guide card styling ([#3999](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3999))\n- **docs:** update webhooks interface ([#3963](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F3963))\n- **sdk-go:** bump to v0.149.0 ([#4017](https:\u002F\u002Fgithub.com\u002Fdaytonaio\u002Fdaytona\u002Fpull\u002F4017))\n\n### ❤️ Thank You\n\n- Fabjan Vučina\n- Ivan Dagelic @idagelic\n- James Murdza\n- Juraj Štefanić @stefanicjuraj\n- Mirko Džaja @MDzaja\n- rexjz\n- Robert Pavlinic @rpavlini\n- Toma Puljak @Tpuljak","2026-03-04T15:16:46"]