codemagic-agent-tools 1.2.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.
- codemagic_agent_tools-1.2.0/.agents/plugins/marketplace.json +20 -0
- codemagic_agent_tools-1.2.0/.claude-plugin/marketplace.json +15 -0
- codemagic_agent_tools-1.2.0/.claude-plugin/plugin.json +19 -0
- codemagic_agent_tools-1.2.0/.python-version +1 -0
- codemagic_agent_tools-1.2.0/CONTRIBUTING.md +70 -0
- codemagic_agent_tools-1.2.0/LICENSE +21 -0
- codemagic_agent_tools-1.2.0/MANIFEST.in +8 -0
- codemagic_agent_tools-1.2.0/PKG-INFO +287 -0
- codemagic_agent_tools-1.2.0/README.md +269 -0
- codemagic_agent_tools-1.2.0/docs/agent-support.md +143 -0
- codemagic_agent_tools-1.2.0/docs/assets/header.png +0 -0
- codemagic_agent_tools-1.2.0/docs/compatibility.md +136 -0
- codemagic_agent_tools-1.2.0/docs/mcp.md +154 -0
- codemagic_agent_tools-1.2.0/docs/publishing.md +109 -0
- codemagic_agent_tools-1.2.0/plugin.json +20 -0
- codemagic_agent_tools-1.2.0/pyproject.toml +54 -0
- codemagic_agent_tools-1.2.0/schemas/plugin.schema.json +65 -0
- codemagic_agent_tools-1.2.0/scripts/build_plugin.py +42 -0
- codemagic_agent_tools-1.2.0/scripts/validate_package.py +56 -0
- codemagic_agent_tools-1.2.0/setup.cfg +4 -0
- codemagic_agent_tools-1.2.0/skills/codemagic/SKILL.md +111 -0
- codemagic_agent_tools-1.2.0/skills/codemagic/agents/openai.yaml +4 -0
- codemagic_agent_tools-1.2.0/skills/codemagic/references/api.md +93 -0
- codemagic_agent_tools-1.2.0/skills/codemagic/scripts/codemagic_agent_tools.egg-info/PKG-INFO +287 -0
- codemagic_agent_tools-1.2.0/skills/codemagic/scripts/codemagic_agent_tools.egg-info/SOURCES.txt +37 -0
- codemagic_agent_tools-1.2.0/skills/codemagic/scripts/codemagic_agent_tools.egg-info/dependency_links.txt +1 -0
- codemagic_agent_tools-1.2.0/skills/codemagic/scripts/codemagic_agent_tools.egg-info/entry_points.txt +3 -0
- codemagic_agent_tools-1.2.0/skills/codemagic/scripts/codemagic_agent_tools.egg-info/requires.txt +3 -0
- codemagic_agent_tools-1.2.0/skills/codemagic/scripts/codemagic_agent_tools.egg-info/top_level.txt +2 -0
- codemagic_agent_tools-1.2.0/skills/codemagic/scripts/codemagic_api.py +474 -0
- codemagic_agent_tools-1.2.0/skills/codemagic/scripts/codemagic_mcp.py +238 -0
- codemagic_agent_tools-1.2.0/skills/codemagic-signing/SKILL.md +77 -0
- codemagic_agent_tools-1.2.0/skills/codemagic-signing/agents/openai.yaml +4 -0
- codemagic_agent_tools-1.2.0/skills/codemagic-signing/references/android.md +92 -0
- codemagic_agent_tools-1.2.0/skills/codemagic-signing/references/ios.md +84 -0
- codemagic_agent_tools-1.2.0/tests/test_codemagic_api.py +256 -0
- codemagic_agent_tools-1.2.0/tests/test_codemagic_mcp.py +264 -0
- codemagic_agent_tools-1.2.0/tests/test_distribution.py +97 -0
- codemagic_agent_tools-1.2.0/uv.lock +1314 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "codemagic-tools",
|
|
3
|
+
"interface": {
|
|
4
|
+
"displayName": "Codemagic community tools"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "codemagic",
|
|
9
|
+
"source": {
|
|
10
|
+
"source": "local",
|
|
11
|
+
"path": "./"
|
|
12
|
+
},
|
|
13
|
+
"policy": {
|
|
14
|
+
"installation": "AVAILABLE",
|
|
15
|
+
"authentication": "ON_USE"
|
|
16
|
+
},
|
|
17
|
+
"category": "Developer Tools"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "codemagic-tools",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "Helge Sverre"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "codemagic",
|
|
9
|
+
"source": "./",
|
|
10
|
+
"description": "Unofficial Codemagic build operations and iOS/Android signing guidance for coding agents.",
|
|
11
|
+
"version": "1.2.0"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"description": "Unofficial Codemagic CI/CD tools for AI coding agents."
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "codemagic",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "Unofficial Codemagic build operations and iOS/Android signing guidance for coding agents.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Helge Sverre",
|
|
7
|
+
"url": "https://github.com/HelgeSverre"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/HelgeSverre/codemagic-skill",
|
|
10
|
+
"repository": "https://github.com/HelgeSverre/codemagic-skill",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"codemagic",
|
|
14
|
+
"ci-cd",
|
|
15
|
+
"claude-code",
|
|
16
|
+
"codex",
|
|
17
|
+
"agent-skills"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.11
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
The Git repository is the canonical source. Keep the API implementation at
|
|
4
|
+
`skills/codemagic/scripts/codemagic_api.py`; the Python package entry point and
|
|
5
|
+
both agent plugins use this same file. The optional MCP adapter lives beside it
|
|
6
|
+
in `codemagic_mcp.py` and shares authentication, HTTP handling, and build
|
|
7
|
+
validation. The skill must remain usable when its folder is copied on its own,
|
|
8
|
+
without the rest of the repository.
|
|
9
|
+
|
|
10
|
+
## Local setup
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
uv sync --locked --extra mcp
|
|
14
|
+
uv run --extra mcp ruff check .
|
|
15
|
+
uv run --extra mcp ruff format .
|
|
16
|
+
uv run --extra mcp python -m unittest discover -s tests -v
|
|
17
|
+
uv run --extra mcp python scripts/validate_package.py
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
To develop the command globally from this checkout:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
uv tool install --editable '.[mcp]'
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
For a standalone skill installation, link `skills/codemagic` into
|
|
27
|
+
`~/.agents/skills/codemagic` for Codex or `~/.claude/skills/codemagic` for Claude.
|
|
28
|
+
Do not replace an existing installation without preserving its local notes.
|
|
29
|
+
Plugin developers can use `claude --plugin-dir .` or add this checkout as a local
|
|
30
|
+
Codex marketplace.
|
|
31
|
+
|
|
32
|
+
Keep credentials and account-specific IDs out of the public skill. Local context
|
|
33
|
+
can live under `~/.config/codemagic-api/context.md`, which agents read only when
|
|
34
|
+
relevant to the requested account.
|
|
35
|
+
|
|
36
|
+
## Tests and releases
|
|
37
|
+
|
|
38
|
+
Tests mock HTTP responses and cover request contracts, credential precedence,
|
|
39
|
+
redaction, cancellation, pagination, and uncertain request outcomes. MCP tests also
|
|
40
|
+
exercise schemas, tool annotations, and stdio with current and legacy handshakes.
|
|
41
|
+
Package validation checks the portable manifest against the vendored Agent Plugins
|
|
42
|
+
schema and verifies that the two marketplace catalogs resolve to the same plugin.
|
|
43
|
+
Archive tests extract the plugin and run the bundled CLI from another directory.
|
|
44
|
+
|
|
45
|
+
The vendored `schemas/plugin.schema.json` is the published
|
|
46
|
+
[Agent Plugins 1.0 schema](https://agent-plugins.org/schemas/1.0.0/plugin.schema.json).
|
|
47
|
+
Refresh it deliberately when changing the manifest format, and rerun validation.
|
|
48
|
+
|
|
49
|
+
Run the real-client checks in [docs/compatibility.md](docs/compatibility.md) after
|
|
50
|
+
changing skill discovery, manifests, or bundled paths. Use synthetic IDs and
|
|
51
|
+
`--dry-run`; a live start/cancel is not needed to verify packaging.
|
|
52
|
+
|
|
53
|
+
Keep versions aligned in `pyproject.toml`, `plugin.json`,
|
|
54
|
+
`.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, and the CLI's
|
|
55
|
+
`VERSION` constant. Run `uv lock` after changing project metadata or dependencies.
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
uv build
|
|
59
|
+
uv run --extra mcp python scripts/build_plugin.py
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Publish a GitHub release from `main` with a tag matching the package version
|
|
63
|
+
(for example, `v1.2.0`). `.github/workflows/publish.yml` validates and builds
|
|
64
|
+
Python distributions, then uploads them to PyPI using Trusted Publishing.
|
|
65
|
+
Set up the pending publisher once using the exact fields in
|
|
66
|
+
[Publishing](docs/publishing.md). No PyPI API token or repository secret is needed.
|
|
67
|
+
PRs and manual workflow runs build and validate without publishing.
|
|
68
|
+
|
|
69
|
+
Attach the plugin ZIP from the successful CI run to the GitHub release. The ZIP
|
|
70
|
+
is not uploaded to PyPI. Official plugin-directory submission remains separate.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Helge Sverre
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
include LICENSE README.md CONTRIBUTING.md plugin.json uv.lock .python-version
|
|
2
|
+
recursive-include skills *.md *.py *.yaml
|
|
3
|
+
recursive-include .claude-plugin *.json
|
|
4
|
+
recursive-include .agents/plugins *.json
|
|
5
|
+
recursive-include docs *.md *.png
|
|
6
|
+
recursive-include tests *.py
|
|
7
|
+
recursive-include scripts *.py
|
|
8
|
+
recursive-include schemas *.json
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: codemagic-agent-tools
|
|
3
|
+
Version: 1.2.0
|
|
4
|
+
Summary: Unofficial Codemagic CLI, MCP server, and mobile signing skills for coding agents
|
|
5
|
+
Author: Helge Sverre
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Repository, https://github.com/HelgeSverre/codemagic-skill
|
|
8
|
+
Project-URL: Issues, https://github.com/HelgeSverre/codemagic-skill/issues
|
|
9
|
+
Keywords: codemagic,codex,claude-code,ci-cd,agent-skills
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
12
|
+
Requires-Python: >=3.11
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
Provides-Extra: mcp
|
|
16
|
+
Requires-Dist: mcp<3,>=2.2; extra == "mcp"
|
|
17
|
+
Dynamic: license-file
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
# Codemagic Skill
|
|
22
|
+
|
|
23
|
+
[](https://github.com/HelgeSverre/codemagic-skill/actions/workflows/ci.yml)
|
|
24
|
+
[](https://www.python.org/)
|
|
25
|
+
[](https://docs.astral.sh/uv/)
|
|
26
|
+
[](https://docs.astral.sh/ruff/)
|
|
27
|
+
[](#install-the-plugin)
|
|
28
|
+
[](https://github.com/HelgeSverre/codemagic-skill/blob/main/LICENSE)
|
|
29
|
+
|
|
30
|
+
Give your coding agent the tools to operate your Codemagic builds. Find an
|
|
31
|
+
app, select a workflow, start a build from a branch or tag, inspect the result,
|
|
32
|
+
and locate its artifacts—all through the official Codemagic REST API.
|
|
33
|
+
|
|
34
|
+
The API skill's bundled Python CLI has **zero runtime dependencies** and also
|
|
35
|
+
runs on its own. An optional [MCP server](#mcp-tools) exposes the same API as
|
|
36
|
+
typed agent tools. No hosted service or PyPI publication is required.
|
|
37
|
+
|
|
38
|
+
The package contains two portable skills:
|
|
39
|
+
|
|
40
|
+
- **`codemagic`** operates apps, workflows, builds and artifacts.
|
|
41
|
+
- **`codemagic-signing`** diagnoses iOS/Android signing and helps configure an
|
|
42
|
+
existing project while preserving its signing identity. It distinguishes
|
|
43
|
+
provisioning, Gradle wiring, store permissions and runtime certificate issues.
|
|
44
|
+
|
|
45
|
+
The signing skill complements the official
|
|
46
|
+
[codemagic-init](https://docs.codemagic.io/troubleshooting/codemagic-init/) setup
|
|
47
|
+
tool. It does not provision account credentials or start builds merely by loading.
|
|
48
|
+
|
|
49
|
+
> “Show the latest failed build for my app and which steps failed.”
|
|
50
|
+
>
|
|
51
|
+
> “Build the staging workflow from `feature/login`.”
|
|
52
|
+
>
|
|
53
|
+
> “Find the APK and IPA artifacts from that build.”
|
|
54
|
+
|
|
55
|
+
## Install the plugin
|
|
56
|
+
|
|
57
|
+
API commands require Python 3.11+ and normal shell access. Use a current client
|
|
58
|
+
with the skill or plugin support described below. The package includes the CLI;
|
|
59
|
+
agents can run the bundled script directly.
|
|
60
|
+
|
|
61
|
+
### Claude Code
|
|
62
|
+
|
|
63
|
+
```sh
|
|
64
|
+
claude plugin marketplace add HelgeSverre/codemagic-skill
|
|
65
|
+
claude plugin install codemagic@codemagic-tools
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Start a new session and use `/codemagic:codemagic`, or ask a Codemagic question.
|
|
69
|
+
For a local checkout, try `claude --plugin-dir /path/to/codemagic-skill`.
|
|
70
|
+
|
|
71
|
+
### Codex
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
codex plugin marketplace add HelgeSverre/codemagic-skill
|
|
75
|
+
codex plugin add codemagic@codemagic-tools
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Start a new session and select the `codemagic` skill from the plugin. You can
|
|
79
|
+
also ask directly: “Use the Codemagic skill to list my apps.”
|
|
80
|
+
|
|
81
|
+
### GitHub Copilot CLI
|
|
82
|
+
|
|
83
|
+
```sh
|
|
84
|
+
copilot plugin install HelgeSverre/codemagic-skill
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The existing Agent Plugins manifest and `skills/` directory work directly.
|
|
88
|
+
|
|
89
|
+
### Gemini CLI
|
|
90
|
+
|
|
91
|
+
```sh
|
|
92
|
+
gemini skills install https://github.com/HelgeSverre/codemagic-skill.git --path skills
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Gemini installs the skills directly; it does not need an extension wrapper.
|
|
96
|
+
Workspace installations also require a trusted workspace. Skill activation and
|
|
97
|
+
shell execution remain subject to Gemini's normal consent and permissions.
|
|
98
|
+
|
|
99
|
+
### Other agent harnesses
|
|
100
|
+
|
|
101
|
+
OpenCode, Cursor, Amp, Pi, Goose and current Windsurf/Devin support the portable
|
|
102
|
+
skill folder. See the [support matrix and installation recipes](https://github.com/HelgeSverre/codemagic-skill/blob/main/docs/agent-support.md)
|
|
103
|
+
for tested discovery results, supported paths and limitations. Cline uses its
|
|
104
|
+
own documented skill directory.
|
|
105
|
+
|
|
106
|
+
The Vercel Skills CLI also discovers this repository. List available skills first,
|
|
107
|
+
then choose a target rather than installing into every detected agent:
|
|
108
|
+
|
|
109
|
+
```sh
|
|
110
|
+
npx skills add HelgeSverre/codemagic-skill --list
|
|
111
|
+
npx skills add HelgeSverre/codemagic-skill --skill codemagic --agent amp --global
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
For signing guidance, select `--skill codemagic-signing`.
|
|
115
|
+
|
|
116
|
+
### Install only the skills
|
|
117
|
+
|
|
118
|
+
Copy a self-contained folder under `skills/` into your client's user skill
|
|
119
|
+
directory. This works without plugin support:
|
|
120
|
+
|
|
121
|
+
```sh
|
|
122
|
+
git clone https://github.com/HelgeSverre/codemagic-skill.git
|
|
123
|
+
mkdir -p ~/.agents/skills ~/.claude/skills
|
|
124
|
+
cp -R codemagic-skill/skills/codemagic ~/.agents/skills/codemagic
|
|
125
|
+
cp -R codemagic-skill/skills/codemagic ~/.claude/skills/codemagic
|
|
126
|
+
# Optional companion skill, installed independently in the same way:
|
|
127
|
+
cp -R codemagic-skill/skills/codemagic-signing ~/.agents/skills/codemagic-signing
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Use either the plugin or the standalone skill in each client to avoid duplicate
|
|
131
|
+
entries. Codex also supports `~/.codex/skills` in installations that use that
|
|
132
|
+
location. For development, symlink the skill directory to keep the checkout
|
|
133
|
+
canonical; see [Contributing](https://github.com/HelgeSverre/codemagic-skill/blob/main/CONTRIBUTING.md).
|
|
134
|
+
|
|
135
|
+
## MCP tools
|
|
136
|
+
|
|
137
|
+
Use the optional MCP server when you want your agent to call tools directly.
|
|
138
|
+
Install it once with [uv](https://docs.astral.sh/uv/):
|
|
139
|
+
|
|
140
|
+
```sh
|
|
141
|
+
uv tool install 'codemagic-agent-tools[mcp] @ git+https://github.com/HelgeSverre/codemagic-skill.git'
|
|
142
|
+
claude mcp add --scope user --transport stdio codemagic -- codemagic-mcp
|
|
143
|
+
codex mcp add codemagic -- codemagic-mcp
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Configure only the clients you use. The agent starts `codemagic-mcp` on demand
|
|
147
|
+
as a local stdio process. It uses the same `CODEMAGIC_API_KEY` or saved login as
|
|
148
|
+
the CLI. For Codex, add `env_vars = ["CODEMAGIC_API_KEY"]` under
|
|
149
|
+
`[mcp_servers.codemagic]` when using environment authentication.
|
|
150
|
+
|
|
151
|
+
Tools cover authentication status, teams, apps, workflows, builds, steps,
|
|
152
|
+
artifacts, build previews, build starts and cancellation. Previews require no
|
|
153
|
+
credentials and send no requests. Installing the skill/plugin alone keeps the
|
|
154
|
+
MCP server optional; adding it does not duplicate the skills.
|
|
155
|
+
|
|
156
|
+
See [MCP setup](https://github.com/HelgeSverre/codemagic-skill/blob/main/docs/mcp.md) for JSON configuration, local development, credentials,
|
|
157
|
+
the tool list, and verification. The MCP extra requires the official Python MCP
|
|
158
|
+
SDK; the CLI still needs only Python 3.11+.
|
|
159
|
+
|
|
160
|
+
## Authentication
|
|
161
|
+
|
|
162
|
+
Create a personal API token in Codemagic under **Teams → Personal Account →
|
|
163
|
+
Integrations → Codemagic API → Show**. Some UI versions call this **Account
|
|
164
|
+
settings → API token**. The token has your account's team permissions.
|
|
165
|
+
|
|
166
|
+
Expose it as `CODEMAGIC_API_KEY` in the environment that launches your agent or
|
|
167
|
+
terminal. `CODEMAGIC_API_TOKEN` and `CM_API_TOKEN` are also supported, in that
|
|
168
|
+
order after `CODEMAGIC_API_KEY`.
|
|
169
|
+
|
|
170
|
+
For a local terminal login, install the CLI below and run:
|
|
171
|
+
|
|
172
|
+
```sh
|
|
173
|
+
codemagic-api auth login
|
|
174
|
+
codemagic-api auth status
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
The hidden prompt verifies the token before saving it. On macOS/Linux, the
|
|
178
|
+
fallback token file is `~/.config/codemagic-api/token` (or under
|
|
179
|
+
`$XDG_CONFIG_HOME`), with permissions `0600`. It is plaintext. Windows uses an
|
|
180
|
+
environment variable instead of token-file login. No token belongs in this repo,
|
|
181
|
+
plugin manifests, prompts, or shell command arguments.
|
|
182
|
+
|
|
183
|
+
## Standalone CLI
|
|
184
|
+
|
|
185
|
+
Install from Git with [uv](https://docs.astral.sh/uv/):
|
|
186
|
+
|
|
187
|
+
```sh
|
|
188
|
+
uv tool install git+https://github.com/HelgeSverre/codemagic-skill.git
|
|
189
|
+
codemagic-api --help
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Or run from a checkout without installing anything:
|
|
193
|
+
|
|
194
|
+
```sh
|
|
195
|
+
python3 skills/codemagic/scripts/codemagic_api.py --help
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
| Task | Command |
|
|
199
|
+
| --- | --- |
|
|
200
|
+
| List teams | `codemagic-api teams` |
|
|
201
|
+
| Find team apps | `codemagic-api apps --team TEAM_ID --name my-app` |
|
|
202
|
+
| List workflows | `codemagic-api workflows APP_ID` |
|
|
203
|
+
| Recent builds | `codemagic-api builds --team TEAM_ID --app APP_ID` |
|
|
204
|
+
| Build details | `codemagic-api build BUILD_ID` |
|
|
205
|
+
| Step statuses | `codemagic-api actions BUILD_ID` |
|
|
206
|
+
| Artifact URLs | `codemagic-api artifacts BUILD_ID` |
|
|
207
|
+
| Cancel a build | `codemagic-api cancel BUILD_ID` |
|
|
208
|
+
|
|
209
|
+
Start a build with the **workflow ID**, which may differ from its display name:
|
|
210
|
+
|
|
211
|
+
```sh
|
|
212
|
+
codemagic-api start --app APP_ID --workflow WORKFLOW_ID \
|
|
213
|
+
--branch feature/login --dry-run
|
|
214
|
+
|
|
215
|
+
# Submit the same request after reviewing the preview.
|
|
216
|
+
codemagic-api start --app APP_ID --workflow WORKFLOW_ID \
|
|
217
|
+
--branch feature/login
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Use exactly one of `--branch` or `--tag`. `--inputs-file` and
|
|
221
|
+
`--environment-file` accept JSON objects for workflow inputs and environment
|
|
222
|
+
overrides. List commands return pagination metadata; use `--page` or `--cursor`
|
|
223
|
+
to fetch subsequent results. Output is JSON, with diagnostics on stderr.
|
|
224
|
+
|
|
225
|
+
For other documented JSON endpoints:
|
|
226
|
+
|
|
227
|
+
```sh
|
|
228
|
+
codemagic-api api GET '/teams/TEAM_ID/variable-groups'
|
|
229
|
+
codemagic-api api POST '/apps/APP_ID/builds' --data-file request.json --dry-run
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Read the [API notes](https://github.com/HelgeSverre/codemagic-skill/blob/main/skills/codemagic/references/api.md) for payload formats,
|
|
233
|
+
version differences, and endpoint mappings.
|
|
234
|
+
|
|
235
|
+
## Behavior to know
|
|
236
|
+
|
|
237
|
+
- A selected workflow can publish to stores or testers. Starting that workflow
|
|
238
|
+
runs its configured publishing steps too.
|
|
239
|
+
- A build request accepted with HTTP 202 is queued, not completed. Its ID may
|
|
240
|
+
briefly return 404 while Codemagic creates the build.
|
|
241
|
+
- Requests are never retried automatically. After an uncertain build-start
|
|
242
|
+
outcome, check recent builds before submitting again.
|
|
243
|
+
- API calls use v3, except cancellation, which still uses Codemagic's documented
|
|
244
|
+
legacy endpoint.
|
|
245
|
+
- `actions` returns step statuses and scripts, not full raw logs. `artifacts`
|
|
246
|
+
lists artifact metadata and URLs; it does not download files or create public links.
|
|
247
|
+
- Token values, sensitive field names, and environment/input values are redacted
|
|
248
|
+
from responses. Build scripts and artifact URLs can still contain private data.
|
|
249
|
+
|
|
250
|
+
## Development and verification
|
|
251
|
+
|
|
252
|
+
```sh
|
|
253
|
+
uv sync --locked --extra mcp
|
|
254
|
+
uv run --extra mcp ruff check .
|
|
255
|
+
uv run --extra mcp ruff format --check .
|
|
256
|
+
uv run --extra mcp python -m unittest discover -s tests -v
|
|
257
|
+
uv run --extra mcp python scripts/validate_package.py
|
|
258
|
+
uv build
|
|
259
|
+
uv run --extra mcp python scripts/build_plugin.py
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
CI runs lint, formatting, package validation, and offline tests on macOS, Linux,
|
|
263
|
+
and Windows, including MCP discovery and calls over stdio. It also builds the Python wheel/sdist and distributable plugin ZIP.
|
|
264
|
+
It does not need a Codemagic token and never starts a real build.
|
|
265
|
+
|
|
266
|
+
The [PyPI publishing workflow](https://github.com/HelgeSverre/codemagic-skill/blob/main/docs/publishing.md)
|
|
267
|
+
validates Python distributions on PRs and publishes on GitHub releases using
|
|
268
|
+
Trusted Publishing. Git installation works independently of PyPI. For releases
|
|
269
|
+
available on PyPI, use
|
|
270
|
+
`uv tool install 'codemagic-agent-tools[mcp]'` for the CLI and MCP server, or
|
|
271
|
+
`uv tool install codemagic-agent-tools` for the CLI alone.
|
|
272
|
+
|
|
273
|
+
See [compatibility verification](https://github.com/HelgeSverre/codemagic-skill/blob/main/docs/compatibility.md) for the tested clients,
|
|
274
|
+
test boundaries, and steps to repeat the agent checks. See
|
|
275
|
+
[Contributing](https://github.com/HelgeSverre/codemagic-skill/blob/main/CONTRIBUTING.md) for the canonical source layout.
|
|
276
|
+
|
|
277
|
+
## License and credits
|
|
278
|
+
|
|
279
|
+
Code and documentation are [MIT licensed](https://github.com/HelgeSverre/codemagic-skill/blob/main/LICENSE). The header illustration was
|
|
280
|
+
AI-generated for this project using Codemagic's visual identity as inspiration.
|
|
281
|
+
Codemagic names, logos, and other trademarks remain the property of their
|
|
282
|
+
respective owners; the software license grants no trademark rights.
|
|
283
|
+
|
|
284
|
+
**Disclaimer:** This is an unofficial community project. It is not affiliated
|
|
285
|
+
with, endorsed by, or sponsored by Codemagic or Nevercode Ltd. Claude and Codex
|
|
286
|
+
are trademarks of their respective owners; this project is not endorsed by
|
|
287
|
+
Anthropic or OpenAI.
|