TaskNode CLI tool for running Python scripts in the cloud
Project description
TaskNode 🔄
Note: TaskNode is currently in alpha. While fully functional, you may encounter occasional issues. Please report any bugs on our GitHub issues page.
Do you ever:
- Keep your computer on all night just to run a script?
- Run scripts that would benefit from a much faster internet connection?
- Have too many scripts running at a time?
TaskNode is a powerful command-line tool that lets you run Python scripts asynchronously in the cloud with zero infrastructure setup. Submit a task, and we'll handle the rest.
✨ Features
- Zero Configuration: Just install and run - we handle all the cloud setup
- Dependency Management: Automatic detection and packaging of project dependencies
- Cross-Platform: Works on Linux, macOS, and Windows
- Notifications: Get an email when your task is complete
🚀 Get started in 2 minutes
First, install TaskNode:
pip install tasknode
Optionally, generate a sample Jupyter notebook to run:
tasknode generate-sample # copies sample.ipynb to current directory
Then, submit a Jupyter notebook to run in the cloud:
tasknode submit sample.ipynb
# or
tasknode submit your_script.py
Jupyter notebooks
TaskNode also supports Jupyter notebooks. Just submit your notebook (e.g., tasknode submit notebook.ipynb), and we'll convert it to a Python script and run it for you.
Get help and see all commands
tasknode help
📦 What Gets Uploaded?
When you submit a script, TaskNode automatically:
- 📁 Packages your project directory
- 🔍 Excludes development folders (.git, venv, pycache, etc.)
- 📝 Captures dependencies in requirements-tasknode.txt
- ℹ️ Records Python version and system information
- 🔒 Securely uploads everything to our cloud infrastructure
FAQ
How does TaskNode handle my files?
TaskNode securely uploads your files to our cloud infrastructure and deletes them after your task is complete. If the task fails, the files are retained for 24 hours in case you need to re-run the task.
Any outputs generated are retained for up to 72 hours, during which time you can download them.
How does TaskNode handle my dependencies?
TaskNode automatically detects your dependencies and packages them in a separate file called requirements-tasknode.txt. This file is uploaded to our cloud infrastructure and installed when your task is run.
How does TaskNode handle my Python version?
Right now, TaskNode runs on Docker containers with Python 3.12. Most Python 3 code will work without any changes, but we're working on adding support for other Python versions.
Where is the data processed?
All data is processed in the AWS US East (N. Virginia) region.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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 tasknode-0.0.26.tar.gz.
File metadata
- Download URL: tasknode-0.0.26.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89ac8bd7ba9bedd5d176c346199574e1ee6b941f01bdad3e3ca53b254174176d
|
|
| MD5 |
e6b5f206bb426da88ac018dda990c457
|
|
| BLAKE2b-256 |
2745ba7b9aa3cfc9ab0cf515a24919cb54ce3f749d1e85093632f85e0d83ad59
|
Provenance
The following attestation bundles were made for tasknode-0.0.26.tar.gz:
Publisher:
publish.yml on dtnewman/tasknode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tasknode-0.0.26.tar.gz -
Subject digest:
89ac8bd7ba9bedd5d176c346199574e1ee6b941f01bdad3e3ca53b254174176d - Sigstore transparency entry: 153835375
- Sigstore integration time:
-
Permalink:
dtnewman/tasknode@cbaa67dfc470d0dedbb124e5791fdae382dfa3aa -
Branch / Tag:
refs/tags/v0.0.26 - Owner: https://github.com/dtnewman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cbaa67dfc470d0dedbb124e5791fdae382dfa3aa -
Trigger Event:
push
-
Statement type:
File details
Details for the file tasknode-0.0.26-py3-none-any.whl.
File metadata
- Download URL: tasknode-0.0.26-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef2e2a39673aec6693d0a3143e61d66e1d5643ca6e6aa827fb731c3c1185d5f4
|
|
| MD5 |
65a5c3fff4b2ede277c818581d3163d7
|
|
| BLAKE2b-256 |
81a7dbd0ccc411f047f858c1fae62221356b3d106f16327810c754a1e8f7cb2b
|
Provenance
The following attestation bundles were made for tasknode-0.0.26-py3-none-any.whl:
Publisher:
publish.yml on dtnewman/tasknode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tasknode-0.0.26-py3-none-any.whl -
Subject digest:
ef2e2a39673aec6693d0a3143e61d66e1d5643ca6e6aa827fb731c3c1185d5f4 - Sigstore transparency entry: 153835384
- Sigstore integration time:
-
Permalink:
dtnewman/tasknode@cbaa67dfc470d0dedbb124e5791fdae382dfa3aa -
Branch / Tag:
refs/tags/v0.0.26 - Owner: https://github.com/dtnewman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cbaa67dfc470d0dedbb124e5791fdae382dfa3aa -
Trigger Event:
push
-
Statement type: