Rust authswap CLI with WebDAV sync and Codex app-server restart
Project description
authswap
authswap is a Rust command-line tool for switching local Codex auth profiles
and optionally syncing those profiles through WebDAV.
Features
- Interactive account picker for local Codex profiles.
- Account add, switch, refresh, and delete actions inside the interactive UI.
- WebDAV sync from the interactive UI.
- Sanitized
config.tomlsync that excludes machine-local project sections. - PyPI wheel packaging for users who do not have Rust installed.
Commands
authswap
authswap reads and writes the standard Codex auth layout:
~/.codex/auth.json
~/.codex/config.toml
~/.codex/accounts/*.auth.json
~/.codex/accounts/registry.json
Install From PyPI
pip install authswap
authswap
Published wheels include the compiled authswap binary, so end users do not
need Rust, Node.js, or npm when a compatible wheel is available.
WebDAV Sync
authswap supports custom WebDAV services. Press w in the account picker to
configure the server URL and credentials, test the connection, and push or pull
account data. When no local accounts exist, the first-run dialog also offers
WebDAV so accounts can be restored without signing in first.
The settings file is stored at ~/.codex/authswap.json with private file
permissions.
These files contain active credentials. Sync only to a trusted WebDAV server.
Usage Limits
The interactive account picker shows cached 5-hour and weekly limit usage from
~/.codex/accounts/registry.json. Press r on the selected account to request
fresh usage from Codex. Press t to refresh all accounts, with 100ms between
requests. Both actions update the local cache.
Limit columns show the remaining percentage and the remaining time until reset, for
example 28% 1h 20m.
Press s in the account picker to configure whether authswap restarts
codex app-server after switching accounts. The setting is off by default and
is saved in ~/.codex/authswap.json.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file authswap-1.0.3.tar.gz.
File metadata
- Download URL: authswap-1.0.3.tar.gz
- Upload date:
- Size: 51.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdb16e96be30bc6503fe3902d4e69e2913d8af1604b7e238980f13a3d8e892a5
|
|
| MD5 |
d7c7e74bb5db60b5872caad3e9acff3d
|
|
| BLAKE2b-256 |
ce86a4b2c08a8168e6c88b075ad0c33a0a61de73408cf7e2aeddc4a988fc2256
|
Provenance
The following attestation bundles were made for authswap-1.0.3.tar.gz:
Publisher:
rust-pypi-wheels.yml on shevekwang/authswap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
authswap-1.0.3.tar.gz -
Subject digest:
cdb16e96be30bc6503fe3902d4e69e2913d8af1604b7e238980f13a3d8e892a5 - Sigstore transparency entry: 1992823803
- Sigstore integration time:
-
Permalink:
shevekwang/authswap@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/shevekwang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
rust-pypi-wheels.yml@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Trigger Event:
push
-
Statement type:
File details
Details for the file authswap-1.0.3-py3-none-win_arm64.whl.
File metadata
- Download URL: authswap-1.0.3-py3-none-win_arm64.whl
- Upload date:
- Size: 2.1 MB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
477580efefcf6c20516c5250cc2b9c57ea22afa015c6f459a45e4278924936be
|
|
| MD5 |
88d467b0b8d5819b2b2c7a721f7b18b2
|
|
| BLAKE2b-256 |
88ea30b9ec108864e3bf816ad805e0db2b71a49a8fc06a207960079680c8eaec
|
Provenance
The following attestation bundles were made for authswap-1.0.3-py3-none-win_arm64.whl:
Publisher:
rust-pypi-wheels.yml on shevekwang/authswap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
authswap-1.0.3-py3-none-win_arm64.whl -
Subject digest:
477580efefcf6c20516c5250cc2b9c57ea22afa015c6f459a45e4278924936be - Sigstore transparency entry: 1992825486
- Sigstore integration time:
-
Permalink:
shevekwang/authswap@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/shevekwang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
rust-pypi-wheels.yml@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Trigger Event:
push
-
Statement type:
File details
Details for the file authswap-1.0.3-py3-none-win_amd64.whl.
File metadata
- Download URL: authswap-1.0.3-py3-none-win_amd64.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7f13cb51897868127d0d2eb6547f902c4f01e15caa56fca17362ccbc0e9dad8
|
|
| MD5 |
4bcffc9a5d9828077f024ae83ee50995
|
|
| BLAKE2b-256 |
1a86ac2395a1bee2cafa1f17f092ccbbd281e634707a85bb34f70bf8ae1c71cf
|
Provenance
The following attestation bundles were made for authswap-1.0.3-py3-none-win_amd64.whl:
Publisher:
rust-pypi-wheels.yml on shevekwang/authswap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
authswap-1.0.3-py3-none-win_amd64.whl -
Subject digest:
b7f13cb51897868127d0d2eb6547f902c4f01e15caa56fca17362ccbc0e9dad8 - Sigstore transparency entry: 1992825278
- Sigstore integration time:
-
Permalink:
shevekwang/authswap@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/shevekwang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
rust-pypi-wheels.yml@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Trigger Event:
push
-
Statement type:
File details
Details for the file authswap-1.0.3-py3-none-win32.whl.
File metadata
- Download URL: authswap-1.0.3-py3-none-win32.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10a8cc5585a7420b767f9e76e376df27ce1a43e2e3d6dd720f626b1245fa43cb
|
|
| MD5 |
30e75ba482aeaa518d4bf76862791c2f
|
|
| BLAKE2b-256 |
891a2de0b8ec7daa5b0d288c4b9b0c84265b3c87e50f9de006e1e490e1727fc1
|
Provenance
The following attestation bundles were made for authswap-1.0.3-py3-none-win32.whl:
Publisher:
rust-pypi-wheels.yml on shevekwang/authswap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
authswap-1.0.3-py3-none-win32.whl -
Subject digest:
10a8cc5585a7420b767f9e76e376df27ce1a43e2e3d6dd720f626b1245fa43cb - Sigstore transparency entry: 1992824474
- Sigstore integration time:
-
Permalink:
shevekwang/authswap@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/shevekwang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
rust-pypi-wheels.yml@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Trigger Event:
push
-
Statement type:
File details
Details for the file authswap-1.0.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: authswap-1.0.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95d4bdbcb8ad435a8ed8fe93e7ced6f2d8d012a070bd5878ece0b64ee769189c
|
|
| MD5 |
ad7e965e2b8324504dec7c93aa88aba8
|
|
| BLAKE2b-256 |
9b55760dde0c1391db67e6b146b6bce579055a56007bddfdd02bf9a9e0f008de
|
Provenance
The following attestation bundles were made for authswap-1.0.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
rust-pypi-wheels.yml on shevekwang/authswap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
authswap-1.0.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
95d4bdbcb8ad435a8ed8fe93e7ced6f2d8d012a070bd5878ece0b64ee769189c - Sigstore transparency entry: 1992824291
- Sigstore integration time:
-
Permalink:
shevekwang/authswap@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/shevekwang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
rust-pypi-wheels.yml@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Trigger Event:
push
-
Statement type:
File details
Details for the file authswap-1.0.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: authswap-1.0.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d122a5a8da98bd11cf336ff6cd184a4f3ce59abca0051655191a4eb5faf8fd1a
|
|
| MD5 |
21c9953fc59db1a04cc8918248940679
|
|
| BLAKE2b-256 |
7439121e798e3c401a2e725951a1b5cf87e80ee87a8cf97b4bff5861f10ac6d6
|
Provenance
The following attestation bundles were made for authswap-1.0.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
rust-pypi-wheels.yml on shevekwang/authswap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
authswap-1.0.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
d122a5a8da98bd11cf336ff6cd184a4f3ce59abca0051655191a4eb5faf8fd1a - Sigstore transparency entry: 1992824669
- Sigstore integration time:
-
Permalink:
shevekwang/authswap@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/shevekwang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
rust-pypi-wheels.yml@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Trigger Event:
push
-
Statement type:
File details
Details for the file authswap-1.0.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: authswap-1.0.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 2.0 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cb1e77880ede2873c5c766e70142d11764f07cefe90f23265237c1f24726d56
|
|
| MD5 |
26e8a2f6186a76b85b9e8f48f0c18959
|
|
| BLAKE2b-256 |
9b7781dcf801408297d6f98dd5787ba3e022a0a9c6329a43b85986572a0abc30
|
Provenance
The following attestation bundles were made for authswap-1.0.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:
Publisher:
rust-pypi-wheels.yml on shevekwang/authswap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
authswap-1.0.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl -
Subject digest:
7cb1e77880ede2873c5c766e70142d11764f07cefe90f23265237c1f24726d56 - Sigstore transparency entry: 1992824130
- Sigstore integration time:
-
Permalink:
shevekwang/authswap@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/shevekwang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
rust-pypi-wheels.yml@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Trigger Event:
push
-
Statement type:
File details
Details for the file authswap-1.0.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: authswap-1.0.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b5ba2bf28a6cbda645cc682d88cc264e41b9db9276f8d8bed1c750b6dcd7f43
|
|
| MD5 |
9f2dc1148cf22ddd58e114946607d0ce
|
|
| BLAKE2b-256 |
35f8c8489ab46c716c84deb603497f17d6b09f484ce2f5beacfba17f65aa1fea
|
Provenance
The following attestation bundles were made for authswap-1.0.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
rust-pypi-wheels.yml on shevekwang/authswap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
authswap-1.0.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
6b5ba2bf28a6cbda645cc682d88cc264e41b9db9276f8d8bed1c750b6dcd7f43 - Sigstore transparency entry: 1992823987
- Sigstore integration time:
-
Permalink:
shevekwang/authswap@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/shevekwang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
rust-pypi-wheels.yml@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Trigger Event:
push
-
Statement type:
File details
Details for the file authswap-1.0.3-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: authswap-1.0.3-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b3d0866238b16482ed9b3e1a7febdec67378e2a7e1ac468000ef51701b53618
|
|
| MD5 |
27ef51de8df76d8bdb0c64374e749777
|
|
| BLAKE2b-256 |
0897516e8433754a159f72cbc07e5668cc4356fdebd20459811220bc7d874728
|
Provenance
The following attestation bundles were made for authswap-1.0.3-py3-none-macosx_11_0_arm64.whl:
Publisher:
rust-pypi-wheels.yml on shevekwang/authswap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
authswap-1.0.3-py3-none-macosx_11_0_arm64.whl -
Subject digest:
4b3d0866238b16482ed9b3e1a7febdec67378e2a7e1ac468000ef51701b53618 - Sigstore transparency entry: 1992824910
- Sigstore integration time:
-
Permalink:
shevekwang/authswap@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/shevekwang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
rust-pypi-wheels.yml@925514aee6b26cc3136a2a3e1eccfdcab573f43a -
Trigger Event:
push
-
Statement type: