Industrial Hypertext

AI apps, software development & inspections · Perth since 2002

OpenClaw Consulting Services (formerly ClaudeBot)

Let us help you deploy your own OpenClaw agent for remote or local consulting:

1. On a small device

Install on a compact machine (Mac mini, Intel NUC, or similar) running Linux or macOS. This gives you a dedicated AI assistant on your local network with direct access to your files, git repos and devices.

2. In the cloud

Run OpenClaw on a lightweight VM or container in AWS, Azure or DigitalOcean. Secure it behind a firewall/VPN and configure webhooks and cron jobs to manage emails, code, and deployments from anywhere.

3. Messaging & Automation

Connect your agent to Telegram for interactive DM commands, push notifications and inline menus. The connection can prepare summaries, run scoped tasks and surface progress through messaging. For development work, review and approval boundaries should be agreed before enabling changes to repositories or deployments.

A useful first workflow might prepare a scheduled digest or a development summary. Start with a defined task and check the output before expanding access.

How we push cron digests to Telegram

Create a tiny helper that reads your bot token from the OpenClaw config and posts any text to your Telegram DM. Then chain it to the end of a cron script so every digest goes out automatically.

  1. Save the helper:
    #!/usr/bin/env python3
    """
    send_telegram.py - send a Telegram message using the bot token from ~/.openclaw/openclaw.json
    
    Usage:
        send_telegram.py ["message text"]
    
    Reads TELEGRAM_CHAT_ID from environment or stdin if no argv provided.
    """
    import os, sys, json, urllib.request, urllib.parse
    
    def main():
        config_path = os.path.expanduser('~/.openclaw/openclaw.json')
        try:
            with open(config_path) as f:
                cfg = json.load(f)
            token = cfg['channels']['telegram']['botToken']
        except Exception as e:
            print(f"Error reading bot token from {config_path}: {e}", file=sys.stderr)
            sys.exit(1)
    
        chat_id = os.getenv('TELEGRAM_CHAT_ID')
        if not chat_id:
            print("Error: TELEGRAM_CHAT_ID environment variable not set", file=sys.stderr)
            sys.exit(1)
    
        if len(sys.argv) > 1:
            text = ' '.join(sys.argv[1:])
        else:
            text = sys.stdin.read().strip()
        if not text:
            print("Error: no message text provided", file=sys.stderr)
            sys.exit(1)
    
        url = f"https://api.telegram.org/bot{token}/sendMessage"
        data = {'chat_id': chat_id, 'text': text}
        req = urllib.request.Request(
            url,
            data=urllib.parse.urlencode(data).encode(),
            headers={'Content-Type': 'application/x-www-form-urlencoded'}
        )
        try:
            with urllib.request.urlopen(req) as resp:
                print(resp.read().decode())
        except Exception as e:
            print(f"Failed to send message: {e}", file=sys.stderr)
            sys.exit(1)
    
    if __name__ == '__main__':
        main()
  2. Make it executable: chmod +x send_telegram.py.
  3. Expose your chat ID: export TELEGRAM_CHAT_ID=6864308151 (or whatever ID your bot DMs).
  4. Use it anywhere: append ~/.openclaw/workspace/send_telegram.py "News summary: ..." (or pipe text to it) at the end of a cron job. Every run then pings your Telegram straight away, bypassing flaky internal delivery.

Fixing “model doesn’t exist / you don’t have permission” errors

When OpenAI retires or renames a model, older OpenClaw installs can suddenly fail with "The model does not exist" or "You don’t have access". The clean fix is to refresh OpenClaw so the setup wizard offers the latest models:

  1. Update OpenClaw: run openclaw update (or pull the repo + npm install -g openclaw if you manage it manually) so you’re on the newest release.
  2. Re-run the guided setup: openclaw setup lets you pick the new OpenAI model, confirm API keys, and write the updated config. During the prompt stage, scroll through the fresh model list (e.g. gpt-5.3-codex, gpt-4o-mini) and select one you actually have access to.
  3. Restart the gateway: openclaw gateway restart (or systemctl restart openclaw, depending on your install) so the agent loads the new model choice.
  4. Test a chat: fire a quick prompt via Telegram or openclaw chat; the error disappears once the config references a valid model.

If you rotate between OpenAI, Anthropic, or local models, just re-run openclaw setup whenever an error crops up—the wizard auto-discovers whatever the CLI supports today.

Discuss an agent integration

We can help configure an agent around your existing systems and development workflow. We agree the access, review and approval boundaries alongside the integration.

For custom applications, see AI app development. To connect an assistant to an internal system, see custom MCP servers.

Discuss your AI integration

Consult the OpenClaw website and its documentation for current setup details.