Skip to main content

Akiflow Python SDK

PyPI version License: MIT

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 persistence
  • token_and_create.py — Reuse saved tokens
  • create_and_done.py — Task lifecycle (create, done, delete)
  • label_lifecycle.py — Label CRUD operations

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

akiflow-0.0.2.tar.gz (176.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

akiflow-0.0.2-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file akiflow-0.0.2.tar.gz.

File metadata

  • Download URL: akiflow-0.0.2.tar.gz
  • Upload date:
  • Size: 176.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for akiflow-0.0.2.tar.gz
Algorithm Hash digest
SHA256 c0cbff685d249d17a9ded7716dea8f313c2afe9de7ee55b9067dca0985f08f66
MD5 0d2bffed3d0cf682674cf55df3b3b5e9
BLAKE2b-256 668b2634eeb793008ab953d58ac3187e5c6f59e24e9f0f97e9e3d166f0ba9134

See more details on using hashes here.

Provenance

The following attestation bundles were made for akiflow-0.0.2.tar.gz:

Publisher: deploy.yml on thielem/akiflow-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file akiflow-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: akiflow-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for akiflow-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 70ac96244bd65dca059915764fe65fb1b4d32b10c302803e6a111fabde01d932
MD5 3ae03a30aa38dd42adf13ad9bc312471
BLAKE2b-256 d42baad44d881c533bd23407120a73a8b71a998597433f8d13a18498b557fcba

See more details on using hashes here.

Provenance

The following attestation bundles were made for akiflow-0.0.2-py3-none-any.whl:

Publisher: deploy.yml on thielem/akiflow-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page