Skip to main content

caudex

Run your Jupyter notebooks on Kaggle's free GPUs, from your terminal.

Write a notebook on your laptop, send it to Kaggle, watch it run, get your files back. No browser tabs, no dropdown menus, no refreshing a page to see if it finished.

It uses your own Kaggle account and your own free weekly quota. Your notebooks, credentials and outputs go straight to Kaggle from your machine — never through anyone else's servers — and every file stays on your machine.


Install

pip install caudex

To update later:

pip install --upgrade caudex

You need Python 3.11 or newer and a free Kaggle account.

caudex --version tells you what you have. On Windows, close any running caudex first — an open shell or editor panel holds caudex.exe and the upgrade fails on a file lock rather than a permissions problem.

Works on Windows, Linux, and macOS on Apple Silicon (M1 and later). Intel Macs are not supported — pip will say it cannot find a matching distribution rather than installing something that does not run.


Step 1 — connect your Kaggle account

You do this once.

caudex auth --setup

It will ask for your Kaggle username and an API key. To get the key:

  1. Go to kaggle.com, click your profile picture → Settings
  2. Scroll to API → click Create New Token
  3. A file called kaggle.json downloads — open it in any text editor
  4. Copy the two values into the prompt

Check it worked:

caudex whoami

Step 2 — make a notebook project

caudex init train.ipynb

This creates a folder with a starter notebook inside it, and tells you where it is. Open that notebook in Jupyter, VS Code, or whatever you normally use, and write your code.

One thing to know: anything you want to keep must be saved to /kaggle/working/.

model.save("/kaggle/working/model.keras")
df.to_csv("/kaggle/working/scores.csv", index=False)

That folder is the only thing that comes back to you. Everything else on the Kaggle machine disappears when the run ends.


Step 3 — run it

caudex execute --gpu

That one command does the whole job: uploads your notebook, starts it on Kaggle, streams the output to your screen as it happens, waits for it to finish, and downloads your files.

Leave off --gpu and it runs on a CPU instead — which doesn't use any of your GPU hours, so it's the cheap way to check your code works before spending quota on it.

When it finishes you'll see where your files went, and a summary of how long each cell took.


The easier way: open the shell

Typing caudex on its own opens an interactive session:

 ██████╗ █████╗ ██╗   ██╗██████╗ ███████╗██╗  ██╗
██╔════╝██╔══██╗██║   ██║██╔══██╗██╔════╝╚██╗██╔╝
██║     ███████║██║   ██║██║  ██║█████╗   ╚███╔╝
██║     ██╔══██║██║   ██║██║  ██║██╔══╝   ██╔██╗
╚██████╗██║  ██║╚██████╔╝██████╔╝███████╗██╔╝ ██╗
 ╚═════╝╚═╝  ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝  ╚═╝

  0.9.12
  your-username  ·  GPU 12h left
  no project — try:  init train.ipynb
  /  commands    ^C  cancel    ^D  exit

Inside it you can drop the caudex prefix and the folder name — it remembers which project you're working on:

> use ./my-experiment
> execute --gpu
> logs

Press / to see every command in a menu; arrow keys to pick one, Enter to accept it, Enter again to run. Ctrl-C cancels whatever is running without closing the session. Ctrl-D or exit leaves.

It remembers your history between sessions, and Tab completes commands, options and file paths.


Watching a long run

caudex ui

A live dashboard: your notebooks on the left, the current run's status and log tail on the right, your remaining quota along the bottom. j/k to move, Enter to follow a notebook's log, q to leave.

If you'd rather just tail the log:

caudex logs --follow

Things you'll want sooner or later

I want to… Type this
See how much GPU time I have left caudex quota
List my notebooks on Kaggle caudex notebooks
Check on a run I stopped watching caudex status
See hardware, timing and quota for a run caudex status --detail
See which notebooks are running right now caudex notebooks --status
Re-check a long log without re-reading it caudex logs --cursor, then --since N
Read the log of a run that failed caudex logs
Download the results again caudex pull
Download just the metrics, not the checkpoints caudex pull --only "metrics*.json"
Download everything except the weights caudex pull --exclude "*.pt"
Check whether an uploaded dataset is ready caudex dataset status owner/name
Switch a project between CPU and GPU caudex runtime use gpu
Find where my files are being saved caudex paths show
Turn a .py script into a notebook caudex convert script.py
Use a Kaggle dataset in my notebook caudex dataset attach owner/name

Add --help to anything for the full list of options.

caudex pull works on any run, including one that crashed — whatever the notebook wrote before it stopped comes back, which is usually the log you need. And caudex dataset upload --update --message "epoch-2 weights" records why this version exists, right on Kaggle.


Where your files go

Run caudex paths show and it will tell you exactly. By default:

  • Your notebook projects live wherever you made them
  • Results come back to a folder per notebook, under your user directory
  • Your Kaggle token sits in ~/.kaggle/kaggle.json — the same file the official kaggle command uses, so the two work side by side

You can change where results land:

caudex paths set output_dir ~/kaggle-results

If something goes wrong

"Kaggle auth failed" — your token has expired or been revoked. Make a new one at kaggle.com → Settings → API → Create New Token, then run caudex auth --setup again.

The run stops and says it timed out — that means caudex gave up watching, not that your notebook died. It is probably still running on Kaggle and still using your quota. Check it with caudex status, or use caudex execute --on-timeout cancel next time if you'd rather it stopped the run too.

Your notebook produced no files — anything you want back has to be written to /kaggle/working/. Files written anywhere else are thrown away when the run ends.

You ran out of GPU hours — Kaggle gives you a fixed number per week and resets them on a fixed day; caudex quota shows both. CPU runs don't touch that budget, so you can keep working while you wait.


Exit codes, for scripts

0 worked · 1 failed · 2 you typed something wrong · 124 gave up waiting

124 is deliberately not 1: a run that outlives your patience is not a run that broke.


Licence

Business Source License 1.1, from 0.6.0 onward. Free to use for real work; not to resell as a hosted service, and not to strip the licence check out of. It converts automatically to Apache-2.0 on 2030-08-20.

Versions 0.2.0–0.5.2 were released under Apache-2.0 and remain so permanently.

The full text ships in every release as LICENSE. For alternative licensing, contact mdsohanurislamshuvo@gmail.com.

What talks to the network

reaches
notebooks, datasets, runs, outputs kaggle.com only, with your credentials
caudex auth --licence / --licence-key heliontechltd.com, when you run them
a gated command, at most once a day heliontechltd.com — the licence check
free commands, and gated ones already checked today nothing of ours

Your Kaggle credentials are never sent to us and no file passes through our servers.

What needs a licence

From 0.7.0, the commands that send work to Kaggle need one. Getting it is free:

caudex auth --licence

Free without one — enough to see whether caudex is for you:

caudex quota how much GPU time you have left
caudex notebooks your notebooks on Kaggle
caudex whoami which account you are on
caudex auth, caudex paths sign in, and find your own files
caudex (the shell), and --help on anything look around

Needs a licence — push, execute, pull, logs, status, watch, run, ui, dataset, init, convert, runtime.

The check reads a file on your machine and is silent when it passes. It asks our server at most once a day, and if we are unreachable caudex keeps working for another two weeks rather than blaming your key for our outage.

From 0.8.0 that file holds a licence we sign. Its plan, expiry, id and the key it belongs to are covered by an Ed25519 signature, checked against a public key built into caudex — locally, no network. Editing the file no longer works.

Two honest caveats. A signature proves what your licence says, not that it is still live, which is what the daily check is for. And the public key sits in a binary you own, so this is not tamper-proofing — anyone who can patch that binary can bypass any check it makes. What changed is that forging a licence went from editing JSON in Notepad to patching a compiled extension.

Licences from 0.6.0 and 0.7.0 keep working and upgrade themselves the next time you run a command online.

Release files for caudex 0.9.14

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for caudex 0.9.14
File
caudex-0.9.14-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
caudex-0.9.14-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
caudex-0.9.14-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
caudex-0.9.14-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
caudex-0.9.14-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
caudex-0.9.14-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
caudex-0.9.14-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
caudex-0.9.14-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
caudex-0.9.14-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 10.5 MB

Release files / caudex-0.9.14-cp313-cp313-win_amd64.whl

Download URL caudex-0.9.14-cp313-cp313-win_amd64.whl
Size 942.5 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
f8704eb62f3e2a228d43e670a1e0af2bfd4c72ca95eaa6633b2bdad1e1708b16
BLAKE2b-256 checksum
How to use checksums
4b64a94e1b8f9fb8c0a839a60ce45fddeb67f7a3c020e7dcc75662f349b35dd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / caudex-0.9.14-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL caudex-0.9.14-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
be6a1c85bec19171d35e33e4f9d325fc4693321e01d9c05a6aa8142152b82091
BLAKE2b-256 checksum
How to use checksums
6b569fa5cc372729457057657bcc9e2235868453f5b686053e9b53787b9796d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / caudex-0.9.14-cp313-cp313-macosx_11_0_arm64.whl

Download URL caudex-0.9.14-cp313-cp313-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4cafb3bfc9e496424da330dca82aaa18256ea9bd398ec60f2edf4c39721d4536
BLAKE2b-256 checksum
How to use checksums
cff8a9e8f9c2ee5dd247f7ef89e98de31c248e88ef29513918c43c43e96f7653
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / caudex-0.9.14-cp312-cp312-win_amd64.whl

Download URL caudex-0.9.14-cp312-cp312-win_amd64.whl
Size 941.7 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
e8ca193c666646d045025440c90aebfc282c318fc8391647dd763bc43dc9f52a
BLAKE2b-256 checksum
How to use checksums
5b4cb8744295267bcbd13e18c92c5457c9ee3fcda703432182e4f544063697e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / caudex-0.9.14-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL caudex-0.9.14-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
acb71abf3e134c240a2655ac2675162bc265f3d781fbe4e51ca5b55d9318f1e4
BLAKE2b-256 checksum
How to use checksums
c3010cae969c2f119fdf7c67fc34cfe0b069a66c2efcfd42d382e18ea94b0b08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / caudex-0.9.14-cp312-cp312-macosx_11_0_arm64.whl

Download URL caudex-0.9.14-cp312-cp312-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b60b7b6c1cf35f23c5a6b9b3146deef3d808331d7ab7c7d922c20e409cb48004
BLAKE2b-256 checksum
How to use checksums
646ece0f4cc883d5c9e8bf2bddd60bdd1d4f99bf7ac3d6f204eb5d1a4a7ee8bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / caudex-0.9.14-cp311-cp311-win_amd64.whl

Download URL caudex-0.9.14-cp311-cp311-win_amd64.whl
Size 990.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
c603860b3deebd7c8007427b3d55afb750ab797caf3aa3058c3fdbe78ab2e423
BLAKE2b-256 checksum
How to use checksums
50424903e414dd37b26fa21184ef53bf2ff2c7a9edaff1be5d5f99f66f2bca1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / caudex-0.9.14-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL caudex-0.9.14-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.3 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9736d03f447b22ebcbe7642b532f22ce0e393702b10010bd1759c5843a52284a
BLAKE2b-256 checksum
How to use checksums
b9c0a7d750b13bbe84800e70845cf063815acde012054f1eba6cf2837a090335
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / caudex-0.9.14-cp311-cp311-macosx_11_0_arm64.whl

Download URL caudex-0.9.14-cp311-cp311-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2023abfe73cf56b70608291333803d7171c68b8ac5ccb10e1c5589f705d5aedf
BLAKE2b-256 checksum
How to use checksums
07b5169561b4607e914dcd64f5e8025e2d7235f5de5e4cc1f42b065cd4e5be93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.9.14 This release

9 release files

0.9.12

9 release files

0.9.11

9 release files

0.9.10

9 release files

0.9.9

9 release files

0.9.8

9 release files

0.9.7

9 release files

0.9.6

9 release files

0.9.5

9 release files

0.9.4

9 release files

0.9.3

9 release files

0.9.2

9 release files

0.9.1

9 release files

0.9.0

9 release files

0.8.1

9 release files

0.8.0

9 release files

0.7.0

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page