opencode-workaholic
v0.4.0
Published
Your OpenCode becomes a workaholic. Prevents AI from ending tasks prematurely.
Downloads
450
Maintainers
Readme
opencode-workaholic
Enforces minimum task duration. Prevents AI from ending tasks prematurely before a time limit expires. Useful for forcing continuous work and preventing premature convergence.
(c) 2026 Roderick Qiu.
Why?
Sometimes AI finishes tasks too quickly, declaring "done" before thoroughly exploring all options or completing all necessary work. This plugin enforces a minimum work duration by:
- Blocking the AI from ending until the timer expires
- Injecting system prompts that reinforce the workaholic mindset
- Encouraging the AI to propose new tasks when todos are complete
Features
- ⏱️ Minimum duration enforcement - AI cannot end until timer expires
- 🚫 Sleep blocking - Prevents time-wasting via sleep commands
- 🔄 Persistent timer - Survives across messages
- 📊 Status checking - Always knows remaining time
- 💪 Strong behavioral prompts - Reinforces workaholic mindset
- 🔐 Checkout system - AI must call checkout to officially end (only works at timer = 0)
- 🎲 Random prompt rotation - 6 different prompt styles prevent AI from adapting
Usage
Start Workaholic Mode
/workaholic [Your requirements, for xxx minutes]Or use the tool directly:
Use workaholic.start with minutes=30Check Status
Call workaholic.status to see remaining timeEnd Task (Checkout)
Call workaholic.checkout to officially end the task
- Only works when timer = 0
- If time remains, checkout will be rejectedHow It Works
- Timer starts when you invoke
/workaholicin OpenCode - Every response - AI automatically checks remaining time via system prompt injection
- Sleep forbidden - Any attempt to use
sleepthrows an error - End detection - If AI says "done", a warning is appended forcing continuation
- Checkout required - AI must call
workaholic.checkoutto officially end - Only ends when - Timer shows 0 remaining seconds AND checkout is called
Custom Tools
| Tool | Description |
| ------------------- | ------------------------------------------------------------------ |
| workaholic.start | Start timer with duration in minutes (supports decimals: 2.5, 3.5) |
| workaholic.status | Check remaining time |
| workaholic.checkout | End task - only succeeds when timer = 0 |
| workaholic.stop | Stop workaholic mode early |
Installation
Prerequisites
- OpenCode with plugin support
Install Plugin
Use Bunx
bunx opencode-workaholic@latest installManual Installation
# Clone or copy the plugin to your plugins directory
# Then add to your OpenCode configEdit ~/.config/opencode/opencode.json:
{
"plugins": ["opencode-workaholic"]
}Or use local path:
{
"plugins": ["file:///<path-to>/opencode-workaholic"]
}Build
cd opencode-workaholic
bun install
mise run buildDevelopment
mise run build- Build the pluginmise run test- Run testsmise run lint- Lint codemise run lint:fix- Fix linting issuesmise run format- Format code with Prettier
License
MIT License. See the LICENSE file for details.
Acknowledgments
- OpenCode - The platform that makes this possible
- opencode-plugin-template - The plugin framework that makes this easier
