agent-code 2.0.0__tar.gz → 2.1.0__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.
- agent_code-2.1.0/PKG-INFO +1048 -0
- agent_code-2.1.0/README.md +1010 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/docs/skills.html +16 -5
- {agent_code-2.0.0 → agent_code-2.1.0}/pyproject.toml +1 -1
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/__init__.py +1 -1
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/addons.py +13 -5
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/agent.py +516 -54
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/loader.py +325 -216
- agent_code-2.1.0/src/agent_code/provider_compat.py +109 -0
- agent_code-2.1.0/src/agent_code/runtime.py +343 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/skill_manager.py +29 -1
- agent_code-2.1.0/src/agent_code/tool_namespace.py +142 -0
- agent_code-2.1.0/src/agent_code/tui.py +1261 -0
- agent_code-2.1.0/src/agent_code.egg-info/PKG-INFO +1048 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code.egg-info/SOURCES.txt +8 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_addons.py +5 -4
- agent_code-2.1.0/tests/test_agent_loop_regex_scope.py +18 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_core_mode.py +1 -1
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_doctor.py +1 -1
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_plan_completion_signal.py +2 -2
- agent_code-2.1.0/tests/test_provider_metadata.py +67 -0
- agent_code-2.1.0/tests/test_runtime_guard.py +95 -0
- agent_code-2.1.0/tests/test_skill_namespacing.py +54 -0
- agent_code-2.1.0/tests/test_tool_namespace.py +37 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_tui_input_timeout.py +49 -0
- agent_code-2.1.0/tests/test_ui_crash_regressions.py +68 -0
- agent_code-2.0.0/PKG-INFO +0 -702
- agent_code-2.0.0/README.md +0 -664
- agent_code-2.0.0/src/agent_code/tui.py +0 -650
- agent_code-2.0.0/src/agent_code.egg-info/PKG-INFO +0 -702
- agent_code-2.0.0/tests/test_ui_crash_regressions.py +0 -38
- {agent_code-2.0.0 → agent_code-2.1.0}/LICENSE +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/MANIFEST.in +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/docs/addons.html +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/docs/index.html +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/setup.cfg +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/__main__.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/advanced_features.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/cli.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/data/icons/agent-code.ico +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/data/icons/agent-code.png +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/data/skills/browser/skill.md +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/data/skills/browser/skill.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/data/skills/filesystem/skill.md +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/data/skills/filesystem/skill.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/data/skills/public_api/skill.md +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/data/skills/public_api/skill.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/data/skills/temp_mail/skill.md +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/data/skills/temp_mail/skill.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/doctor.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/mcp_manager.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/paths.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code/projects.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code.egg-info/dependency_links.txt +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code.egg-info/entry_points.txt +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code.egg-info/requires.txt +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/src/agent_code.egg-info/top_level.txt +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_activity_labels.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_activity_visibility.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_advanced_features.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_api_key_routing.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_async_subagent_contract.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_browser_detection.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_chat_loading.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_composer_experience.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_cross_platform.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_global_paths.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_markdown_spacing.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_mcp_manager.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_new_project_creation.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_podman_error_compaction.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_podman_full_linux.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_provider_presets.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_research_and_model_picker.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_saved_provider_endpoint_dedup.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_secure_credential_storage.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_server_archive_safety.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_skill_command_dispatch.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_skill_store_auth_flow.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_skill_store_safety.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_skill_store_theme.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_ssh_quick_connect.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_three_click_force_stop.py +0 -0
- {agent_code-2.0.0 → agent_code-2.1.0}/tests/test_token_efficiency.py +0 -0
|
@@ -0,0 +1,1048 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: agent-code
|
|
3
|
+
Version: 2.1.0
|
|
4
|
+
Summary: Local AI agent with optional browser automation, sandboxed shell, and plug-and-play skills
|
|
5
|
+
Author: minecraftbefile-maker
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://agent-code-dev.github.io
|
|
8
|
+
Project-URL: Repository, https://github.com/Agent-code-dev/Agent-code
|
|
9
|
+
Project-URL: Issues, https://github.com/Agent-code-dev/Agent-code/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/Agent-code-dev/Agent-code/releases
|
|
11
|
+
Keywords: ai,agent,llm,browser,automation,skills,openai
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
17
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
18
|
+
Classifier: Operating System :: MacOS
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
25
|
+
Requires-Python: >=3.10
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
Requires-Dist: openai>=1.0.0
|
|
29
|
+
Requires-Dist: customtkinter>=5.2.2
|
|
30
|
+
Requires-Dist: markdown-it-py>=3.0.0
|
|
31
|
+
Requires-Dist: mcp<2,>=1.9
|
|
32
|
+
Requires-Dist: keyring>=24.2
|
|
33
|
+
Requires-Dist: paramiko>=3.4.0
|
|
34
|
+
Requires-Dist: requests>=2.31.0
|
|
35
|
+
Requires-Dist: DrissionPage>=4.1.1.4
|
|
36
|
+
Requires-Dist: selenium>=4.20.0
|
|
37
|
+
Dynamic: license-file
|
|
38
|
+
|
|
39
|
+
<p align="center">
|
|
40
|
+
<img src="src/agent_code/data/icons/agent-code.png" width="145" alt="Agent Code Logo">
|
|
41
|
+
</p><h1 align="center">Agent Code 2.1</h1><h3 align="center">⚡ Your AI coding agent. Your tools. Your environment.</h3><p align="center">
|
|
42
|
+
An open-source, extensible AI coding agent built with Python and CustomTkinter.
|
|
43
|
+
<br>
|
|
44
|
+
Build, modify, debug, and manage projects using AI — with customizable Skills, application Add-ons, and MCP integrations.
|
|
45
|
+
</p><p align="center">
|
|
46
|
+
<a href="https://pypi.org/project/agent-code/">
|
|
47
|
+
<img src="https://img.shields.io/pypi/v/agent-code?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI Version">
|
|
48
|
+
</a>
|
|
49
|
+
<a href="https://www.python.org/">
|
|
50
|
+
<img src="https://img.shields.io/badge/Python-3.10%2B-3776AB?style=for-the-badge&logo=python&logoColor=white" alt="Python 3.10+">
|
|
51
|
+
</a>
|
|
52
|
+
<a href="LICENSE">
|
|
53
|
+
<img src="https://img.shields.io/badge/Application-MIT-2ea44f?style=for-the-badge" alt="MIT License">
|
|
54
|
+
</a>
|
|
55
|
+
<a href="server/LICENSE">
|
|
56
|
+
<img src="https://img.shields.io/badge/Server-AGPL--3.0-blue?style=for-the-badge" alt="Server AGPL License">
|
|
57
|
+
</a>
|
|
58
|
+
</p><p align="center">
|
|
59
|
+
<a href="https://github.com/agent-code-dev/agent-code">
|
|
60
|
+
<img src="https://img.shields.io/badge/GitHub-Repository-181717?style=flat-square&logo=github" alt="GitHub">
|
|
61
|
+
</a>
|
|
62
|
+
<a href="https://pypi.org/project/agent-code/">
|
|
63
|
+
<img src="https://img.shields.io/badge/PyPI-Install-3775A9?style=flat-square&logo=pypi" alt="PyPI">
|
|
64
|
+
</a>
|
|
65
|
+
<a href="https://agent-code-dev.github.io">
|
|
66
|
+
<img src="https://img.shields.io/badge/Website-Visit-4285F4?style=flat-square&logo=googlechrome&logoColor=white" alt="Website">
|
|
67
|
+
</a>
|
|
68
|
+
</p><p align="center">
|
|
69
|
+
<b>Windows · Linux · macOS</b>
|
|
70
|
+
<br>
|
|
71
|
+
<sub>Python 3.10+ · OpenAI-compatible AI providers · Extensible architecture</sub>
|
|
72
|
+
</p>---
|
|
73
|
+
|
|
74
|
+
🌟 What is Agent Code?
|
|
75
|
+
|
|
76
|
+
Agent Code is an open-source desktop AI coding agent designed to make AI-assisted software development more extensible and customizable.
|
|
77
|
+
|
|
78
|
+
It combines an AI-powered development workspace with a flexible tool architecture, allowing developers to expand both the capabilities of the AI agent and the application itself.
|
|
79
|
+
|
|
80
|
+
Instead of locking users into one provider or one fixed collection of tools, Agent Code gives developers control over their AI models, integrations, execution environments, and extensions.
|
|
81
|
+
|
|
82
|
+
🚀 The idea behind Agent Code
|
|
83
|
+
|
|
84
|
+
- 🤖 Use different AI providers with your own API keys.
|
|
85
|
+
- 🧩 Give the AI additional capabilities through native Python Skills.
|
|
86
|
+
- 🔌 Extend the desktop application through Add-ons.
|
|
87
|
+
- 🌐 Connect external tools through MCP.
|
|
88
|
+
- 💻 Work with local projects and development environments.
|
|
89
|
+
- 📦 Use an optional Alpine Linux sandbox.
|
|
90
|
+
- 🖥️ Connect to remote development machines through SSH.
|
|
91
|
+
- ⚙️ Customize agent workflows and execution permissions.
|
|
92
|
+
|
|
93
|
+
One application. Multiple extension systems. Your choice of AI provider.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
✨ Features
|
|
98
|
+
|
|
99
|
+
<table>
|
|
100
|
+
<tr>
|
|
101
|
+
<td width="50%" valign="top">🤖 AI Coding Agent
|
|
102
|
+
|
|
103
|
+
- Tool-calling architecture
|
|
104
|
+
|
|
105
|
+
- Multi-step task execution
|
|
106
|
+
|
|
107
|
+
- Project-aware workflows
|
|
108
|
+
|
|
109
|
+
- Plan Mode and Build Mode
|
|
110
|
+
|
|
111
|
+
- Error investigation
|
|
112
|
+
|
|
113
|
+
- Task completion summaries
|
|
114
|
+
|
|
115
|
+
- File change and diff review
|
|
116
|
+
|
|
117
|
+
- Checkpoints and recovery
|
|
118
|
+
|
|
119
|
+
</td>
|
|
120
|
+
<td width="50%" valign="top">
|
|
121
|
+
|
|
122
|
+
🎨 Desktop Workspace
|
|
123
|
+
|
|
124
|
+
- CustomTkinter interface
|
|
125
|
+
|
|
126
|
+
- Chat-based development
|
|
127
|
+
|
|
128
|
+
- Markdown responses
|
|
129
|
+
|
|
130
|
+
- Project navigation
|
|
131
|
+
|
|
132
|
+
- Model selection
|
|
133
|
+
|
|
134
|
+
- Provider configuration
|
|
135
|
+
|
|
136
|
+
- Activity Details panel
|
|
137
|
+
|
|
138
|
+
- Integrated Skills management
|
|
139
|
+
|
|
140
|
+
</td>
|
|
141
|
+
</tr>
|
|
142
|
+
<tr>
|
|
143
|
+
<td width="50%" valign="top">
|
|
144
|
+
|
|
145
|
+
🧩 Extension Architecture
|
|
146
|
+
|
|
147
|
+
- Native Python Skills
|
|
148
|
+
|
|
149
|
+
- Application Add-ons
|
|
150
|
+
|
|
151
|
+
- MCP integration
|
|
152
|
+
|
|
153
|
+
- Custom agent tools
|
|
154
|
+
|
|
155
|
+
- Namespaced commands
|
|
156
|
+
|
|
157
|
+
- Application lifecycle hooks
|
|
158
|
+
|
|
159
|
+
- Supported UI extensions
|
|
160
|
+
|
|
161
|
+
- Service integrations
|
|
162
|
+
|
|
163
|
+
</td>
|
|
164
|
+
<td width="50%" valign="top">
|
|
165
|
+
|
|
166
|
+
🖥️ Execution Environments
|
|
167
|
+
|
|
168
|
+
- Local execution
|
|
169
|
+
|
|
170
|
+
- Alpine Linux sandbox
|
|
171
|
+
|
|
172
|
+
- SSH remote execution
|
|
173
|
+
|
|
174
|
+
- Browser automation
|
|
175
|
+
|
|
176
|
+
- Configurable permissions
|
|
177
|
+
|
|
178
|
+
- Project workspace isolation
|
|
179
|
+
|
|
180
|
+
- Multiple execution targets
|
|
181
|
+
|
|
182
|
+
</td>
|
|
183
|
+
</tr>
|
|
184
|
+
|
|
185
|
+
</table>---
|
|
186
|
+
|
|
187
|
+
🧠 Three Independent Extension Systems
|
|
188
|
+
|
|
189
|
+
Agent Code 2.0 has three distinct extension systems.
|
|
190
|
+
|
|
191
|
+
They are designed for different purposes and can coexist.
|
|
192
|
+
|
|
193
|
+
System| Purpose| Extension type
|
|
194
|
+
🧩 Skills| Extend what the AI agent can do| Native Python
|
|
195
|
+
🔌 Add-ons| Extend Agent Code itself| Application extensions
|
|
196
|
+
🌐 MCP| Connect external tools| MCP protocol
|
|
197
|
+
|
|
198
|
+
🧩 1. Skills — Extend the AI Agent
|
|
199
|
+
|
|
200
|
+
Skills give the AI agent additional tools and specialized capabilities.
|
|
201
|
+
|
|
202
|
+
A Skill can provide:
|
|
203
|
+
|
|
204
|
+
- Python functions.
|
|
205
|
+
- AI-callable tool schemas.
|
|
206
|
+
- Agent-specific commands.
|
|
207
|
+
- Natural-language command aliases.
|
|
208
|
+
- Skill metadata.
|
|
209
|
+
- Help documentation.
|
|
210
|
+
|
|
211
|
+
Example Skill structure
|
|
212
|
+
|
|
213
|
+
skills/
|
|
214
|
+
└── my_skill/
|
|
215
|
+
├── skill.py
|
|
216
|
+
└── skill.md
|
|
217
|
+
|
|
218
|
+
Example implementation
|
|
219
|
+
|
|
220
|
+
SKILL = {
|
|
221
|
+
"name": "my_skill",
|
|
222
|
+
"description": "An example Agent Code skill."
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
def greet(name: str = "world") -> str:
|
|
227
|
+
return f"Hello, {name}!"
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
TOOL_SCHEMAS = [
|
|
231
|
+
{
|
|
232
|
+
"type": "function",
|
|
233
|
+
"function": {
|
|
234
|
+
"name": "greet",
|
|
235
|
+
"description": "Return a greeting.",
|
|
236
|
+
"parameters": {
|
|
237
|
+
"type": "object",
|
|
238
|
+
"properties": {
|
|
239
|
+
"name": {"type": "string"}
|
|
240
|
+
},
|
|
241
|
+
"required": []
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
]
|
|
246
|
+
|
|
247
|
+
TOOL_CALLABLES = {
|
|
248
|
+
"greet": greet
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
The native loader reads:
|
|
252
|
+
|
|
253
|
+
Export| Purpose
|
|
254
|
+
"SKILL"| Skill metadata
|
|
255
|
+
"TOOL_SCHEMAS"| AI tool definitions
|
|
256
|
+
"TOOL_CALLABLES"| Python implementations
|
|
257
|
+
"COMMANDS"| Optional commands and aliases
|
|
258
|
+
"HELP"| Optional help text
|
|
259
|
+
|
|
260
|
+
Skills can be reloaded without restarting Agent Code. When an agent task is running, tool reloads are deferred until the task finishes.
|
|
261
|
+
|
|
262
|
+
Bundled Skills
|
|
263
|
+
|
|
264
|
+
Agent Code 2.0 includes:
|
|
265
|
+
|
|
266
|
+
Skill| Description
|
|
267
|
+
📁 "filesystem"| File operations within the workspace
|
|
268
|
+
🌐 "public_api"| Search and use public APIs
|
|
269
|
+
📧 "temp_mail"| Temporary inbox and supported email integrations
|
|
270
|
+
|
|
271
|
+
Install bundled Skills:
|
|
272
|
+
|
|
273
|
+
agent-code skills install
|
|
274
|
+
|
|
275
|
+
List bundled Skills:
|
|
276
|
+
|
|
277
|
+
agent-code skills list
|
|
278
|
+
|
|
279
|
+
Developer documentation: "Build a Skill" (docs/skills.html)
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
🔌 2. Add-ons — Extend Agent Code Itself
|
|
284
|
+
|
|
285
|
+
Skills extend the AI agent.
|
|
286
|
+
|
|
287
|
+
Add-ons extend the application.
|
|
288
|
+
|
|
289
|
+
This is one of the central architectural differences in Agent Code 2.0.
|
|
290
|
+
|
|
291
|
+
Add-ons are designed to let developers customize supported parts of the application, rather than being limited to adding AI tools.
|
|
292
|
+
|
|
293
|
+
Add-on capabilities
|
|
294
|
+
|
|
295
|
+
- Custom application UI.
|
|
296
|
+
- Sidebar contributions.
|
|
297
|
+
- Additional application actions.
|
|
298
|
+
- Workspace extensions.
|
|
299
|
+
- Settings extensions.
|
|
300
|
+
- Toolbar contributions.
|
|
301
|
+
- Agent tools and commands.
|
|
302
|
+
- Lifecycle hooks.
|
|
303
|
+
- Supported service replacements.
|
|
304
|
+
|
|
305
|
+
Example structure
|
|
306
|
+
|
|
307
|
+
my-addon/
|
|
308
|
+
├── addon.json
|
|
309
|
+
└── addon.py
|
|
310
|
+
|
|
311
|
+
Example manifest
|
|
312
|
+
|
|
313
|
+
{
|
|
314
|
+
"name": "my-addon",
|
|
315
|
+
"version": "1.0.0",
|
|
316
|
+
"description": "An example Agent Code extension",
|
|
317
|
+
"author": "Developer"
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
Example Add-on
|
|
321
|
+
|
|
322
|
+
def build_sidebar_button(parent, app):
|
|
323
|
+
import customtkinter as ctk
|
|
324
|
+
|
|
325
|
+
return ctk.CTkButton(
|
|
326
|
+
parent,
|
|
327
|
+
text="My Workspace",
|
|
328
|
+
command=lambda: app.log_line(
|
|
329
|
+
"Workspace opened",
|
|
330
|
+
"dim"
|
|
331
|
+
)
|
|
332
|
+
)
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
def register(api):
|
|
336
|
+
api.register_ui(
|
|
337
|
+
"my-workspace",
|
|
338
|
+
build_sidebar_button,
|
|
339
|
+
location="sidebar",
|
|
340
|
+
label="My Workspace"
|
|
341
|
+
)
|
|
342
|
+
|
|
343
|
+
api.register_action(
|
|
344
|
+
"Sample action",
|
|
345
|
+
lambda: "Action completed"
|
|
346
|
+
)
|
|
347
|
+
|
|
348
|
+
Supported UI locations
|
|
349
|
+
|
|
350
|
+
Location| Purpose
|
|
351
|
+
"sidebar"| Sidebar components
|
|
352
|
+
"addons"| Add-ons page
|
|
353
|
+
"settings"| Settings contributions
|
|
354
|
+
"toolbar"| Toolbar components
|
|
355
|
+
"workspace"| Workspace components
|
|
356
|
+
|
|
357
|
+
Add-ons can also register named service implementations where the relevant Core integration exposes a service extension point.
|
|
358
|
+
|
|
359
|
+
They use the supported Add-on API rather than unrestricted monkey-patching of application internals.
|
|
360
|
+
|
|
361
|
+
Security: Add-ons are trusted Python code and execute with the user's operating-system permissions. They are not sandboxed.
|
|
362
|
+
|
|
363
|
+
Developer documentation: "Add-on Development" (ADDON-DEVELOPMENT.md)
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
🌐 3. MCP — Connect External Tools
|
|
368
|
+
|
|
369
|
+
Agent Code supports Model Context Protocol integration.
|
|
370
|
+
|
|
371
|
+
MCP allows the AI agent to connect to external tool servers and use capabilities exposed by those servers.
|
|
372
|
+
|
|
373
|
+
This provides another way to extend the agent without implementing every external integration as a native Skill.
|
|
374
|
+
|
|
375
|
+
MCP is managed separately from native Skills and application Add-ons.
|
|
376
|
+
|
|
377
|
+
Skills, Add-ons, and MCP are independent systems.
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
⚙️ Agent Modes and Permissions
|
|
382
|
+
|
|
383
|
+
Agent Code separates the way an agent approaches a task from the permissions granted to its operations.
|
|
384
|
+
|
|
385
|
+
📋 Plan Mode
|
|
386
|
+
|
|
387
|
+
Plan Mode focuses on understanding a task before implementation.
|
|
388
|
+
|
|
389
|
+
Useful for:
|
|
390
|
+
|
|
391
|
+
- Analyzing an existing project.
|
|
392
|
+
- Understanding requirements.
|
|
393
|
+
- Identifying files that may need changes.
|
|
394
|
+
- Preparing implementation steps.
|
|
395
|
+
- Reviewing an approach before building.
|
|
396
|
+
|
|
397
|
+
🛠️ Build Mode
|
|
398
|
+
|
|
399
|
+
Build Mode focuses on implementing the requested work.
|
|
400
|
+
|
|
401
|
+
The agent can use its available tools to:
|
|
402
|
+
|
|
403
|
+
- Create files.
|
|
404
|
+
- Modify source code.
|
|
405
|
+
- Execute supported commands.
|
|
406
|
+
- Investigate errors.
|
|
407
|
+
- Implement planned changes.
|
|
408
|
+
- Review task results.
|
|
409
|
+
|
|
410
|
+
⚡ Core Mode
|
|
411
|
+
|
|
412
|
+
Core Mode provides a lightweight agent configuration with a reduced tool surface.
|
|
413
|
+
|
|
414
|
+
It focuses on essential capabilities such as file creation, shell execution, and CURL operations.
|
|
415
|
+
|
|
416
|
+
Skills and Add-ons behavior follows the application's Core Mode policy.
|
|
417
|
+
|
|
418
|
+
🔐 Permission behavior
|
|
419
|
+
|
|
420
|
+
Agent Code provides configurable permission behavior.
|
|
421
|
+
|
|
422
|
+
Mode| Purpose
|
|
423
|
+
🛡️ Safe| Restrict potentially sensitive operations
|
|
424
|
+
⚙️ Normal| Balanced execution permissions
|
|
425
|
+
⚡ Auto| Automatically allow operations covered by the configured policy
|
|
426
|
+
👁️ Read-only| Restrict operations that modify files or execute commands
|
|
427
|
+
|
|
428
|
+
Automatic permission does not override remote-host restrictions, operating-system permissions, or unavailable execution environments.
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
🖥️ Execution Environments
|
|
433
|
+
|
|
434
|
+
Agent Code separates tool capabilities from their execution environment.
|
|
435
|
+
|
|
436
|
+
💻 Local Execution
|
|
437
|
+
|
|
438
|
+
Run supported operations on the host computer.
|
|
439
|
+
|
|
440
|
+
Useful for:
|
|
441
|
+
|
|
442
|
+
- Local development tools.
|
|
443
|
+
- Project files.
|
|
444
|
+
- Installed software.
|
|
445
|
+
- Local configuration.
|
|
446
|
+
- Browser access.
|
|
447
|
+
|
|
448
|
+
When the optional sandbox is disabled, shell commands execute on the host OS.
|
|
449
|
+
|
|
450
|
+
📦 Alpine Linux Sandbox
|
|
451
|
+
|
|
452
|
+
Agent Code supports an optional Podman-based Linux sandbox.
|
|
453
|
+
|
|
454
|
+
The sandbox uses:
|
|
455
|
+
|
|
456
|
+
Alpine Linux 3.22
|
|
457
|
+
|
|
458
|
+
It provides:
|
|
459
|
+
|
|
460
|
+
- Bash.
|
|
461
|
+
- Core Linux utilities.
|
|
462
|
+
- Git.
|
|
463
|
+
- CURL.
|
|
464
|
+
- Python and pip.
|
|
465
|
+
- GCC and G++ through Alpine build packages.
|
|
466
|
+
- Alpine package management.
|
|
467
|
+
|
|
468
|
+
Install additional packages inside the container using:
|
|
469
|
+
|
|
470
|
+
apk add --no-cache package-name
|
|
471
|
+
|
|
472
|
+
The project workspace is mounted into the container at:
|
|
473
|
+
|
|
474
|
+
/workspace
|
|
475
|
+
|
|
476
|
+
The sandbox uses a separate container environment, dropped capabilities, and "no-new-privileges".
|
|
477
|
+
|
|
478
|
+
However, the project workspace remains shared with the host. Containerization is not a guarantee against every form of malicious or destructive operation.
|
|
479
|
+
|
|
480
|
+
🌐 SSH Remote Execution
|
|
481
|
+
|
|
482
|
+
Connect Agent Code to remote development machines.
|
|
483
|
+
|
|
484
|
+
The SSH integration supports:
|
|
485
|
+
|
|
486
|
+
- Hostname or IP.
|
|
487
|
+
- SSH username.
|
|
488
|
+
- Custom port.
|
|
489
|
+
- Private-key path.
|
|
490
|
+
- SSH agent.
|
|
491
|
+
- OpenSSH configuration.
|
|
492
|
+
- Password authentication.
|
|
493
|
+
|
|
494
|
+
Remote commands are subject to the configured permission policy.
|
|
495
|
+
|
|
496
|
+
Unknown SSH host keys are not silently trusted. Verify the host fingerprint before accepting it.
|
|
497
|
+
|
|
498
|
+
Install the optional SSH dependency if required:
|
|
499
|
+
|
|
500
|
+
python -m pip install paramiko
|
|
501
|
+
|
|
502
|
+
Only connect to machines you are authorized to administer.
|
|
503
|
+
|
|
504
|
+
---
|
|
505
|
+
|
|
506
|
+
🌍 Browser Automation
|
|
507
|
+
|
|
508
|
+
Agent Code includes browser automation capabilities through its browser integration.
|
|
509
|
+
|
|
510
|
+
Browser tools can support workflows involving:
|
|
511
|
+
|
|
512
|
+
- Opening websites.
|
|
513
|
+
- Navigating pages.
|
|
514
|
+
- Interacting with web interfaces.
|
|
515
|
+
- Inspecting page content.
|
|
516
|
+
- Browser diagnostics.
|
|
517
|
+
|
|
518
|
+
A supported Chromium-based browser must be installed on the machine where browser automation runs.
|
|
519
|
+
|
|
520
|
+
Firefox and Chromium browser detection is included in the diagnostic workflow, but browser compatibility depends on the automation backend and installed browser components.
|
|
521
|
+
|
|
522
|
+
If automatic browser detection fails, check the browser executable configuration.
|
|
523
|
+
|
|
524
|
+
Run:
|
|
525
|
+
|
|
526
|
+
agent-code doctor
|
|
527
|
+
|
|
528
|
+
---
|
|
529
|
+
|
|
530
|
+
🤖 AI Providers and Models
|
|
531
|
+
|
|
532
|
+
Agent Code uses an OpenAI-compatible client architecture.
|
|
533
|
+
|
|
534
|
+
You can configure supported providers through the application's API and model settings.
|
|
535
|
+
|
|
536
|
+
Supported provider presets
|
|
537
|
+
|
|
538
|
+
Provider| Endpoint
|
|
539
|
+
OpenAI| "https://api.openai.com/v1"
|
|
540
|
+
Google AI Studio| "https://generativelanguage.googleapis.com/v1beta/openai/"
|
|
541
|
+
Anthropic| "https://api.anthropic.com/v1/"
|
|
542
|
+
OpenRouter| Provider preset
|
|
543
|
+
Custom| User-configured OpenAI-compatible endpoint
|
|
544
|
+
|
|
545
|
+
Provider compatibility depends on supported API features, model identifiers, and request formats.
|
|
546
|
+
|
|
547
|
+
The Anthropic compatibility endpoint uses the OpenAI SDK compatibility surface. Some native Claude API features may not be available through that interface.
|
|
548
|
+
|
|
549
|
+
🔑 Bring Your Own Key
|
|
550
|
+
|
|
551
|
+
Agent Code is designed around BYOK.
|
|
552
|
+
|
|
553
|
+
You control:
|
|
554
|
+
|
|
555
|
+
- Your AI provider.
|
|
556
|
+
- Your API credentials.
|
|
557
|
+
- Your selected model.
|
|
558
|
+
- Your API usage.
|
|
559
|
+
- Your provider spending.
|
|
560
|
+
|
|
561
|
+
There is no mandatory recurring AI subscription built into the application.
|
|
562
|
+
|
|
563
|
+
External providers may charge for their APIs or impose their own account requirements.
|
|
564
|
+
|
|
565
|
+
🔒 Credential storage
|
|
566
|
+
|
|
567
|
+
Provider credentials are stored through Python "keyring" in the operating system's credential store where supported.
|
|
568
|
+
|
|
569
|
+
Examples include:
|
|
570
|
+
|
|
571
|
+
- Windows Credential Manager.
|
|
572
|
+
- macOS Keychain.
|
|
573
|
+
- Linux Secret Service-compatible keyrings.
|
|
574
|
+
|
|
575
|
+
The JSON configuration stores credential references rather than newly saved API-key values.
|
|
576
|
+
|
|
577
|
+
If the operating-system credential store is unavailable, saving credentials fails rather than silently writing new secrets in plaintext.
|
|
578
|
+
|
|
579
|
+
---
|
|
580
|
+
|
|
581
|
+
🎨 Desktop Experience
|
|
582
|
+
|
|
583
|
+
Agent Code uses Python and CustomTkinter for its desktop interface.
|
|
584
|
+
|
|
585
|
+
The interface is organized around the development workspace.
|
|
586
|
+
|
|
587
|
+
Workspace features
|
|
588
|
+
|
|
589
|
+
- Chat-based interaction.
|
|
590
|
+
- Project navigation.
|
|
591
|
+
- Skills management.
|
|
592
|
+
- Add-ons management.
|
|
593
|
+
- MCP configuration.
|
|
594
|
+
- API and model settings.
|
|
595
|
+
- Help and documentation.
|
|
596
|
+
- Task status and activity information.
|
|
597
|
+
|
|
598
|
+
Activity Details
|
|
599
|
+
|
|
600
|
+
Agent Code separates the main conversation from internal task activity.
|
|
601
|
+
|
|
602
|
+
Activity Details OFF
|
|
603
|
+
|
|
604
|
+
The chat remains focused on user messages and assistant responses.
|
|
605
|
+
|
|
606
|
+
During a task, the compact status is:
|
|
607
|
+
|
|
608
|
+
"Working in project"
|
|
609
|
+
|
|
610
|
+
Internal settings, model events, checkpoints, and detailed task events stay outside the main conversation.
|
|
611
|
+
|
|
612
|
+
Activity Details ON
|
|
613
|
+
|
|
614
|
+
The activity panel provides access to detailed task and tool events, including completion information and recovery details.
|
|
615
|
+
|
|
616
|
+
Task stopping
|
|
617
|
+
|
|
618
|
+
Agent Code supports cooperative stop controls and a three-click force-stop gesture.
|
|
619
|
+
|
|
620
|
+
The force-stop behavior requests stronger cancellation of the agent's work and further AI/tool communication.
|
|
621
|
+
|
|
622
|
+
It is not designed to close the browser application.
|
|
623
|
+
|
|
624
|
+
Some blocking network calls or operations may only stop when their timeout or current operation returns.
|
|
625
|
+
|
|
626
|
+
Recovery and review
|
|
627
|
+
|
|
628
|
+
Task completion reports can include:
|
|
629
|
+
|
|
630
|
+
- Changed files.
|
|
631
|
+
- Text additions and deletions where safely measurable.
|
|
632
|
+
- Binary file identification.
|
|
633
|
+
- Diff review.
|
|
634
|
+
- Recovery information.
|
|
635
|
+
|
|
636
|
+
Review file changes and restore conflicts before applying recovery actions.
|
|
637
|
+
|
|
638
|
+
---
|
|
639
|
+
|
|
640
|
+
📥 Installation
|
|
641
|
+
|
|
642
|
+
Requirements
|
|
643
|
+
|
|
644
|
+
- Python 3.10 or newer.
|
|
645
|
+
- Tkinter.
|
|
646
|
+
- CustomTkinter.
|
|
647
|
+
- Internet access for remote AI providers.
|
|
648
|
+
- A compatible browser for browser automation.
|
|
649
|
+
|
|
650
|
+
Optional features require their respective dependencies.
|
|
651
|
+
|
|
652
|
+
Install from PyPI
|
|
653
|
+
|
|
654
|
+
The recommended installation method:
|
|
655
|
+
|
|
656
|
+
python -m pip install --upgrade pip
|
|
657
|
+
python -m pip install agent-code
|
|
658
|
+
|
|
659
|
+
Upgrade:
|
|
660
|
+
|
|
661
|
+
python -m pip install --upgrade agent-code
|
|
662
|
+
|
|
663
|
+
Ubuntu / Debian
|
|
664
|
+
|
|
665
|
+
Install the required system components:
|
|
666
|
+
|
|
667
|
+
sudo apt update
|
|
668
|
+
|
|
669
|
+
sudo apt install \
|
|
670
|
+
python3 \
|
|
671
|
+
python3-venv \
|
|
672
|
+
python3-tk \
|
|
673
|
+
chromium \
|
|
674
|
+
podman
|
|
675
|
+
|
|
676
|
+
Podman is optional unless you want the Linux sandbox.
|
|
677
|
+
|
|
678
|
+
Create a virtual environment:
|
|
679
|
+
|
|
680
|
+
python3 -m venv .venv
|
|
681
|
+
|
|
682
|
+
source .venv/bin/activate
|
|
683
|
+
|
|
684
|
+
python -m pip install --upgrade pip
|
|
685
|
+
|
|
686
|
+
python -m pip install agent-code
|
|
687
|
+
|
|
688
|
+
Windows
|
|
689
|
+
|
|
690
|
+
Install Python 3.10 or newer with Tcl/Tk support.
|
|
691
|
+
|
|
692
|
+
Install a compatible Chromium-based browser for browser automation.
|
|
693
|
+
|
|
694
|
+
Then:
|
|
695
|
+
|
|
696
|
+
python -m pip install agent-code
|
|
697
|
+
|
|
698
|
+
macOS
|
|
699
|
+
|
|
700
|
+
Install Python 3.10 or newer with Tcl/Tk support.
|
|
701
|
+
|
|
702
|
+
Install a compatible Chromium-based browser.
|
|
703
|
+
|
|
704
|
+
Then:
|
|
705
|
+
|
|
706
|
+
python3 -m pip install agent-code
|
|
707
|
+
|
|
708
|
+
Install from source
|
|
709
|
+
|
|
710
|
+
git clone https://github.com/agent-code-dev/agent-code.git
|
|
711
|
+
|
|
712
|
+
cd agent-code
|
|
713
|
+
|
|
714
|
+
python -m venv .venv
|
|
715
|
+
|
|
716
|
+
source .venv/bin/activate
|
|
717
|
+
|
|
718
|
+
python -m pip install --upgrade pip
|
|
719
|
+
|
|
720
|
+
python -m pip install .
|
|
721
|
+
|
|
722
|
+
On Windows, activate the virtual environment using:
|
|
723
|
+
|
|
724
|
+
.venv\Scripts\activate
|
|
725
|
+
|
|
726
|
+
---
|
|
727
|
+
|
|
728
|
+
🚀 Getting Started
|
|
729
|
+
|
|
730
|
+
Launch the desktop application
|
|
731
|
+
|
|
732
|
+
agent-code
|
|
733
|
+
|
|
734
|
+
Explicitly launch the GUI
|
|
735
|
+
|
|
736
|
+
agent-code gui
|
|
737
|
+
|
|
738
|
+
Launch the terminal interface
|
|
739
|
+
|
|
740
|
+
agent-code tui
|
|
741
|
+
|
|
742
|
+
The TUI is useful for headless Linux environments and SSH sessions.
|
|
743
|
+
|
|
744
|
+
On Linux, Agent Code can automatically select the TUI when no graphical display is available.
|
|
745
|
+
|
|
746
|
+
Check your installation
|
|
747
|
+
|
|
748
|
+
agent-code doctor
|
|
749
|
+
|
|
750
|
+
Generate machine-readable diagnostics:
|
|
751
|
+
|
|
752
|
+
agent-code doctor --json
|
|
753
|
+
|
|
754
|
+
Save a diagnostics report:
|
|
755
|
+
|
|
756
|
+
agent-code doctor --output report.json
|
|
757
|
+
|
|
758
|
+
The diagnostics report does not include API keys.
|
|
759
|
+
|
|
760
|
+
Get command help
|
|
761
|
+
|
|
762
|
+
agent-code --help
|
|
763
|
+
|
|
764
|
+
---
|
|
765
|
+
|
|
766
|
+
⚙️ First-Time Configuration
|
|
767
|
+
|
|
768
|
+
1. Launch Agent Code.
|
|
769
|
+
2. Open Settings.
|
|
770
|
+
3. Navigate to the API and model settings.
|
|
771
|
+
4. Select a provider.
|
|
772
|
+
5. Enter your API key.
|
|
773
|
+
6. Select a supported model.
|
|
774
|
+
7. Save the configuration.
|
|
775
|
+
8. Send a small test prompt.
|
|
776
|
+
|
|
777
|
+
Choose the project directory you want Agent Code to work in.
|
|
778
|
+
|
|
779
|
+
Project workspace files and chat data are associated with the active project, while Skills and Add-ons use per-user locations.
|
|
780
|
+
|
|
781
|
+
---
|
|
782
|
+
|
|
783
|
+
📁 Configuration and Data Locations
|
|
784
|
+
|
|
785
|
+
Agent Code uses platform-specific directories for user configuration and extensions.
|
|
786
|
+
|
|
787
|
+
Data| Linux / macOS| Windows
|
|
788
|
+
Configuration| "~/.config/agent-code/"| "%APPDATA%\agent-code\"
|
|
789
|
+
Skills| "~/.local/share/agent-code/skills/"| "%LOCALAPPDATA%\AgentCode\skills\"
|
|
790
|
+
Add-ons| "~/.local/share/agent-code/addons/"| "%LOCALAPPDATA%\AgentCode\addons\"
|
|
791
|
+
Project workspace| "./workspace/"| "./workspace/"
|
|
792
|
+
Project chats| "./chats/"| "./chats/"
|
|
793
|
+
|
|
794
|
+
The Linux directories respect the corresponding XDG environment variables.
|
|
795
|
+
|
|
796
|
+
Legacy project-local Skills can be migrated into the global Skills directory. Existing global Skills are not overwritten during migration.
|
|
797
|
+
|
|
798
|
+
---
|
|
799
|
+
|
|
800
|
+
🧰 Command Reference
|
|
801
|
+
|
|
802
|
+
Application commands
|
|
803
|
+
|
|
804
|
+
Command| Description
|
|
805
|
+
"agent-code"| Launch the application
|
|
806
|
+
"agent-code gui"| Explicitly launch the desktop GUI
|
|
807
|
+
"agent-code tui"| Launch the terminal interface
|
|
808
|
+
"agent-code doctor"| Check the local environment
|
|
809
|
+
"agent-code doctor --json"| Print diagnostic information as JSON
|
|
810
|
+
"agent-code doctor --output report.json"| Save a diagnostic report
|
|
811
|
+
"agent-code --help"| Display available commands
|
|
812
|
+
|
|
813
|
+
Skills commands
|
|
814
|
+
|
|
815
|
+
Command| Description
|
|
816
|
+
"agent-code skills list"| List bundled Skills
|
|
817
|
+
"agent-code skills install"| Install bundled Skills into the user/project environment
|
|
818
|
+
|
|
819
|
+
In-chat commands
|
|
820
|
+
|
|
821
|
+
The agent also supports built-in and extension-provided commands.
|
|
822
|
+
|
|
823
|
+
Examples include:
|
|
824
|
+
|
|
825
|
+
Command| Purpose
|
|
826
|
+
"/reset"| Reset conversation memory
|
|
827
|
+
"/history"| Display recent messages
|
|
828
|
+
"/skills"| Inspect loaded Skills and commands
|
|
829
|
+
"/save"| Save the conversation
|
|
830
|
+
"/open <file>"| Open a workspace file
|
|
831
|
+
|
|
832
|
+
Skills can register additional commands.
|
|
833
|
+
|
|
834
|
+
Add-on commands are namespaced, for example:
|
|
835
|
+
|
|
836
|
+
/sample-addon:status
|
|
837
|
+
|
|
838
|
+
---
|
|
839
|
+
|
|
840
|
+
🔐 Security
|
|
841
|
+
|
|
842
|
+
Agent Code is an AI development tool that can execute commands and load extensions. Its security depends on the selected execution environment and the code you choose to trust.
|
|
843
|
+
|
|
844
|
+
Local shell
|
|
845
|
+
|
|
846
|
+
When Podman sandboxing is disabled:
|
|
847
|
+
|
|
848
|
+
- Commands execute on the host operating system.
|
|
849
|
+
- Shell operators and known high-risk command patterns are restricted.
|
|
850
|
+
- Workspace boundaries are enforced where detectable.
|
|
851
|
+
- It is not a strong security boundary.
|
|
852
|
+
|
|
853
|
+
Podman sandbox
|
|
854
|
+
|
|
855
|
+
When enabled:
|
|
856
|
+
|
|
857
|
+
- Shell and background commands run in Alpine Linux 3.22.
|
|
858
|
+
- The project workspace is mounted into the container.
|
|
859
|
+
- Container capabilities are dropped.
|
|
860
|
+
- "no-new-privileges" is enabled.
|
|
861
|
+
- Outbound networking depends on Podman and host network configuration.
|
|
862
|
+
|
|
863
|
+
The sandbox runs as root inside the container, not as host root.
|
|
864
|
+
|
|
865
|
+
The workspace remains shared with the host, so commands can still change or delete project files.
|
|
866
|
+
|
|
867
|
+
Extension security
|
|
868
|
+
|
|
869
|
+
Component| Security consideration
|
|
870
|
+
Skills| Arbitrary Python code
|
|
871
|
+
Add-ons| Trusted Python code with user permissions
|
|
872
|
+
MCP| External tools may access exposed resources
|
|
873
|
+
Local shell| Executes on the host when sandboxing is disabled
|
|
874
|
+
SSH| Executes commands on the connected remote machine
|
|
875
|
+
|
|
876
|
+
Security recommendations
|
|
877
|
+
|
|
878
|
+
- Review Skills before installing them.
|
|
879
|
+
- Only install Add-ons from trusted developers.
|
|
880
|
+
- Connect only trusted MCP servers.
|
|
881
|
+
- Protect API credentials.
|
|
882
|
+
- Keep SSH private keys secure.
|
|
883
|
+
- Review commands before granting automatic permissions.
|
|
884
|
+
- Inspect file diffs before accepting changes.
|
|
885
|
+
- Treat web pages and repository content as untrusted input.
|
|
886
|
+
|
|
887
|
+
---
|
|
888
|
+
|
|
889
|
+
🛠️ Development
|
|
890
|
+
|
|
891
|
+
Clone the repository:
|
|
892
|
+
|
|
893
|
+
git clone https://github.com/agent-code-dev/agent-code.git
|
|
894
|
+
|
|
895
|
+
cd agent-code
|
|
896
|
+
|
|
897
|
+
Create a development environment:
|
|
898
|
+
|
|
899
|
+
python -m venv .venv
|
|
900
|
+
|
|
901
|
+
source .venv/bin/activate
|
|
902
|
+
|
|
903
|
+
Install the project:
|
|
904
|
+
|
|
905
|
+
python -m pip install --upgrade pip
|
|
906
|
+
|
|
907
|
+
python -m pip install -e .
|
|
908
|
+
|
|
909
|
+
Run tests:
|
|
910
|
+
|
|
911
|
+
python -m pytest -q
|
|
912
|
+
|
|
913
|
+
Build distribution packages:
|
|
914
|
+
|
|
915
|
+
python -m pip install build
|
|
916
|
+
|
|
917
|
+
python -m build
|
|
918
|
+
|
|
919
|
+
The project uses a "src/"-based Python package structure.
|
|
920
|
+
|
|
921
|
+
---
|
|
922
|
+
|
|
923
|
+
📚 Documentation
|
|
924
|
+
|
|
925
|
+
The repository includes offline-friendly HTML documentation.
|
|
926
|
+
|
|
927
|
+
Documentation| Description
|
|
928
|
+
📖 "User Guide" (docs/index.html)| Installation, configuration, workflows, permissions, browser, SSH and troubleshooting
|
|
929
|
+
🧩 "Skills Guide" (docs/skills.html)| Skill structure, tool schemas, commands and development
|
|
930
|
+
🔌 "Add-on Guide" (docs/addons.html)| Application extension API, UI contributions, actions, hooks and services
|
|
931
|
+
📋 "Release Notes" (RELEASE-NOTES-2.0.0.md)| Agent Code 2.0.0 changes
|
|
932
|
+
🖥️ "Server Documentation" (server/README.md)| Separate Skills registry backend
|
|
933
|
+
|
|
934
|
+
---
|
|
935
|
+
|
|
936
|
+
🗂️ Project Structure
|
|
937
|
+
|
|
938
|
+
Agent-code/
|
|
939
|
+
│
|
|
940
|
+
├── src/
|
|
941
|
+
│ └── agent_code/
|
|
942
|
+
│ ├── __init__.py
|
|
943
|
+
│ ├── __main__.py
|
|
944
|
+
│ ├── agent.py
|
|
945
|
+
│ ├── loader.py
|
|
946
|
+
│ ├── addons.py
|
|
947
|
+
│ ├── advanced_features.py
|
|
948
|
+
│ ├── mcp_manager.py
|
|
949
|
+
│ ├── paths.py
|
|
950
|
+
│ ├── projects.py
|
|
951
|
+
│ ├── skill_manager.py
|
|
952
|
+
│ ├── doctor.py
|
|
953
|
+
│ ├── cli.py
|
|
954
|
+
│ ├── tui.py
|
|
955
|
+
│ │
|
|
956
|
+
│ └── data/
|
|
957
|
+
│ ├── icons/
|
|
958
|
+
│ └── skills/
|
|
959
|
+
│
|
|
960
|
+
├── docs/
|
|
961
|
+
│ ├── index.html
|
|
962
|
+
│ ├── skills.html
|
|
963
|
+
│ └── addons.html
|
|
964
|
+
│
|
|
965
|
+
├── server/
|
|
966
|
+
│ ├── skill-server.py
|
|
967
|
+
│ ├── README.md
|
|
968
|
+
│ └── LICENSE
|
|
969
|
+
│
|
|
970
|
+
├── tests/
|
|
971
|
+
│
|
|
972
|
+
├── ADDON-DEVELOPMENT.md
|
|
973
|
+
├── RELEASE-NOTES-2.0.0.md
|
|
974
|
+
├── README.md
|
|
975
|
+
├── LICENSE
|
|
976
|
+
├── MANIFEST.in
|
|
977
|
+
└── pyproject.toml
|
|
978
|
+
|
|
979
|
+
---
|
|
980
|
+
|
|
981
|
+
🗺️ Roadmap
|
|
982
|
+
|
|
983
|
+
Areas of continued development:
|
|
984
|
+
|
|
985
|
+
- 🚀 Improve agent reliability and task execution.
|
|
986
|
+
- 🧠 Reduce unnecessary AI context and token consumption.
|
|
987
|
+
- 🧩 Expand the Skills ecosystem.
|
|
988
|
+
- 🔌 Expand supported Add-on extension points.
|
|
989
|
+
- 🌐 Improve MCP integration.
|
|
990
|
+
- 📦 Improve sandbox reliability.
|
|
991
|
+
- 🖥️ Improve cross-platform compatibility.
|
|
992
|
+
- 🔐 Strengthen extension security.
|
|
993
|
+
- 🎨 Improve the desktop experience.
|
|
994
|
+
- ⚙️ Improve provider compatibility and configuration.
|
|
995
|
+
|
|
996
|
+
---
|
|
997
|
+
|
|
998
|
+
🤝 Contributing
|
|
999
|
+
|
|
1000
|
+
Contributions are welcome!
|
|
1001
|
+
|
|
1002
|
+
You can help Agent Code by:
|
|
1003
|
+
|
|
1004
|
+
- Reporting bugs.
|
|
1005
|
+
- Suggesting features.
|
|
1006
|
+
- Improving documentation.
|
|
1007
|
+
- Creating Skills.
|
|
1008
|
+
- Developing Add-ons.
|
|
1009
|
+
- Testing compatibility.
|
|
1010
|
+
- Reviewing architecture.
|
|
1011
|
+
- Submitting pull requests.
|
|
1012
|
+
|
|
1013
|
+
For significant changes, open an issue before starting implementation so the proposed direction can be discussed.
|
|
1014
|
+
|
|
1015
|
+
Repository: "agent-code-dev/agent-code" (https://github.com/agent-code-dev/agent-code)
|
|
1016
|
+
|
|
1017
|
+
---
|
|
1018
|
+
|
|
1019
|
+
📜 License
|
|
1020
|
+
|
|
1021
|
+
Agent Code uses separate licenses for its application and standalone server.
|
|
1022
|
+
|
|
1023
|
+
Component| License
|
|
1024
|
+
Agent Code application| MIT
|
|
1025
|
+
Standalone registry backend ("server/")| AGPL-3.0-only
|
|
1026
|
+
|
|
1027
|
+
The server's AGPL license does not replace the application's MIT license.
|
|
1028
|
+
|
|
1029
|
+
See:
|
|
1030
|
+
|
|
1031
|
+
- "Application LICENSE" (LICENSE)
|
|
1032
|
+
- "Server LICENSE" (server/LICENSE)
|
|
1033
|
+
|
|
1034
|
+
---
|
|
1035
|
+
|
|
1036
|
+
<p align="center">
|
|
1037
|
+
<img src="src/agent_code/data/icons/agent-code.png" width="65" alt="Agent Code">
|
|
1038
|
+
</p><h2 align="center">⚡ Agent Code 2.1</h2><p align="center">
|
|
1039
|
+
<b>Your AI coding agent. Your tools. Your environment.</b>
|
|
1040
|
+
<br><br>
|
|
1041
|
+
<a href="https://github.com/agent-code-dev/agent-code">GitHub</a>
|
|
1042
|
+
·
|
|
1043
|
+
<a href="https://pypi.org/project/agent-code/">PyPI</a>
|
|
1044
|
+
·
|
|
1045
|
+
<a href="https://agent-code-dev.github.io">Website</a>
|
|
1046
|
+
</p><p align="center">
|
|
1047
|
+
<sub>Built with Python · Designed for extensibility</sub>
|
|
1048
|
+
</p>
|