Skip to main content

A tmux-based agent queue manager. You sit at the desk, agents come to you.

Project description

aque logo

Aque

PyPI version Python License: MIT

A tmux-based agent queue manager. You sit at one "desk" and your AI agents come to you.

Why?

Running multiple AI coding agents (Claude Code, aider, Codex) at once? They all need your attention at different times. Aque queues them so you work through them one at a time — no forgotten terminal tabs, no context switching.

Demo

Install

pipx install aque

Or with pip:

pip install aque

Requires: Python 3.11+, tmux

Development

git clone https://github.com/can-can/aque.git
cd aque
pip install -e ".[dev]"

Usage

Launch agents:

aque run --dir ~/projects/api --label "auth fix" -- claude --model opus
aque run --dir ~/projects/web -- aider --model gpt-4
aque run --dir ~/code/tests -- codex

Use --type to enable signal-based idle detection for supported agent types:

aque run --type claude --dir ~/projects/api -- claude --model opus

Sit at your desk:

aque desk

The desk shows a unified dashboard with all your agents, their states, and a live preview of the selected agent's terminal output.

Dashboard Keys

Key Action
↑↓ Navigate agent list
Enter Attach to selected agent
n Create new agent
k Kill selected agent (moves to history)
h Toggle hold on selected agent
q Quit desk

Detach Behavior

When you detach from a tmux session (Ctrl-b d), aque handles the transition automatically:

  • Running/waiting agent — auto-dismissed back to running, returns to dashboard
  • Exited agent — auto-marked as done and moved to history

No action menu, no extra steps.

Auto-Attach

When a waiting agent is detected (on the dashboard or after detaching), aque shows a 3-second countdown modal and auto-attaches to the top-priority waiting agent. Press Esc to cancel and stay on the dashboard.

Agent Types & Signal-Based Detection

For supported agent types, aque can use signal files instead of polling for more reliable idle detection.

When you specify --type, aque installs a hook into the agent that writes a signal file when it stops. This is faster and more accurate than prompt-marker polling.

Currently supported types:

Type Detection
claude Hook installed in ~/.claude/settings.json
codex Hook installed in ~/.codex/hooks.json
gemini Hook installed in ~/.gemini/settings.json
kiro Hook installed in ~/.kiro/agents/aque.json
opencode Plugin installed in ~/.config/opencode/plugins/aque.js
aider --notifications-command injected at launch (no config hook)

When creating an agent from the dashboard (n), the new agent form lets you select a type in the first step.

The agent type is shown as a tag in the agent list, and the detection method is shown in the preview panel.

Idle Detection

Aque monitors tmux panes for prompt markers (, $, >>>) to detect when an agent is waiting for input. After the configured idle timeout (default: 10s), the agent transitions from running to waiting and enters the queue.

When using a typed agent, signal files take precedence over prompt-marker polling.

Narrow Terminal Support

On terminals narrower than 80 columns, aque automatically switches to a compact single-column layout: the preview panel is hidden, the agent list uses shorter labels, and modals/forms adapt to fit. The layout updates live on resize.

Agent States

State Meaning
running Agent is actively working
waiting Agent is idle, queued for your attention
focused You are currently attached to this agent
on_hold Paused, skipped in the queue
exited Tmux session has ended
done Completed, moved to history

Other Commands

aque list    # show all agents and states
aque kill 3  # terminate an agent

Configuration

Edit ~/.aque/config.yaml:

idle_timeout: 10
snapshot_interval: 2
session_prefix: aque
default_dir: ~/Projects
action_keys:
  dismiss: d
  done: k
  skip: s
  hold: h

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

aque-0.1.1.tar.gz (8.3 MB view details)

Uploaded Source

Built Distribution

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

aque-0.1.1-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file aque-0.1.1.tar.gz.

File metadata

  • Download URL: aque-0.1.1.tar.gz
  • Upload date:
  • Size: 8.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for aque-0.1.1.tar.gz
Algorithm Hash digest
SHA256 672debc1338ce286e53990bee097e7b68a5dffa08800ea40bca994861adeab00
MD5 458faff6a1699f98d158cd219d2260fa
BLAKE2b-256 48b7d74ad1e80b132b8a7957df54aa7cd2206540d5e569709eb55568c6b4df44

See more details on using hashes here.

File details

Details for the file aque-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: aque-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for aque-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 08e4dbca0cda51213362817fce9e78472a909b06dcf7074c577e986a84bd036d
MD5 d39e4c65adf7e4dbc8b0196e4a65a77d
BLAKE2b-256 983029f5b71b23373263c9ff860cb8de044b8fc15addfe20182bdcc1ec35369c

See more details on using hashes here.

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