@qelos/aidev
v1.10.1
Published
AI-powered task executor — polls ClickUp (and more) to implement tasks with Claude, Cursor, Devin, or Antigravity
Maintainers
Readme
@qelos/aidev
aidev turns your tasks into merged code — automatically.
It polls your task manager (ClickUp, Jira, Linear, Monday.com, Notion, Trello, or local markdown files), checks whether tasks are clear, runs your configured AI agent (aider, Claude, Cursor, Devin, and more) to implement them, pushes a branch, and moves the task to review.
Task → AI implements → git push → "in review" → agent review → AI resolves code review commentsQuick start
npm install -g @qelos/aidev
cd my-project
aidev init
aidev runDocumentation
Full documentation is published at qelos-io.github.io/aidev.
| Topic | Link | |---|---| | Getting started | guide/getting-started | | Commands | guide/commands | | Configuration | guide/configuration | | Providers | guide/providers | | AI agents | guide/agents | | MCP servers | guide/mcp | | Contributing | contributing |
To work on the docs locally:
cd documentation
npm install
npm run devChild process config inheritance
When aidev run is launched with custom configuration (a custom -e env file path, a custom log path, or custom env vars), any aidev subcommand invoked by the spawned AI agent in the same directory automatically inherits the parent's resolved config — including those custom values. No user configuration is required; it is automatic.
This matters because AI agents frequently shell out to other aidev commands (e.g. aidev tasks push). Without inheritance those child commands would load config from the default on-disk location and miss the parent's custom -e path / env vars.
Requirements:
- The parent
aidev runmust be a true ancestor process of the child (parent, grandparent, …). - The parent and child must be running in the same working directory.
Mechanism:
aidev runacquires a directory lock (.aidev.lockcontaining its PID) and starts a local IPC config server on a per-PID socket.- A child
aidevsubcommand reads.aidev.lockfrom its CWD, verifies the lock holder is alive and is an ancestor of the child process, then requests the resolvedConfigover the IPC socket and adopts it wholesale (applying the parent's published env vars toprocess.env). - If there is no lock, the lock holder is dead, or the lock holder is not an ancestor, the child falls back to normal disk-based config loading.
Because aidev run holds the directory lock while running, a child aidev run invoked in the same directory will exit at the lock rather than start a second concurrent run.
Contributing
See CONTRIBUTING.md.
