Skip to content

Completing a task baseline

Thanks for helping out! You've been asked to solve one task by hand inside a sandboxed Linux machine we provision for you. We record your session, timing, and final answer.

You'll need an SSH client and an IDE that can edit files over SSH — VS Code with the Remote - SSH extension is the easiest, but anything that speaks SSH works. If your task has no network access, the IDE's usual one-click setup will fail, because it expects the sandbox to download its remote server and the sandbox has no internet. You can still use the IDE by sending that server over your SSH connection instead — in VS Code, set remote.SSH.localServerDownload to always; with JetBrains Gateway, copy the backend in and register it — or just work from a plain terminal.

In short: you send us an SSH public key, we send you back a connection command, and you connect and solve the task. The steps below walk through each part.

1. Create and send an SSH key

You need an SSH key pair: a private key you keep, and a public key you send us. On macOS or Linux, open a terminal and run:

ssh-keygen -t ed25519 -f ~/.ssh/id_hawk -C "your-name"

Press Enter when it asks for a passphrase (or set one — your choice). This creates two files:

  • ~/.ssh/id_hawk — your private key. Keep it secret; never send it to anyone.
  • ~/.ssh/id_hawk.pub — your public key. This is the one you send us.

Print the public key and send us the entire line (it's safe to share):

cat ~/.ssh/id_hawk.pub

It looks like ssh-ed25519 AAAAC3Nz...your-name. Copy the whole thing into your reply to us.

Already have an SSH key you use elsewhere (e.g. ~/.ssh/id_ed25519.pub)? You can send us that public key instead and skip creating a new one. Just use that key's path everywhere this guide says ~/.ssh/id_hawk.

2. We send you a connection command

Once your key is registered we'll start the task and send you back a command that looks like this:

ssh -J ssh-user@jumphost.example.com root@10.0.0.5 -p 2222

(The exact hostnames, IP, and port will differ.) That single command connects you through a gateway machine straight into your task sandbox.

3. Connect

First load your private key so SSH can use it, then run the command we sent you:

ssh-add ~/.ssh/id_hawk
ssh -J ssh-user@jumphost.example.com root@10.0.0.5 -p 2222

On the very first connection SSH may ask Are you sure you want to continue connecting (yes/no)? — type yes. That's expected.

To edit files in an IDE: point VS Code's Remote - SSH at the same connection. Open the Command Palette → Remote-SSH: Connect to Host… → Add New SSH Host…, and paste the exact command we sent you. VS Code then opens a window running inside the sandbox where you can browse and edit files normally.

If you get disconnected, just run the same ssh ... command again to reconnect — you can do this any time until you submit.

4. Start a tmux session (if available)

A dropped SSH connection normally kills your shell and anything running in it. tmux keeps your session alive on the sandbox so a disconnect doesn't lose your work. Many task images don't include tmux — check with which tmux, and if it's there, start it:

tmux

Do all your work inside this session. If you get disconnected, reconnect with the same ssh ... command and reattach:

tmux attach

You'll be right back where you left off, with everything still running. (No tmux? Skip this step — a plain SSH session works fine.)

5. Solve the task

When you log in, the machine prints the task instructions (also saved to ~/instructions.txt) and starts a timer. You're dropped into the working directory where you should do the task. Work in the shell exactly as you normally would.

A task command is available for interacting with the baseline:

Command What it does
task instructions Reprint the task instructions and this command list.
task status Show whether the timer is running/paused and how much time has elapsed.
task pause / task resume Pause the timer for a break, then resume to keep working.
task note [message] Record a note in the transcript (opens an editor if you don't pass a message).
task submit [answer] Submit your final answer and end the task.
task quit End the task without submitting an answer.

Things to know:

  • Take breaks with task pause — it stops the timer. Run task resume before you start working again. The timer must be running to submit.
  • task submit ends everything. It asks for confirmation, then disconnects you permanently — you can't reconnect afterward. Only run it when you're truly done.
  • Some tasks require your answer in a specific format. If task submit rejects your answer, re-read task instructions. If the task doesn't ask for a particular answer, a bare task submit is fine.

That's it — once you submit, you're done. You can close the terminal.

Troubleshooting

  • Permission denied (publickey) — your private key isn't loaded. Run ssh-add ~/.ssh/id_hawk and try again. If it still fails, the key you sent us may not match the one you're connecting with — let us know and we'll re-check.
  • REMOTE HOST IDENTIFICATION HAS CHANGED — harmless here; it happens because sandbox addresses get reused. The error message names the offending entry (e.g. 10.0.0.5:2222). Remove it and reconnect:
ssh-keygen -R '10.0.0.5:2222'
  • No Remote-SSH: Connect to Host… option in VS Code — the Remote - SSH extension isn't installed yet (it doesn't ship with VS Code by default). Install it from the Extensions panel (search "Remote - SSH" by Microsoft) or from the marketplace page, then reload VS Code and the command will appear in the Command Palette.
  • task: command not found — try logging out and back in, or run source ~/.bashrc. If it persists, let us know.
  • The connection command doesn't work / times out — the sandbox may still be starting up. Wait a minute and try again; if it keeps failing, tell us and we'll check on our end.

If anything else goes wrong, just reach out — most issues are on our side and quick to fix.