cdx-manager 0.2.1 → 0.3.2
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.
- package/README.md +34 -8
- package/changelogs/CHANGELOGS_0_3_0.md +32 -0
- package/changelogs/CHANGELOGS_0_3_1.md +27 -0
- package/changelogs/CHANGELOGS_0_3_2.md +21 -0
- package/install.sh +61 -0
- package/package.json +3 -1
- package/pyproject.toml +44 -0
- package/src/cli.py +6 -2
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ If you use AI coding tools at scale ; multiple accounts, multiple providers : yo
|
|
|
6
6
|
|
|
7
7
|
One command to launch any session. Zero auth juggling.
|
|
8
8
|
|
|
9
|
-
[](LICENSE) ](LICENSE)  
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -69,6 +69,38 @@ One command to launch any session. Zero auth juggling.
|
|
|
69
69
|
|
|
70
70
|
### Install
|
|
71
71
|
|
|
72
|
+
From npm:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npm install -g cdx-manager
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
With pipx:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
pipx install cdx-manager
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
With uv:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
uv tool install cdx-manager
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
With the standalone GitHub installer:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
curl -fsSL https://raw.githubusercontent.com/AlexAgo83/cdx-manager/main/install.sh | sh
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
For a specific version:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
curl -fsSL https://raw.githubusercontent.com/AlexAgo83/cdx-manager/main/install.sh | CDX_VERSION=v0.3.2 sh
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
From source:
|
|
103
|
+
|
|
72
104
|
```bash
|
|
73
105
|
git clone <repo>
|
|
74
106
|
cd cdx-manager
|
|
@@ -83,18 +115,12 @@ To uninstall:
|
|
|
83
115
|
make uninstall
|
|
84
116
|
```
|
|
85
117
|
|
|
86
|
-
Alternatively, for a non-symlinked global install:
|
|
118
|
+
Alternatively, for a non-symlinked global source install:
|
|
87
119
|
|
|
88
120
|
```bash
|
|
89
121
|
npm install -g .
|
|
90
122
|
```
|
|
91
123
|
|
|
92
|
-
Once published to npm:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
npm install -g cdx-manager
|
|
96
|
-
```
|
|
97
|
-
|
|
98
124
|
### Environment
|
|
99
125
|
|
|
100
126
|
By default, `cdx` stores all data under `~/.cdx/`. Override with:
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# CHANGELOGS_0_3_0
|
|
2
|
+
|
|
3
|
+
Release date: 2026-04-16
|
|
4
|
+
|
|
5
|
+
## CDX Manager 0.3.0
|
|
6
|
+
|
|
7
|
+
CDX Manager 0.3.0 adds Python-native and standalone installation paths in addition to npm.
|
|
8
|
+
|
|
9
|
+
### Packaging
|
|
10
|
+
|
|
11
|
+
- Added `pyproject.toml` so the CLI can be installed with `pipx`, `pip`, or `uv tool`.
|
|
12
|
+
- Added the Python console entrypoint `cdx = "src.cli:cli_entry"`.
|
|
13
|
+
- Added `install.sh` for GitHub Release based installs into `~/.local/share/cdx-manager` with a symlink in `~/.local/bin`.
|
|
14
|
+
- Included `install.sh` and `pyproject.toml` in the npm package file list.
|
|
15
|
+
- Documented npm, pipx, uv, curl installer, and source installation paths.
|
|
16
|
+
- Added GitHub Actions automation for PyPI publication when a GitHub Release is published.
|
|
17
|
+
|
|
18
|
+
### Validation
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm run lint
|
|
22
|
+
npm test
|
|
23
|
+
python3 -m venv /tmp/cdx-pyinstall
|
|
24
|
+
/tmp/cdx-pyinstall/bin/pip install --no-build-isolation .
|
|
25
|
+
/tmp/cdx-pyinstall/bin/cdx --version
|
|
26
|
+
npm --cache /tmp/cdx-npm-cache publish --dry-run
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Notes
|
|
30
|
+
|
|
31
|
+
- PyPI publication is now technically possible, but still requires PyPI credentials and an explicit publish step.
|
|
32
|
+
- The standalone installer defaults to the latest GitHub Release and supports `CDX_VERSION=vX.Y.Z` for pinned installs.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# CHANGELOGS_0_3_1
|
|
2
|
+
|
|
3
|
+
Release date: 2026-04-16
|
|
4
|
+
|
|
5
|
+
## CDX Manager 0.3.1
|
|
6
|
+
|
|
7
|
+
CDX Manager 0.3.1 is a release-channel synchronization update.
|
|
8
|
+
|
|
9
|
+
### Packaging
|
|
10
|
+
|
|
11
|
+
- Uses npm Trusted Publishing through GitHub Actions OIDC instead of long-lived npm tokens.
|
|
12
|
+
- Keeps npm, PyPI, GitHub Releases, pipx, uv, and the standalone installer aligned on the same release version.
|
|
13
|
+
- Retains the Python-native packaging and standalone install support introduced in 0.3.0.
|
|
14
|
+
|
|
15
|
+
### Validation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm run lint
|
|
19
|
+
npm test
|
|
20
|
+
npm --cache /tmp/cdx-npm-cache publish --dry-run
|
|
21
|
+
python -m build
|
|
22
|
+
python -m twine check dist/*
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Notes
|
|
26
|
+
|
|
27
|
+
- This release exists because the npm Trusted Publishing workflow was added after the `v0.3.0` tag. A fresh release is required for GitHub Actions to run the updated workflow definition for npm publishing.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# CHANGELOGS_0_3_2
|
|
2
|
+
|
|
3
|
+
Release date: 2026-04-16
|
|
4
|
+
|
|
5
|
+
## CDX Manager 0.3.2
|
|
6
|
+
|
|
7
|
+
CDX Manager 0.3.2 updates the npm release workflow to use the npm CLI version required for Trusted Publishing.
|
|
8
|
+
|
|
9
|
+
### Packaging
|
|
10
|
+
|
|
11
|
+
- Runs the npm publish workflow on Node 24.
|
|
12
|
+
- Installs npm 11 before publishing so GitHub Actions OIDC trusted publishing is supported.
|
|
13
|
+
- Keeps npm, PyPI, GitHub Releases, pipx, uv, and the standalone installer aligned on the same release version.
|
|
14
|
+
|
|
15
|
+
### Validation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm run lint
|
|
19
|
+
npm test
|
|
20
|
+
npm --cache /tmp/cdx-npm-cache publish --dry-run
|
|
21
|
+
```
|
package/install.sh
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env sh
|
|
2
|
+
set -eu
|
|
3
|
+
|
|
4
|
+
REPO="AlexAgo83/cdx-manager"
|
|
5
|
+
VERSION="${CDX_VERSION:-}"
|
|
6
|
+
PREFIX="${PREFIX:-$HOME/.local}"
|
|
7
|
+
BIN_DIR="${BIN_DIR:-$PREFIX/bin}"
|
|
8
|
+
INSTALL_ROOT="${CDX_INSTALL_ROOT:-$PREFIX/share/cdx-manager}"
|
|
9
|
+
|
|
10
|
+
need() {
|
|
11
|
+
if ! command -v "$1" >/dev/null 2>&1; then
|
|
12
|
+
echo "cdx install: missing required command: $1" >&2
|
|
13
|
+
exit 1
|
|
14
|
+
fi
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
need curl
|
|
18
|
+
need tar
|
|
19
|
+
need python3
|
|
20
|
+
|
|
21
|
+
if [ -z "$VERSION" ]; then
|
|
22
|
+
VERSION="$(
|
|
23
|
+
curl -fsSL "https://api.github.com/repos/$REPO/releases/latest" |
|
|
24
|
+
python3 -c 'import json, sys; print(json.load(sys.stdin)["tag_name"])'
|
|
25
|
+
)"
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
case "$VERSION" in
|
|
29
|
+
v*) TAG="$VERSION" ;;
|
|
30
|
+
*) TAG="v$VERSION" ;;
|
|
31
|
+
esac
|
|
32
|
+
|
|
33
|
+
TMP_DIR="$(mktemp -d)"
|
|
34
|
+
cleanup() {
|
|
35
|
+
rm -rf "$TMP_DIR"
|
|
36
|
+
}
|
|
37
|
+
trap cleanup EXIT INT TERM
|
|
38
|
+
|
|
39
|
+
ARCHIVE_URL="https://github.com/$REPO/archive/refs/tags/$TAG.tar.gz"
|
|
40
|
+
curl -fsSL "$ARCHIVE_URL" -o "$TMP_DIR/cdx-manager.tar.gz"
|
|
41
|
+
tar -xzf "$TMP_DIR/cdx-manager.tar.gz" -C "$TMP_DIR"
|
|
42
|
+
|
|
43
|
+
SRC_DIR="$(find "$TMP_DIR" -mindepth 1 -maxdepth 1 -type d | head -n 1)"
|
|
44
|
+
TARGET_DIR="$INSTALL_ROOT/${TAG#v}"
|
|
45
|
+
|
|
46
|
+
mkdir -p "$INSTALL_ROOT" "$BIN_DIR"
|
|
47
|
+
rm -rf "$TARGET_DIR"
|
|
48
|
+
mkdir -p "$TARGET_DIR"
|
|
49
|
+
|
|
50
|
+
cp -R "$SRC_DIR"/. "$TARGET_DIR"/
|
|
51
|
+
chmod +x "$TARGET_DIR/bin/cdx"
|
|
52
|
+
ln -sfn "$TARGET_DIR/bin/cdx" "$BIN_DIR/cdx"
|
|
53
|
+
|
|
54
|
+
echo "Installed cdx $TAG to $TARGET_DIR"
|
|
55
|
+
echo "Linked $BIN_DIR/cdx"
|
|
56
|
+
case ":$PATH:" in
|
|
57
|
+
*":$BIN_DIR:"*) ;;
|
|
58
|
+
*)
|
|
59
|
+
echo "Add $BIN_DIR to PATH to run cdx from anywhere." >&2
|
|
60
|
+
;;
|
|
61
|
+
esac
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cdx-manager",
|
|
3
|
-
"version": "0.2
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Terminal session manager for Codex and Claude accounts.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Alexandre Agostini",
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
"bin",
|
|
28
28
|
"changelogs",
|
|
29
29
|
"src",
|
|
30
|
+
"install.sh",
|
|
31
|
+
"pyproject.toml",
|
|
30
32
|
"README.md",
|
|
31
33
|
"LICENSE"
|
|
32
34
|
],
|
package/pyproject.toml
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "cdx-manager"
|
|
7
|
+
version = "0.3.2"
|
|
8
|
+
description = "Terminal session manager for Codex and Claude accounts."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "Alexandre Agostini" }
|
|
14
|
+
]
|
|
15
|
+
keywords = ["codex", "claude", "cli", "terminal", "session-manager", "ai-tools"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 3 - Alpha",
|
|
18
|
+
"Environment :: Console",
|
|
19
|
+
"Intended Audience :: Developers",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"Programming Language :: Python :: 3.9",
|
|
22
|
+
"Programming Language :: Python :: 3.10",
|
|
23
|
+
"Programming Language :: Python :: 3.11",
|
|
24
|
+
"Programming Language :: Python :: 3.12",
|
|
25
|
+
"Programming Language :: Python :: 3.13",
|
|
26
|
+
"Topic :: Software Development",
|
|
27
|
+
"Topic :: Terminals",
|
|
28
|
+
]
|
|
29
|
+
dependencies = []
|
|
30
|
+
|
|
31
|
+
[project.urls]
|
|
32
|
+
Homepage = "https://github.com/AlexAgo83/cdx-manager"
|
|
33
|
+
Repository = "https://github.com/AlexAgo83/cdx-manager.git"
|
|
34
|
+
Issues = "https://github.com/AlexAgo83/cdx-manager/issues"
|
|
35
|
+
Changelog = "https://github.com/AlexAgo83/cdx-manager/tree/main/changelogs"
|
|
36
|
+
|
|
37
|
+
[project.scripts]
|
|
38
|
+
cdx = "cdx_manager.cli:cli_entry"
|
|
39
|
+
|
|
40
|
+
[tool.setuptools]
|
|
41
|
+
packages = ["cdx_manager"]
|
|
42
|
+
|
|
43
|
+
[tool.setuptools.package-dir]
|
|
44
|
+
cdx_manager = "src"
|
package/src/cli.py
CHANGED
|
@@ -39,7 +39,7 @@ from .status_view import (
|
|
|
39
39
|
_format_status_rows,
|
|
40
40
|
)
|
|
41
41
|
|
|
42
|
-
VERSION = "0.2
|
|
42
|
+
VERSION = "0.3.2"
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
# ---------------------------------------------------------------------------
|
|
@@ -180,9 +180,13 @@ def main(argv, options=None):
|
|
|
180
180
|
raise CdxError(f"Unknown command: {command}. Use cdx --help.")
|
|
181
181
|
|
|
182
182
|
|
|
183
|
-
|
|
183
|
+
def cli_entry():
|
|
184
184
|
try:
|
|
185
185
|
raise SystemExit(main(sys.argv[1:]))
|
|
186
186
|
except CdxError as error:
|
|
187
187
|
sys.stderr.write(f"{format_error(error)}\n")
|
|
188
188
|
raise SystemExit(error.exit_code)
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
if __name__ == "__main__":
|
|
192
|
+
cli_entry()
|