Skip to main content

Self-hosted Telegram AI agent. 10 tools, skills, subconscious, CLI learning.

Project description

IndieClaw

PyPI Python CI python-doctor License: MIT

Personal AI agent on Telegram. Self-hosted, powered by Claude.

Requires: An Anthropic API key or Claude Pro/Max subscription. IndieClaw uses Claude as its reasoning engine — you need one or the other to run it.

Install

pip install indieclaw

Or with uv:

uv tool install indieclaw

Then set up:

indieclaw setup

Setup asks for your Telegram bot token, user ID, and Claude auth. Get a bot token from @BotFather, then send /start to your bot — it will show your Telegram user ID.

Run

indieclaw start       # background daemon
indieclaw start -f    # foreground
indieclaw chat        # interactive TUI (no Telegram needed)
indieclaw logs -f     # stream logs
indieclaw stop
indieclaw restart

indieclaw chat launches a terminal UI for chatting directly with your agent — useful for testing, debugging, or when you don't want to go through Telegram.

On Linux with systemd, indieclaw setup installs and starts the service automatically.

Commands

Command
/status Model, tools, token usage
/model Switch Claude model
/effort Switch thinking effort
/reset Clear conversation history
/restart Restart the bot
/update Pull latest and restart
/cc <prompt> Live Claude Code session (streaming)

Workspace

Everything lives in ~/.indieclaw/:

File Purpose
SOUL.md Agent identity and instructions
USER.md Your profile (name, timezone, preferences)
MEMORY.md Persistent memory across sessions
crons.yaml Scheduled jobs
skills/*/SKILL.md Skill docs injected into system prompt
tools/*.py Custom tools — hot-loaded, no restart needed
sessions/*.jsonl Conversation logs
handover.md State snapshot across restarts
subconscious.yaml Background reflection threads

Override the workspace path: INDIECLAW_HOME=/path/to/dir

Subconscious

A background reflection loop that runs every 2 hours. The agent reviews open threads, recent conversations, and memory — then decides whether to act (send a message, spawn a task) or stay quiet.

Threads are tracked in ~/.indieclaw/subconscious.yaml. The agent can add, resolve, or keep threads across cycles. Disable it or change the interval in ~/.indieclaw/config.yaml:

subconscious_enabled: false
subconscious_interval_hours: 4

Custom tools

Drop a .py file in ~/.indieclaw/tools/ with a SCHEMA dict and execute() function. Available on the next message, no restart needed.

Update

indieclaw update       # from terminal
/update               # from Telegram

Saves a handover note before restarting and picks up where it left off.

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

indieclaw-0.1.39.tar.gz (205.5 kB view details)

Uploaded Source

Built Distribution

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

indieclaw-0.1.39-py3-none-any.whl (89.1 kB view details)

Uploaded Python 3

File details

Details for the file indieclaw-0.1.39.tar.gz.

File metadata

  • Download URL: indieclaw-0.1.39.tar.gz
  • Upload date:
  • Size: 205.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for indieclaw-0.1.39.tar.gz
Algorithm Hash digest
SHA256 36e4ef4b5d9f1c0b0e14d805b8a000c84cdbd354a6ec973f6f3852e3c61cacd2
MD5 fb410a899dc56c8658e371f081698456
BLAKE2b-256 f08b2baeb2238c2fb457d05397b8ee4f9729a5425d259656afff577747ae77f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for indieclaw-0.1.39.tar.gz:

Publisher: release.yml on saikatkumardey/indieclaw

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

File details

Details for the file indieclaw-0.1.39-py3-none-any.whl.

File metadata

  • Download URL: indieclaw-0.1.39-py3-none-any.whl
  • Upload date:
  • Size: 89.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for indieclaw-0.1.39-py3-none-any.whl
Algorithm Hash digest
SHA256 8dd09c6f157bc4275099d8de0f9201dc341a3698e6e0e59c0244eda571b66dc6
MD5 fe5f823fe7d53de5f502d3da9badf3e9
BLAKE2b-256 f5168ec056a74388f1e74c8f230bad9ee64b28a539d648e71be94e171f6aac84

See more details on using hashes here.

Provenance

The following attestation bundles were made for indieclaw-0.1.39-py3-none-any.whl:

Publisher: release.yml on saikatkumardey/indieclaw

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