deepagents-cli 0.1.2__tar.gz → 0.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/CHANGELOG.md +21 -2
  2. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/PKG-INFO +67 -28
  3. deepagents_cli-0.2.1/README.md +111 -0
  4. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/deepagents_cli/_version.py +1 -1
  5. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/deepagents_cli/config.py +43 -0
  6. deepagents_cli-0.2.1/deepagents_cli/deploy/__init__.py +17 -0
  7. deepagents_cli-0.2.1/deepagents_cli/deploy/api_client.py +358 -0
  8. deepagents_cli-0.2.1/deepagents_cli/deploy/commands.py +1058 -0
  9. deepagents_cli-0.2.1/deepagents_cli/deploy/mcp_resolver.py +122 -0
  10. deepagents_cli-0.2.1/deepagents_cli/deploy/payload.py +156 -0
  11. deepagents_cli-0.2.1/deepagents_cli/deploy/project.py +566 -0
  12. deepagents_cli-0.2.1/deepagents_cli/deploy/state.py +111 -0
  13. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/deepagents_cli/main.py +20 -14
  14. deepagents_cli-0.2.1/examples/deploy-content-writer/.env.example +8 -0
  15. deepagents_cli-0.2.1/examples/deploy-content-writer/AGENTS.md +21 -0
  16. deepagents_cli-0.2.1/examples/deploy-content-writer/agent.json +8 -0
  17. deepagents_cli-0.2.1/examples/deploy-content-writer/tools.json +13 -0
  18. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/pyproject.toml +8 -33
  19. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/__init__.py +0 -0
  20. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/.gitkeep +0 -0
  21. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/bare/AGENTS.md +3 -0
  22. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/bare/agent.json +4 -0
  23. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/bare/expected_payload.json +5 -0
  24. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/subagent_with_local_skills/AGENTS.md +1 -0
  25. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/subagent_with_local_skills/agent.json +1 -0
  26. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/subagent_with_local_skills/expected_payload.json +21 -0
  27. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/subagent_with_local_skills/subagents/researcher/AGENTS.md +1 -0
  28. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/subagent_with_local_skills/subagents/researcher/agent.json +1 -0
  29. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/subagent_with_local_skills/subagents/researcher/skills/note/SKILL.md +5 -0
  30. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/subagent_with_local_skills/subagents/researcher/tools.json +1 -0
  31. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_skills/AGENTS.md +1 -0
  32. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_skills/agent.json +1 -0
  33. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_skills/expected_payload.json +15 -0
  34. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_skills/skills/summarize/SKILL.md +8 -0
  35. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_skills/skills/summarize/examples.md +2 -0
  36. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_subagents/AGENTS.md +1 -0
  37. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_subagents/agent.json +1 -0
  38. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_subagents/expected_payload.json +16 -0
  39. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_subagents/subagents/researcher/AGENTS.md +1 -0
  40. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_subagents/subagents/researcher/agent.json +1 -0
  41. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_subagents/subagents/researcher/tools.json +1 -0
  42. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_tools/AGENTS.md +1 -0
  43. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_tools/agent.json +1 -0
  44. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_tools/expected_payload.json +17 -0
  45. deepagents_cli-0.2.1/tests/unit_tests/deploy/fixtures/projects/with_tools/tools.json +13 -0
  46. deepagents_cli-0.2.1/tests/unit_tests/deploy/test_agents_command.py +122 -0
  47. deepagents_cli-0.2.1/tests/unit_tests/deploy/test_api_client.py +446 -0
  48. deepagents_cli-0.2.1/tests/unit_tests/deploy/test_config.py +89 -0
  49. deepagents_cli-0.2.1/tests/unit_tests/deploy/test_deploy_command.py +439 -0
  50. deepagents_cli-0.2.1/tests/unit_tests/deploy/test_init_command.py +100 -0
  51. deepagents_cli-0.2.1/tests/unit_tests/deploy/test_mcp_resolver.py +118 -0
  52. deepagents_cli-0.2.1/tests/unit_tests/deploy/test_mcp_servers_command.py +731 -0
  53. deepagents_cli-0.2.1/tests/unit_tests/deploy/test_payload.py +103 -0
  54. deepagents_cli-0.2.1/tests/unit_tests/deploy/test_project.py +477 -0
  55. deepagents_cli-0.2.1/tests/unit_tests/deploy/test_state.py +84 -0
  56. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/uv.lock +24 -1968
  57. deepagents_cli-0.1.2/README.md +0 -57
  58. deepagents_cli-0.1.2/deepagents_cli/deploy/__init__.py +0 -27
  59. deepagents_cli-0.1.2/deepagents_cli/deploy/bundler.py +0 -583
  60. deepagents_cli-0.1.2/deepagents_cli/deploy/commands.py +0 -733
  61. deepagents_cli-0.1.2/deepagents_cli/deploy/config.py +0 -863
  62. deepagents_cli-0.1.2/deepagents_cli/deploy/context_hub.py +0 -341
  63. deepagents_cli-0.1.2/deepagents_cli/deploy/frontend_dist/assets/anonymous-B9UzAXQd.js +0 -1
  64. deepagents_cli-0.1.2/deepagents_cli/deploy/frontend_dist/assets/clerk-5xHgyQyG.js +0 -23
  65. deepagents_cli-0.1.2/deepagents_cli/deploy/frontend_dist/assets/highlighted-body-OFNGDK62-rX-7qT8o.js +0 -1
  66. deepagents_cli-0.1.2/deepagents_cli/deploy/frontend_dist/assets/index-DM3gptpu.js +0 -205
  67. deepagents_cli-0.1.2/deepagents_cli/deploy/frontend_dist/assets/index-Ddy7F6KI.css +0 -1
  68. deepagents_cli-0.1.2/deepagents_cli/deploy/frontend_dist/assets/supabase-S6NACDgm.js +0 -44
  69. deepagents_cli-0.1.2/deepagents_cli/deploy/frontend_dist/index.html +0 -16
  70. deepagents_cli-0.1.2/deepagents_cli/deploy/frontend_dist/logo-dark.svg +0 -12
  71. deepagents_cli-0.1.2/deepagents_cli/deploy/frontend_dist/logo-light.svg +0 -12
  72. deepagents_cli-0.1.2/deepagents_cli/deploy/templates.py +0 -1194
  73. deepagents_cli-0.1.2/examples/deploy-content-writer/.env.example +0 -2
  74. deepagents_cli-0.1.2/examples/deploy-content-writer/user/context.md +0 -15
  75. deepagents_cli-0.1.2/examples/deploy-content-writer/user/preferences.md +0 -11
  76. deepagents_cli-0.1.2/frontend/.nvmrc +0 -1
  77. deepagents_cli-0.1.2/frontend/index.html +0 -15
  78. deepagents_cli-0.1.2/frontend/package-lock.json +0 -6142
  79. deepagents_cli-0.1.2/frontend/package.json +0 -34
  80. deepagents_cli-0.1.2/frontend/postcss.config.js +0 -5
  81. deepagents_cli-0.1.2/frontend/public/logo-dark.svg +0 -12
  82. deepagents_cli-0.1.2/frontend/public/logo-light.svg +0 -12
  83. deepagents_cli-0.1.2/frontend/src/App.tsx +0 -342
  84. deepagents_cli-0.1.2/frontend/src/ThemeProvider.tsx +0 -66
  85. deepagents_cli-0.1.2/frontend/src/auth/anonymous.tsx +0 -45
  86. deepagents_cli-0.1.2/frontend/src/auth/clerk.tsx +0 -138
  87. deepagents_cli-0.1.2/frontend/src/auth/loader.tsx +0 -26
  88. deepagents_cli-0.1.2/frontend/src/auth/supabase.tsx +0 -236
  89. deepagents_cli-0.1.2/frontend/src/auth/types.ts +0 -22
  90. deepagents_cli-0.1.2/frontend/src/components/AppHeader.tsx +0 -70
  91. deepagents_cli-0.1.2/frontend/src/components/FilePanels.tsx +0 -148
  92. deepagents_cli-0.1.2/frontend/src/components/MessageList.tsx +0 -177
  93. deepagents_cli-0.1.2/frontend/src/components/SubagentActivity.tsx +0 -262
  94. deepagents_cli-0.1.2/frontend/src/components/ThreadPicker.tsx +0 -162
  95. deepagents_cli-0.1.2/frontend/src/components/TodosPanel.tsx +0 -54
  96. deepagents_cli-0.1.2/frontend/src/components/ToolCallCard.tsx +0 -136
  97. deepagents_cli-0.1.2/frontend/src/components/toolcalls/FileToolCard.tsx +0 -126
  98. deepagents_cli-0.1.2/frontend/src/components/toolcalls/SearchCard.tsx +0 -107
  99. deepagents_cli-0.1.2/frontend/src/components/toolcalls/ThinkCard.tsx +0 -60
  100. deepagents_cli-0.1.2/frontend/src/components/toolcalls/TodosCard.tsx +0 -63
  101. deepagents_cli-0.1.2/frontend/src/components/toolcalls/index.ts +0 -51
  102. deepagents_cli-0.1.2/frontend/src/constants.ts +0 -15
  103. deepagents_cli-0.1.2/frontend/src/index.css +0 -220
  104. deepagents_cli-0.1.2/frontend/src/main.tsx +0 -20
  105. deepagents_cli-0.1.2/frontend/src/runtimeConfig.ts +0 -75
  106. deepagents_cli-0.1.2/frontend/src/types.ts +0 -22
  107. deepagents_cli-0.1.2/frontend/src/vite-env.d.ts +0 -1
  108. deepagents_cli-0.1.2/frontend/tsconfig.json +0 -19
  109. deepagents_cli-0.1.2/frontend/vite.config.ts +0 -25
  110. deepagents_cli-0.1.2/tests/integration_tests/test_context_hub.py +0 -206
  111. deepagents_cli-0.1.2/tests/integration_tests/test_deploy_hub.py +0 -191
  112. deepagents_cli-0.1.2/tests/unit_tests/deploy/test_bundler.py +0 -842
  113. deepagents_cli-0.1.2/tests/unit_tests/deploy/test_commands.py +0 -227
  114. deepagents_cli-0.1.2/tests/unit_tests/deploy/test_config.py +0 -711
  115. deepagents_cli-0.1.2/tests/unit_tests/deploy/test_context_hub.py +0 -535
  116. deepagents_cli-0.1.2/tests/unit_tests/deploy/test_frontend_bundle.py +0 -433
  117. deepagents_cli-0.1.2/tests/unit_tests/deploy/test_frontend_config.py +0 -182
  118. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/.gitignore +0 -0
  119. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/DEV.md +0 -0
  120. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/Makefile +0 -0
  121. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/THREAT_MODEL.md +0 -0
  122. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/deepagents_cli/__init__.py +0 -0
  123. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/deepagents_cli/__main__.py +0 -0
  124. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/deepagents_cli/model_config.py +0 -0
  125. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/deepagents_cli/py.typed +0 -0
  126. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/examples/deploy-content-writer/skills/blog-post/SKILL.md +0 -0
  127. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/examples/deploy-content-writer/skills/social-media/SKILL.md +0 -0
  128. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/examples/skills/arxiv-search/SKILL.md +0 -0
  129. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/examples/skills/arxiv-search/arxiv_search.py +0 -0
  130. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/examples/skills/langgraph-docs/SKILL.md +0 -0
  131. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/examples/skills/skill-creator/SKILL.md +0 -0
  132. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/examples/skills/skill-creator/scripts/init_skill.py +0 -0
  133. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/examples/skills/skill-creator/scripts/quick_validate.py +0 -0
  134. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/examples/skills/web-research/SKILL.md +0 -0
  135. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/images/cli.png +0 -0
  136. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/scripts/check_imports.py +0 -0
  137. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/scripts/debug_server.sh +0 -0
  138. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/scripts/install.sh +0 -0
  139. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/tests/README.md +0 -0
  140. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/tests/integration_tests/__init__.py +0 -0
  141. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/tests/integration_tests/conftest.py +0 -0
  142. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/tests/unit_tests/__init__.py +0 -0
  143. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/tests/unit_tests/conftest.py +0 -0
  144. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/tests/unit_tests/deploy/__init__.py +0 -0
  145. {deepagents_cli-0.1.2 → deepagents_cli-0.2.1}/tests/unit_tests/test_version.py +0 -0
@@ -1,7 +1,26 @@
1
+ <!-- markdownlint-disable MD024 -->
2
+
1
3
  # Deep Agents CLI Changelog
2
4
 
3
- From 0.1.0 onward, `deepagents-cli` only contains `deploy`, `dev`, and `init`.
4
- The coding agent (interactive TUI & headless CLI) moved to [`deepagents-code`](https://github.com/langchain-ai/deepagents/blob/main/libs/code/CHANGELOG.md).
5
+ From 0.2.0 onward, `deepagents-cli` exposes `init`, `deploy`, `agents`, and `mcp-servers` against the Managed Deep Agents `/v1/deepagents/*` API. The coding agent (interactive TUI & headless CLI) moved to [`deepagents-code`](https://github.com/langchain-ai/deepagents/blob/main/libs/code/CHANGELOG.md).
6
+
7
+ ## [0.2.1](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.2.0...deepagents-cli==0.2.1) (2026-06-03)
8
+
9
+ * Version bumps
10
+
11
+ ## [0.2.0](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.1.2...deepagents-cli==0.2.0) (2026-06-01)
12
+
13
+ ### ⚠ BREAKING CHANGES
14
+
15
+ * `deepagents deploy` now targets the Managed Deep Agents API; `deepagents dev`, `deepagents.toml`, and the `--config`/`--dry-run` flags are removed. Run `deepagents init` to re-scaffold (`agent.json` + `tools.json`). See [PR](https://github.com/langchain-ai/deepagents/pull/3609) for the full migration guide.
16
+
17
+ ### Features
18
+
19
+ * Migrate `deepagents deploy` to use Managed Deep Agents API ([#3609](https://github.com/langchain-ai/deepagents/issues/3609)) ([72aef52](https://github.com/langchain-ai/deepagents/commit/72aef52542a3fd4a7eebcb3dba40e28adf1aa044))
20
+
21
+ ### Bug Fixes
22
+
23
+ * Stable `HumanMessage` IDs across resumed threads ([#3591](https://github.com/langchain-ai/deepagents/issues/3591)) ([82c3194](https://github.com/langchain-ai/deepagents/commit/82c31947f9dc938ffc71e1cea96d162a39aec3a1))
5
24
 
6
25
  ## [0.1.2](https://github.com/langchain-ai/deepagents/compare/deepagents-cli==0.1.1...deepagents-cli==0.1.2) (2026-05-21)
7
26
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepagents-cli
3
- Version: 0.1.2
3
+ Version: 0.2.1
4
4
  Summary: Deployment tooling for Deep Agents - bundle, run, and ship agents to LangGraph Platform.
5
5
  Project-URL: Homepage, https://docs.langchain.com/oss/python/deepagents/overview
6
6
  Project-URL: Documentation, https://reference.langchain.com/python/deepagents/
@@ -24,28 +24,13 @@ Classifier: Programming Language :: Python :: 3.14
24
24
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
25
25
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
26
  Requires-Python: <4.0,>=3.11
27
- Requires-Dist: deepagents>=0.6.1
27
+ Requires-Dist: deepagents>=0.6.8
28
28
  Requires-Dist: httpx<1.0.0,>=0.28.1
29
- Requires-Dist: langchain<2.0.0,>=1.3.0
30
- Requires-Dist: langgraph-cli[inmem]<1.0.0,>=0.4.24
31
- Requires-Dist: langgraph-runtime-inmem<1.0.0,>=0.28.1
32
- Requires-Dist: langgraph-sdk<1.0.0,>=0.3.13
33
- Requires-Dist: langgraph<2.0.0,>=1.2.0
34
- Requires-Dist: langsmith>=0.8.0
29
+ Requires-Dist: langchain<2.0.0,>=1.3.4
30
+ Requires-Dist: langgraph-sdk<1.0.0,>=0.4.2
31
+ Requires-Dist: langgraph<2.0.0,>=1.2.4
32
+ Requires-Dist: langsmith>=0.8.9
35
33
  Requires-Dist: python-dotenv<2.0.0,>=1.2.2
36
- Provides-Extra: agentcore
37
- Requires-Dist: langchain-agentcore-codeinterpreter>=0.0.2; extra == 'agentcore'
38
- Provides-Extra: all-sandboxes
39
- Requires-Dist: langchain-agentcore-codeinterpreter>=0.0.2; extra == 'all-sandboxes'
40
- Requires-Dist: langchain-daytona>=0.0.5; extra == 'all-sandboxes'
41
- Requires-Dist: langchain-modal>=0.0.3; extra == 'all-sandboxes'
42
- Requires-Dist: langchain-runloop>=0.0.4; extra == 'all-sandboxes'
43
- Provides-Extra: daytona
44
- Requires-Dist: langchain-daytona>=0.0.5; extra == 'daytona'
45
- Provides-Extra: modal
46
- Requires-Dist: langchain-modal>=0.0.3; extra == 'modal'
47
- Provides-Extra: runloop
48
- Requires-Dist: langchain-runloop>=0.0.4; extra == 'runloop'
49
34
  Description-Content-Type: text/markdown
50
35
 
51
36
  # Deep Agents CLI — Deployment Tooling
@@ -56,7 +41,7 @@ Description-Content-Type: text/markdown
56
41
  [![Twitter](https://img.shields.io/twitter/url/https/twitter.com/langchain_oss.svg?style=social&label=Follow%20%40LangChain)](https://x.com/langchain_oss)
57
42
 
58
43
  > [!IMPORTANT]
59
- > **The interactive coding agent moved.** As of `deepagents-cli==0.1.0`, this package contains only the deployment subcommands (`init`, `dev`, `deploy`). The interactive REPL — previously launched via `deepagents` — now ships as [`deepagents-code`](https://docs.langchain.com/oss/python/deepagents/code/overview) (`dcode`).
44
+ > **The interactive coding agent moved.** As of `deepagents-cli==0.1.0`, this package contains only the deployment subcommands (`init`, `dev`, `deploy`). The interactive REPL — previously launched via `deepagents` — now ships as [`deepagents-code`](https://docs.langchain.com/deepagents-code) (`dcode`).
60
45
  >
61
46
  > ```bash
62
47
  > curl -LsSf https://langch.in/dcode | bash
@@ -69,10 +54,13 @@ Description-Content-Type: text/markdown
69
54
  uv tool install deepagents-cli
70
55
  ```
71
56
 
72
- Or with optional sandbox providers:
57
+ You'll need a LangSmith API key with access to the Managed Deep Agents private
58
+ preview ([waitlist](https://www.langchain.com/langsmith-managed-deep-agents-waitlist)).
59
+ Export it before running any command, or put it in a repo `.env` or
60
+ `~/.deepagents/.env`:
73
61
 
74
62
  ```bash
75
- uv tool install 'deepagents-cli[all-sandboxes]'
63
+ export LANGSMITH_API_KEY="..."
76
64
  ```
77
65
 
78
66
  ## Usage
@@ -81,13 +69,64 @@ uv tool install 'deepagents-cli[all-sandboxes]'
81
69
  # Scaffold a new project folder
82
70
  deepagents init my-agent
83
71
 
84
- # Run a local langgraph dev server against the project
85
- cd my-agent && deepagents dev
72
+ # Register any MCP servers you intend to use (one-time, per workspace)
73
+ deepagents mcp-servers add --url https://tools.langchain.com \
74
+ --header X-Api-Key=$LANGSMITH_API_KEY \
75
+ --name Fleet
86
76
 
87
- # Bundle and ship to LangSmith Deployment
88
- deepagents deploy
77
+ # init scaffolds an empty tools.json. Add tools that reference a registered
78
+ # MCP server's URL (otherwise the agent has no tools), e.g. the Fleet server
79
+ # registered above:
80
+ # { "name": "read_url_content", "mcp_server_url": "https://tools.langchain.com",
81
+ # "mcp_server_name": "Fleet", "display_name": "read_url_content" }
82
+
83
+ # Upsert the project as a managed agent on /v1/deepagents/*
84
+ cd my-agent && deepagents deploy
85
+ ```
86
+
87
+ `deepagents init` scaffolds an empty `tools.json`, an example skill under
88
+ `skills/`, and an example subagent under `subagents/`; edit or remove them to
89
+ suit your agent. `tools.json` starts empty because every tool must reference an
90
+ MCP server that is already registered in the workspace
91
+ (`deepagents mcp-servers add`) — so a freshly scaffolded project deploys
92
+ without first registering a server.
93
+
94
+ New agents default to the `default` backend — switch `agent.json`'s
95
+ `backend.type` to `thread_scoped_sandbox` (or `agent_scoped_sandbox`) to opt
96
+ into a managed sandbox. The CLI does not create or run sandboxes locally;
97
+ sandbox lifecycle is handled by the Managed Deep Agents platform.
98
+
99
+ ### Project layout
100
+
101
+ ```text
102
+ my-agent/
103
+ agent.json # name, description, backend, runtime.model, permissions
104
+ AGENTS.md # system prompt
105
+ tools.json # tools the agent can call (optional)
106
+ skills/<name>/SKILL.md # frontmatter-tagged skills (optional)
107
+ subagents/<name>/ # delegated subagent definitions (optional)
108
+ ```
109
+
110
+ ### Other commands
111
+
112
+ ```bash
113
+ deepagents agents list # list workspace agents
114
+ deepagents agents get <agent_id> # show one agent
115
+ deepagents agents delete <agent_id> # delete an agent
116
+
117
+ deepagents mcp-servers list # list workspace MCP servers
118
+ deepagents mcp-servers add --url URL # register a server
119
+ deepagents mcp-servers get <id|name|url> # show one server
120
+ deepagents mcp-servers tools <id|name|url> # list a server's tools
121
+ deepagents mcp-servers update <id|name|url> # update server URL or headers
122
+ deepagents mcp-servers delete <id|name|url> # remove a server
123
+ deepagents mcp-servers connect <id|name|url> # start OAuth for a server
89
124
  ```
90
125
 
126
+ `get`, `update`, `delete`, and `connect` accept an MCP server's id, exact name,
127
+ or URL — a non-id value is resolved against `mcp-servers list` (URLs are matched
128
+ ignoring case and trailing slash).
129
+
91
130
  ## 📖 Resources
92
131
 
93
132
  - **[CLI Documentation](https://docs.langchain.com/oss/python/deepagents/cli/overview)**
@@ -0,0 +1,111 @@
1
+ # Deep Agents CLI — Deployment Tooling
2
+
3
+ [![PyPI - Version](https://img.shields.io/pypi/v/deepagents-cli?label=%20)](https://pypi.org/project/deepagents-cli/#history)
4
+ [![PyPI - License](https://img.shields.io/pypi/l/deepagents-cli)](https://opensource.org/licenses/MIT)
5
+ [![PyPI - Downloads](https://img.shields.io/pepy/dt/deepagents-cli)](https://pypistats.org/packages/deepagents-cli)
6
+ [![Twitter](https://img.shields.io/twitter/url/https/twitter.com/langchain_oss.svg?style=social&label=Follow%20%40LangChain)](https://x.com/langchain_oss)
7
+
8
+ > [!IMPORTANT]
9
+ > **The interactive coding agent moved.** As of `deepagents-cli==0.1.0`, this package contains only the deployment subcommands (`init`, `dev`, `deploy`). The interactive REPL — previously launched via `deepagents` — now ships as [`deepagents-code`](https://docs.langchain.com/deepagents-code) (`dcode`).
10
+ >
11
+ > ```bash
12
+ > curl -LsSf https://langch.in/dcode | bash
13
+ > dcode
14
+ > ```
15
+
16
+ ## Install
17
+
18
+ ```bash
19
+ uv tool install deepagents-cli
20
+ ```
21
+
22
+ You'll need a LangSmith API key with access to the Managed Deep Agents private
23
+ preview ([waitlist](https://www.langchain.com/langsmith-managed-deep-agents-waitlist)).
24
+ Export it before running any command, or put it in a repo `.env` or
25
+ `~/.deepagents/.env`:
26
+
27
+ ```bash
28
+ export LANGSMITH_API_KEY="..."
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ ```bash
34
+ # Scaffold a new project folder
35
+ deepagents init my-agent
36
+
37
+ # Register any MCP servers you intend to use (one-time, per workspace)
38
+ deepagents mcp-servers add --url https://tools.langchain.com \
39
+ --header X-Api-Key=$LANGSMITH_API_KEY \
40
+ --name Fleet
41
+
42
+ # init scaffolds an empty tools.json. Add tools that reference a registered
43
+ # MCP server's URL (otherwise the agent has no tools), e.g. the Fleet server
44
+ # registered above:
45
+ # { "name": "read_url_content", "mcp_server_url": "https://tools.langchain.com",
46
+ # "mcp_server_name": "Fleet", "display_name": "read_url_content" }
47
+
48
+ # Upsert the project as a managed agent on /v1/deepagents/*
49
+ cd my-agent && deepagents deploy
50
+ ```
51
+
52
+ `deepagents init` scaffolds an empty `tools.json`, an example skill under
53
+ `skills/`, and an example subagent under `subagents/`; edit or remove them to
54
+ suit your agent. `tools.json` starts empty because every tool must reference an
55
+ MCP server that is already registered in the workspace
56
+ (`deepagents mcp-servers add`) — so a freshly scaffolded project deploys
57
+ without first registering a server.
58
+
59
+ New agents default to the `default` backend — switch `agent.json`'s
60
+ `backend.type` to `thread_scoped_sandbox` (or `agent_scoped_sandbox`) to opt
61
+ into a managed sandbox. The CLI does not create or run sandboxes locally;
62
+ sandbox lifecycle is handled by the Managed Deep Agents platform.
63
+
64
+ ### Project layout
65
+
66
+ ```text
67
+ my-agent/
68
+ agent.json # name, description, backend, runtime.model, permissions
69
+ AGENTS.md # system prompt
70
+ tools.json # tools the agent can call (optional)
71
+ skills/<name>/SKILL.md # frontmatter-tagged skills (optional)
72
+ subagents/<name>/ # delegated subagent definitions (optional)
73
+ ```
74
+
75
+ ### Other commands
76
+
77
+ ```bash
78
+ deepagents agents list # list workspace agents
79
+ deepagents agents get <agent_id> # show one agent
80
+ deepagents agents delete <agent_id> # delete an agent
81
+
82
+ deepagents mcp-servers list # list workspace MCP servers
83
+ deepagents mcp-servers add --url URL # register a server
84
+ deepagents mcp-servers get <id|name|url> # show one server
85
+ deepagents mcp-servers tools <id|name|url> # list a server's tools
86
+ deepagents mcp-servers update <id|name|url> # update server URL or headers
87
+ deepagents mcp-servers delete <id|name|url> # remove a server
88
+ deepagents mcp-servers connect <id|name|url> # start OAuth for a server
89
+ ```
90
+
91
+ `get`, `update`, `delete`, and `connect` accept an MCP server's id, exact name,
92
+ or URL — a non-id value is resolved against `mcp-servers list` (URLs are matched
93
+ ignoring case and trailing slash).
94
+
95
+ ## 📖 Resources
96
+
97
+ - **[CLI Documentation](https://docs.langchain.com/oss/python/deepagents/cli/overview)**
98
+ - **[Changelog](https://github.com/langchain-ai/deepagents/blob/main/libs/cli/CHANGELOG.md)**
99
+ - **[Source code](https://github.com/langchain-ai/deepagents/tree/main/libs/cli)**
100
+ - **[Deep Agents SDK](https://github.com/langchain-ai/deepagents)** — underlying agent harness
101
+ - **[Deep Agents Code](https://pypi.org/project/deepagents-code/)** — coding agent
102
+
103
+ ## 📕 Releases & Versioning
104
+
105
+ See our [Releases](https://docs.langchain.com/oss/python/release-policy) and [Versioning](https://docs.langchain.com/oss/python/versioning) policies.
106
+
107
+ ## 💁 Contributing
108
+
109
+ As an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.
110
+
111
+ For detailed information on how to contribute, see the [Contributing Guide](https://docs.langchain.com/oss/python/contributing/overview).
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Keep the `x-release-please-version` annotation — release-please uses it to
4
4
  # bump `__version__` in sync with `pyproject.toml` on every release PR.
5
- __version__ = "0.1.2" # x-release-please-version
5
+ __version__ = "0.2.1" # x-release-please-version
6
6
 
7
7
  DOCS_URL = "https://docs.langchain.com/oss/python/deepagents/cli"
8
8
  """URL for `deepagents-cli` documentation."""
@@ -3,10 +3,25 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import logging
6
+ import os
6
7
  import sys
7
8
  from pathlib import Path
8
9
 
9
10
  logger = logging.getLogger(__name__)
11
+ _PROJECT_DOTENV_BLOCKED_ENV_KEYS = (
12
+ "LANGSMITH_ENDPOINT",
13
+ "LANGCHAIN_ENDPOINT",
14
+ "HTTP_PROXY",
15
+ "HTTPS_PROXY",
16
+ "ALL_PROXY",
17
+ "NO_PROXY",
18
+ "http_proxy",
19
+ "https_proxy",
20
+ "all_proxy",
21
+ "no_proxy",
22
+ "SSL_CERT_FILE",
23
+ "SSL_CERT_DIR",
24
+ )
10
25
 
11
26
 
12
27
  def _stderr(msg: str) -> None:
@@ -40,6 +55,30 @@ def _find_dotenv_from_start_path(start_path: Path) -> Path | None:
40
55
  return None
41
56
 
42
57
 
58
+ def _snapshot_blocked_project_env() -> dict[str, str | None]:
59
+ return {key: os.environ.get(key) for key in _PROJECT_DOTENV_BLOCKED_ENV_KEYS}
60
+
61
+
62
+ def _restore_env(snapshot: dict[str, str | None]) -> None:
63
+ for key, value in snapshot.items():
64
+ if value is None:
65
+ os.environ.pop(key, None)
66
+ else:
67
+ os.environ[key] = value
68
+
69
+
70
+ def _warn_if_project_blocked_env_changed(snapshot: dict[str, str | None]) -> None:
71
+ changed = [key for key, value in snapshot.items() if os.environ.get(key) != value]
72
+ if not changed:
73
+ return
74
+ keys = ", ".join(sorted(changed))
75
+ _stderr(
76
+ f"ignoring {keys} from project .env. Set endpoint overrides in your "
77
+ "shell environment or ~/.deepagents/.env; proxy/TLS settings are "
78
+ "ignored for managed API requests.",
79
+ )
80
+
81
+
43
82
  try:
44
83
  _GLOBAL_DOTENV_PATH = Path.home() / ".deepagents" / ".env"
45
84
  except RuntimeError:
@@ -92,10 +131,12 @@ def _load_dotenv(*, start_path: Path) -> bool:
92
131
 
93
132
  dotenv_path = _find_dotenv_from_start_path(start_path)
94
133
  if dotenv_path is not None:
134
+ blocked_env = _snapshot_blocked_project_env()
95
135
  try:
96
136
  loaded = (
97
137
  dotenv.load_dotenv(dotenv_path=dotenv_path, override=False) or loaded
98
138
  )
139
+ _warn_if_project_blocked_env_changed(blocked_env)
99
140
  except (OSError, ValueError) as exc:
100
141
  _stderr(
101
142
  f"could not read project .env at {dotenv_path}: {exc}. "
@@ -107,6 +148,8 @@ def _load_dotenv(*, start_path: Path) -> bool:
107
148
  dotenv_path,
108
149
  exc_info=True,
109
150
  )
151
+ finally:
152
+ _restore_env(blocked_env)
110
153
 
111
154
  try:
112
155
  if _GLOBAL_DOTENV_PATH.is_file() and dotenv.load_dotenv(
@@ -0,0 +1,17 @@
1
+ """Deploy commands for the Managed Deep Agents (`/v1/deepagents/*`) surface."""
2
+
3
+ from deepagents_cli.deploy.commands import (
4
+ execute_agents_command,
5
+ execute_deploy_command,
6
+ execute_init_command,
7
+ execute_mcp_servers_command,
8
+ setup_deploy_parsers,
9
+ )
10
+
11
+ __all__ = [
12
+ "execute_agents_command",
13
+ "execute_deploy_command",
14
+ "execute_init_command",
15
+ "execute_mcp_servers_command",
16
+ "setup_deploy_parsers",
17
+ ]