Skip to main content

ak-cli

A small CLI I built for my own server management needs — quick answers to "what's using the RAM", "is this port open", "how full is the disk", without reaching for a full monitoring stack. Sharing it in case it's useful to someone else too.

Every command works both as a direct CLI call and from an interactive menu, so you can script it or just run ak and pick from a list.

Features

Command Description
system-info OS, architecture, Python version, hostname
disk-usage Usage for every mounted disk/partition
network-info IPv4 address of every network interface
memory-info RAM and swap usage
cpu-info Core count, current usage, frequency
process-list Top processes by memory usage
uptime System boot time and uptime
users Currently logged-in users
port-check Check whether a TCP port on a host is open
backup-init Create a backup config template
backup Archive configured folders and send to Telegram

Requirements

  • Python 3.10+

Installation

Clone the repo and install it in a virtual environment. uv is recommended:

git clone https://github.com/AmirKenzo/ak-cli.git
cd ak-cli
uv sync
uv run ak

Or with plain pip:

git clone https://github.com/AmirKenzo/ak-cli.git
cd ak-cli
python -m venv .venv
.venv/Scripts/activate   # on Linux/macOS: source .venv/bin/activate
pip install -e .
ak

Usage

Running ak with no arguments opens the interactive menu:

ak

Every command is also available directly, which is handy for scripts and one-liners:

ak system-info
ak disk-usage
ak memory-info
ak cpu-info
ak process-list --limit 5
ak port-check example.com 443
ak uptime
ak users

Backups

ak backup archives a configured list of folders (defaults to /opt/pasarguard and /var/lib/pasarguard, e.g. for a Pasarguard panel) into a .tar.gz and sends it to a Telegram chat via Telethon.

ak backup-init   # writes a config template to ~/.config/ak/backup.json
# fill in telegram.api_id / api_hash / bot_token / chat_id, then:
ak backup            # archive configured paths and send to Telegram
ak backup --keep     # also save the archive in the current directory

api_id/api_hash default to Telegram Desktop's public API credentials if left unset, so only bot_token and chat_id are required. Config can also be provided entirely via environment variables, handy for cron/systemd: AK_BACKUP_PATHS (comma-separated), AK_TG_API_ID, AK_TG_API_HASH, AK_TG_BOT_TOKEN, AK_TG_CHAT_ID, and AK_BACKUP_CONFIG to point at a non-default config file location.

Roadmap

  • Scheduled (cron) backup runs
  • Including database dumps alongside the folder backups

License

MIT — see LICENSE.

Download files

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

Source Distribution

akctl-0.1.1.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

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

akctl-0.1.1-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file akctl-0.1.1.tar.gz.

File metadata

  • Download URL: akctl-0.1.1.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for akctl-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2b44cd80789f981f14582b1525543c3eb9d5af62fc15bd302a6723f50776102e
MD5 a808ec5a1da9ef781a639524a325490a
BLAKE2b-256 e088241272e3ad4bb7e5e95529f13c1294257f1878f54d81360df4823f873d19

See more details on using hashes here.

File details

Details for the file akctl-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: akctl-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for akctl-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a48b22513765025ecd325e5585618bee0431bfe597a58123e73488fe04074a43
MD5 cd8d49f669fafd3bee0604a901bf4347
BLAKE2b-256 cdf0e7c20e7f747ae477943694acac244c0ff3057efcb307d5eca16e133c9509

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

This release

0.1.1 This release

2 files

0.1.0

2 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