Sweep old call recordings on /sdcard with trash + restore.
Project description
Call Cleaner
Sweep old call recordings on your Android phone (/sdcard/...) into a 30-day trash, then auto-purge. Designed for OnePlus + other Android phones running Termux. Includes a curses TUI, native scheduling via termux-job-scheduler, and Android notifications via Termux:API.
Install on a OnePlus phone (or any Android with Termux)
Prerequisites:
- Termux from F-Droid (the Play Store version is unmaintained — must be F-Droid).
- Termux:API app from F-Droid (for notifications).
Then in Termux:
curl -fsSL https://raw.githubusercontent.com/trehansalil/call-cleaner/main/install.sh | bash
The installer will:
- Verify storage permission.
- Install Python, git, termux-api.
- Clone Call Cleaner.
- Auto-detect known call-recording folders (OnePlus, Samsung, Xiaomi, Google).
- Offer to register the daily background job.
After install:
cleaner doctor # verify health
cleaner scan # dry-run preview
cleaner run # actually trash old files
cleaner trash list # see what's in trash
cleaner trash restore <id>
cleaner tui # curses interactive UI
See INSTALL.md for manual install steps if you prefer not to curl-pipe.
What it does
- Scans configured folders on
/sdcardfor audio files older than N days. - Moves matching files to
/sdcard/.CallCleanerTrash/with sidecar JSON metadata (sorestoreis just a rename). - Auto-purges anything in trash for more than 30 days.
- Fires Android notifications on completion (and on low storage).
- Skips runs when battery is low or battery-saver is on.
Configuration
Lives at ~/.config/call-cleaner/config.toml. Edit with cleaner config edit. Example:
default_preset = "default"
[trash]
dir = "/sdcard/.CallCleanerTrash"
retention_days = 30
[paths]
calls = "/sdcard/Music/Recordings/Call Recordings"
[[preset.default.rules]]
folder = "@calls"
age_days = 90
action = "trash"
[[preset.aggressive.rules]]
folder = "@calls"
age_days = 14
action = "trash"
Power-user / Linux install (PRoot Ubuntu, generic Linux)
For developers, contributors, or users running inside a proot-distro Ubuntu rather than native Termux:
git clone https://github.com/trehansalil/call-cleaner
cd call-cleaner
python3 -m venv .venv
make dev
make test
make install # writes /usr/local/{bin,share,lib}
Then cleaner config init && cleaner install-schedule.
License
MIT — see LICENSE.
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 call_cleaner-0.2.0.tar.gz.
File metadata
- Download URL: call_cleaner-0.2.0.tar.gz
- Upload date:
- Size: 30.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1fd5b062566222c723e920f8c83d5dc13a21c30b70448be97cb69bf475cfb8e
|
|
| MD5 |
4e5f83974b0bb1f0932411d0556b02c0
|
|
| BLAKE2b-256 |
ab652e591c67d4411994f079a8675eba0975f3a24ff7985403f93b6015e36b9a
|
Provenance
The following attestation bundles were made for call_cleaner-0.2.0.tar.gz:
Publisher:
release.yml on trehansalil/call-cleaner
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
call_cleaner-0.2.0.tar.gz -
Subject digest:
a1fd5b062566222c723e920f8c83d5dc13a21c30b70448be97cb69bf475cfb8e - Sigstore transparency entry: 1417399907
- Sigstore integration time:
-
Permalink:
trehansalil/call-cleaner@bdaf006bea6e2e0c7cc18e216e7922cab3c309b7 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/trehansalil
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bdaf006bea6e2e0c7cc18e216e7922cab3c309b7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file call_cleaner-0.2.0-py3-none-any.whl.
File metadata
- Download URL: call_cleaner-0.2.0-py3-none-any.whl
- Upload date:
- Size: 22.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a607cee00af04df9dc2fbecc94a6897003a9d2ec45275b9b6ce2f3c8ee6c5592
|
|
| MD5 |
208f263cc5d2913b84755c11b00e6759
|
|
| BLAKE2b-256 |
323f961f0ca1c99ff0e65fca3131889c598d9b7fa22f267d0c6c26a6db36b05a
|
Provenance
The following attestation bundles were made for call_cleaner-0.2.0-py3-none-any.whl:
Publisher:
release.yml on trehansalil/call-cleaner
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
call_cleaner-0.2.0-py3-none-any.whl -
Subject digest:
a607cee00af04df9dc2fbecc94a6897003a9d2ec45275b9b6ce2f3c8ee6c5592 - Sigstore transparency entry: 1417399923
- Sigstore integration time:
-
Permalink:
trehansalil/call-cleaner@bdaf006bea6e2e0c7cc18e216e7922cab3c309b7 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/trehansalil
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bdaf006bea6e2e0c7cc18e216e7922cab3c309b7 -
Trigger Event:
push
-
Statement type: