Skip to main content

Unofficial Python SDK for the Akiflow task management software.

Project description

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

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

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.

Supported by

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