A small utility for going places

Local work.
Out in
the world.

Your agents have work to do.
You have somewhere to be.

Rucksack keeps the Mac behind your local work awake and connected while you move. Bring your desktop apps, your projects, your whole setup.

macOS first · Open source · Zero runtime dependencies

An orange technical rucksack with a silver laptop, ready for the journey. FIELD EQUIPMENT / 001
Built for the in-between.DESK → CAFÉ → HOME

Leave the desk.
Keep your environment.

Your local files Your running tools Your signed-in apps

01 / Find your footing

The app is a window.
Where’s the work?

Having ChatGPT on your desktop doesn’t mean every task runs there. Rucksack matters when the work still needs your laptop.

A GOOD PLACE FOR RUCKSACK

Same computer.
A different seat.

Use ChatGPT’s Remote connection to guide work from your phone. The desktop host still supplies the files, tools, and app sessions. It needs to stay awake, online, and running ChatGPT.

Rucksack looks after the host’s power and hotspot. Pair your devices in ChatGPT first, then test your actual task from your phone.

ChatGPT Remote setup
FOR THE LOCAL PART OF THE JOB

A cloud agent.
A local foothold.

Your Dot has its own cloud computer. When you allow it to use your computer, it can also coordinate tasks that need your local files, code, and apps.

Rucksack helps keep that computer available. Dot access is a separate permission from Codex Remote or Work Sync; leave ChatGPT open while your Dot uses the Mac.

Connect a computer to your Dot
YOU’RE ALREADY GOOD TO GO

Cloud work?
Let the laptop sleep.

If the task lives entirely in Dot’s cloud computer or a Codex cloud environment, Rucksack isn’t needed for that task.

The cloud has its own files, tools, and browser sessions. Your local checkout, localhost server, and signed-in browser don’t automatically move there.

Understand local and cloud work

Rucksack manages power and connectivity. Remote access, permissions, and task execution belong to your agent app. Read the field notes ↗

02 / A little leaving ritual

Check. Pack.
Off you go.

Less fiddling with settings. A repeatable routine for the computer doing the work.

  1. 01

    Check your bearings.

    Check battery, hotspot, actual internet access, and any configured CLI remotes before changing a setting.

    rucksack doctor
  2. 02

    Pack with a plan.

    Keep awake, watch the connection, and set a battery floor. Lid-closed mode saves and verifies the sleep setting.

    rucksack pack --watch
  3. 03

    Settle back in.

    Stop the watchdog and restore the saved sleep setting. Interrupted session? Recovery handles the cleanup.

    rucksack unpack

A little help along the way. Hotspot reconnects. Keep-awake recovery. Battery thresholds. Optional phone alerts.

The field manual

03 / Travel light

Small tool.
Ready to go.

A plain Node.js CLI. No account to create, no runtime dependencies. Your agent stays in the app you already use.

macOS + Node.js 20 or newer + Git.
Windows under WSL2 is experimental.

Read the source
INSTALL / MAIN BRANCHInspect script ↗
curl -fsSL https://rucksack.sh/install | bash

Installs the current main branch. Prefer a pinned release?

1

Connect your agent first.

In ChatGPT: Settings → Connections → Control this Mac or PC. Pair your phone, open a local task, and check you can send an instruction. Keep the desktop app open.

Remote connection guide ↗

In your Dot’s profile: Computers → Your computer → Allow access. Confirm access, test a task using local files, and keep ChatGPT open. This permission is separate from Codex Remote.

Dot connection guide ↗

Run claude remote-control in your project, complete its prompts, and open the session on your phone. For an existing session, use /remote-control. Keep that session running.

Claude Remote Control guide ↗
2

Name your hotspot. Check the essentials.

rucksack init --hotspot "My iPhone"
rucksack doctor

Replace “My iPhone” with your hotspot name and join it first. A successful host check doesn’t verify your app’s remote pairing.

3

Choose how you’re travelling.

rucksack pack --watch --warn-battery 20

Keeps an open Mac awake and watches the connection. Battery warning threshold: 20%. Phone alerts need a configured notification URL.

At your destination: rucksack unpack

04 / Read before you roam

Good equipment.
Honest limits.

Power settings deserve a little care.
Here’s what to know before heading out.

Doesn’t ChatGPT already keep my Mac awake?

ChatGPT offers a keep-awake setting for connected hosts. Its documented Mac lid-closed setup uses power and an external display. Rucksack adds a travel routine: hotspot checks and recovery, battery thresholds, restorable lid-closed power settings, and optional alerts.

If your existing setup already stays available, you may not need Rucksack. Test your actual workload; keeping the host awake doesn’t guarantee desktop UI automation will work with the lid closed or screen locked.

Read OpenAI’s host requirements ↗
What changes when I close the lid?

Plain caffeinate is for lid-open use. On macOS, --lid-closed --yes saves the current disablesleep value, uses sudo pmset to change it, and verifies the result. The watchdog starts automatically.

rucksack unpack restores the saved value. After an interruption, use rucksack recover. This restores that one value, not a full snapshot of every power profile.

What about heat, battery, and lost signal?

Keep vents clear, test your workload, and don’t charge inside a closed bag. Builds and local models can generate significant heat. In lid-closed mode, detected CPU thermal throttling triggers an attempt to restore normal sleep; this is a fallback, not a cooling system.

Battery thresholds are opt-in; the setup above includes a 20% warning, plus a 10% sleep floor in lid-closed mode. Phone alerts need a configured ntfy topic or webhook. Alerts share the laptop’s connection and may fail when it’s offline.

Will it restart my agent or give my phone localhost?

The watchdog can revive the keep-awake process and attempt hotspot reconnection. It doesn’t restart ChatGPT, resume failed tasks, or answer approvals. Keep your agent app running and verify access from your phone.

rucksack pack --expose 3000 reports local-network URLs for a dev server. It doesn’t create a public tunnel or change the server’s binding. Your server, firewall, and hotspot must allow the phone to reach it.

Can I use Windows or a cloud-only workflow?

Windows under WSL2 has an experimental keep-awake and lid-setting backend. The watchdog, thermal protection, and password-based hotspot joins aren’t supported there yet. The setup on this page is for macOS.

Entirely cloud-hosted work doesn’t need Rucksack. For a cloud agent using your local machine, Rucksack can help keep that local dependency online; it doesn’t move the work into the cloud.

The world is bigger
than your desk.

Get packed