Akiflow Python SDK
Work in Progress: This project is under active development and is not yet ready for production use.
Disclaimer: This project is not affiliated with, endorsed by, or associated with Akiflow in any way. It is an unofficial, community-built SDK. The underlying API is undocumented and may change at any time without notice, which could break this library. Use at your own risk.
A lightweight Python SDK for the Akiflow task management software. Built on httpx with full type annotations.
Status
This is an early proof of concept. Currently implemented:
- Tasks — create, list, update, mark done, delete
- Labels — create, list, update, delete, lookup by name
Other Akiflow features are not yet covered.
Feel free to contribute!
Documentation
Full API documentation is available at thielem.github.io/akiflow-python-sdk.
Installation
Requires Python 3.10+.
pip install akiflow
Or with uv:
uv add akiflow
Quick Start
Interactive Login
Note: This SDK only supports Akiflow's passwordless email + OTP login. Other authentication methods (e.g., Google SSO) have not been tested and may not work.
The SDK uses Akiflow's passwordless email + OTP flow:
from akiflow import Akiflow
client = Akiflow(email="you@example.com") # prompts for OTP code
Reusing Tokens
Save and reuse tokens to avoid logging in every time:
from akiflow import Akiflow
client = Akiflow(
access_token="eyJ...",
refresh_token="def50200...",
)
The client automatically refreshes expired access tokens using the refresh token.
Tasks
# Create a task
task = client.task.create("Buy groceries")
# Create a scheduled task with priority
task = client.task.create(
"Team meeting",
datetime="2025-01-15T10:00:00",
duration=3600,
priority=2,
)
# List tasks
tasks = client.task.list()
# Mark done
client.task.done(task["id"])
# Delete
client.task.delete(task["id"])
Labels
# Create a label
label = client.label.create("Work", color="#FF0000")
# List labels
labels = client.label.list()
# Look up label ID by name
label_id = client.label.get_id("Work")
# Delete
client.label.delete(label_id)
Debugging
Enable debug mode to print all HTTP requests and responses:
client = Akiflow(email="you@example.com", debug=True)
To bypass SSL verification (useful with proxy tools like Proxyman or Charles):
client = Akiflow(email="you@example.com", verify_ssl=False)
Examples
See the examples/ directory for complete working scripts:
login_and_create.py— Interactive login with token persistencetoken_and_create.py— Reuse saved tokenscreate_and_done.py— Task lifecycle (create, done, delete)label_lifecycle.py— Label CRUD operations
License
MIT
Metadata
Release files for akiflow 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| akiflow-0.0.2.tar.gz | 176.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| akiflow-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 190.3 kB
Release files / akiflow-0.0.2.tar.gz
| Download URL | akiflow-0.0.2.tar.gz |
|---|---|
| Size | 176.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c0cbff685d249d17a9ded7716dea8f313c2afe9de7ee55b9067dca0985f08f66
|
|
BLAKE2b-256 checksum How to use checksums |
668b2634eeb793008ab953d58ac3187e5c6f59e24e9f0f97e9e3d166f0ba9134
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 26, 2026.
Transparency logRelease files / akiflow-0.0.2-py3-none-any.whl
| Download URL | akiflow-0.0.2-py3-none-any.whl |
|---|---|
| Size | 14.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
70ac96244bd65dca059915764fe65fb1b4d32b10c302803e6a111fabde01d932
|
|
BLAKE2b-256 checksum How to use checksums |
d42baad44d881c533bd23407120a73a8b71a998597433f8d13a18498b557fcba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 26, 2026.
Transparency log