BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News JobRunr Introduces ClawRunr, an Open-Source Java AI Agent

JobRunr Introduces ClawRunr, an Open-Source Java AI Agent

Listen to this article -  0:00

JobRunr has introduced an open-source Java AI agent, ClawRunr, that runs on users' own hardware and is designed to execute scheduled, recurring, and one-off background tasks. Formerly known as JavaClaw, a Java version of OpenClaw, the project combines conversational interaction with persistent task execution, allowing users to create reminders, automate recurring work, connect tools through Model Context Protocol (MCP), and interact with the agent through channels such as web chat, Telegram, and Discord. The project aims to address a common problem in AI agent design: making retries, persistence, scheduling, and monitoring first-class concerns of long-running agent work.

ClawRunr is built on Java 25, Spring Boot, Spring AI, Spring Modulith, and JobRunr. State is persisted in an embedded H2 database. The runtime supports OpenAI, Anthropic, and Ollama as LLM providers.

Architecturally, the project is split into three Spring Modulith modules: base for the core agent, tasks, tools, channels, and configuration; app for the Spring Boot entry point, onboarding UI, and built-in web chat; and plugin for opt-in capabilities such as Brave Search, Discord, Telegram, and Playwright. The agent core wraps Spring AI's ChatClient and registers tools through @Tool annotations, while a Channel interface - implemented by the built-in web chat in app and by the Telegram and Discord plugins - decouples message sources from the agent. The system prompt is composed at runtime from two workspace files: AGENT.md for instructions and INFO.md for environment context.

JobRunr handles ClawRunr's asynchronous task execution. User-created tasks are stored as Markdown files under workspace/tasks/, organized by date and tagged with a state in the lifecycle todo → in_progress → completed | awaiting_human_input. Recurring tasks are persisted under workspace/tasks/recurring/ and scheduled through JobRunr's cron support, with automatic retries and dashboard-based monitoring. InfoQ previously covered JobRunr 8.0, which added carbon-aware job processing, Kotlin serialization support, and dashboard notifications.

The runtime ships with tools for task management, shell command execution, file access, and web scraping. It also includes MCP server integration over both streamable HTTP and stdio transports, and Brave Search when configured. Optional Playwright integration adds browser automation, including page navigation, element clicks, JavaScript execution, and screenshots. ClawRunr exposes an opt-in dynamic tool discovery mode based on Spring AI's Tool Search Tool pattern, which uses Lucene keyword search to surface relevant tools at request time instead of including all tool definitions in every prompt.

ClawRunr's skill system is file-based. Users add capabilities by creating a directory under workspace/skills/ and placing a SKILL.md file inside it:

workspace/
└── skills/
    └── my-skill/
        └── SKILL.md

The runtime scans the skills directory and makes those instructions available to the agent without requiring a code change or redeployment.

Initial setup is handled through a guided onboarding flow that walks users through provider selection (OpenAI, Anthropic, or Ollama), credentials and model configuration, customization of the agent prompt, optional MCP server setup, and channel configuration for Telegram or Discord. Configuration is persisted to application.yaml, where channels are wired up declaratively:

agent:
  channels:
    telegram:
      token: <your-bot-token>
      username: <your-telegram-username>
    discord:
      token: <your-discord-bot-token>
      allowed-user: <your-discord-user-id>

Changes are applied immediately. When Ollama is selected, ClawRunr runs end-to-end against a local model and no data leave the user's hardware.

ClawRunr started as a proof of concept intended to demonstrate how JobRunr could be applied to AI agents. The JobRunr team subsequently rewrote the implementation and released the project to the Java community under the LGPL-3.0 license.

Known issues called out by the JobRunr team include that Playwright requires a restart after its first browser installation, and that recurring task output is currently better supported through Telegram than through the web chat interface. The roadmap mentions additional channels such as Slack and WhatsApp, along with improved memory management, task planning, built-in tools, and skills.

More details about ClawRunr can be found on the project website and in the GitHub repo.

About the Author

Rate this Article

Adoption
Style

BT