Tasks

Published

Updated

A task is a unit of work. It connects a prompt, optional attachments, and one or more coding sessions.

What Is a Task

A task has:

  • A title and optional prompt describing what you want done
  • Optional attachments with ticket text, GitHub issue context, or other reference material
  • One or more coding sessions where Claude does the work

Tasks belong to an account and optionally reference a default environment. Each session can use the task's environment or choose its own environment.

Wallfacer can replace a provisional title on a task created from a message or automated trigger with a generated title. Generated titles are at most 50 characters and end at a whole word or link where possible. Titles from Slack messages omit the leading agent mention and render links as readable labels. Titles you enter or rename yourself stay as written.

Reading Task Messages

On the web, agent responses display Markdown as formatted text. Links are clickable, while tables and code blocks keep their layout. GitHub-style task lists show checked and unchecked items, but their checkboxes are read-only.

GitHub issue and pull request links and recognized Linear issue links in agent replies appear as compact reference pills. Adjacent references wrap across lines. A pill identifies the provider and the issue or pull request. A matching task attachment can supply its title and state; descriptive link text can also supply a title. A link without matching attachment metadata has no state. Wallfacer does not fetch metadata just to display a link. Select a pill to open its matching task attachment or, when there is no matching attachment, the linked issue or pull request. Other links remain ordinary text links.

The native app opens on task history and chats across your accounts. All is the initial account filter. Use the account pills above history to narrow the feed. Search checks older tasks on the server as well as the rows already loaded. More history loads as you scroll.

On a phone, your profile is at the top left and Search and New Chat are in the bottom toolbar. On wider layouts, history stays beside the conversation, with Search and New Chat near the sidebar and your profile at its foot. The app no longer has separate Tasks and Configure destinations or an account picker. Open a task from another account and the task uses that account for its messages and actions.

Press and hold an account pill, including All, and choose Organize accounts to drag pills into order or hide them. These choices are saved for your user on this device. Hiding a pill also filters that account from All. You can reopen the organizer from All even if every account pill is hidden. Pin an agent from its avatar or a task menu to put a New chat shortcut above history. On phones and wider native layouts, pinned agents appear as avatar tiles with their first names below them. In the regular native sidebar, the tiles form centered rows of up to two; an odd final tile is centered, and additional rows scroll with task history. On phones, the tiles continue to wrap with the available width. Agents with the same first name show more of their names, and pins for the same agent in different accounts also show the account. Tap a tile to start a chat, or press and hold it for New chat, Agent details, and Unpin agent. Agent details opens the selected agent's card in the pin's account, even when another account is active. Close the card to return to task history or the sidebar.

Hiding an account removes its agents from both the pinned shortcuts and the New Chat picker immediately. Showing the account restores them, including any pins you saved. If every readable account is hidden, the picker links to Organize accounts so you can show one again.

Agent, computer, account, integration, API key, and handbook configuration lives on the dashboard. The app's read-only views link to the matching dashboard page. Personal settings and credential approvals remain in the app.

Creating a Task

From a new task

Starting work is two steps, and the second one is a conversation.

  1. On iPhone or Android, tap New Chat and choose an agent. Recently used agents appear first, with each agent's account beneath its name. Canceling keeps the conversation and draft you had open. On web, open Team, select the agent, and choose Assign work.
  2. You land in the task screen, empty, with the same chat input every ongoing task has. Type your first message and send it.

On a tablet, use New Chat beside the history sidebar, then choose an agent.

Sending the first message is what creates the task. There is no separate composer to satisfy first, and nothing about the first message is special: images, voice, and mentions work exactly as they do on the tenth message.

The empty task screen has no prompt heading above the composer. The navigation title and composer placeholder name the selected agent.

With an agent selected, use Tasks in the web header or the task-list button in the native header or bottom toolbar to open that agent's tasks. The list has no preset status filter, so it includes completed work. Go back to return to your draft without creating a task. The button does not appear while choosing a recipient or when a handbook is selected.

On web, three centered cards offer Work on an Issue, Checkout a Pull Request, and Run a Playbook. On iPhone and Android, suggestion controls appear above the input for the same actions. Each opens the picker for that kind of context, and picking one is enough to start the task without typing a prompt.

See Agents for how an agent carries its own computer, model, and identity.

Starting from an agent on web skips the recipient step: choose Assign work on the agent's page.

From the iOS Share Sheet

To start a chat with a link or selected text from another iOS app, open its Share Sheet and choose Wallfacer. Search the agent list if needed, then choose the agent who should receive it. The list shows each agent's account and asks you to choose even when only one agent is available.

Wallfacer opens a fresh draft addressed to that agent with the shared title, link, or text in the message input. Review or edit the draft, then tap Send when ready. Choosing an agent does not send the message or create a task. Leave the agent chooser to cancel without switching accounts or creating a task.

If you are signed out, sign in first. Wallfacer returns to the agent chooser with the shared content so you can select a recipient and review the draft.

After the first message

Wallfacer creates the task, then starts a session and boots a VM. Claude Code starts working as soon as the VM is ready. You don't need to wait. Send your instructions and check back later, or watch in real time.

If task creation fails, your message stays in the input where you typed it, so you can send it again.

Who's Performing a Task

Every task row and task view leads with an avatar for who the task belongs to.

  • When an agent is performing the task, the row shows that agent's name and avatar, so you can tell at a glance which agent is on it. Two agents look distinct, not like one generic bot.
  • A task started by a trigger with no agent routed to it shows a generic automation marker instead.
  • A task you created yourself shows your own avatar.

Attribution sticks: if an agent is later removed from your account, its past tasks still show its name and avatar rather than falling back to the generic marker.

This is the same performer a playbook step set to The task's performer follows. See Playbooks for how a step chooses who performs it.

On mobile, the task header shows the task title above the performing agent's name. On tablets and an unfolded Duo, it also shows the task's account. A task without a resolved agent does not show a guessed agent name.

Tap an agent's name to open a read-only card with their role, available Slack or email contact options, and links to View all tasks and View computer. Tap a Slack handle or email address on the card to copy its full value; a confirmation appears. Long addresses wrap so you can read them in full. The task list includes finished work. The computer view shows its specifications, repositories and branches, and services when available. An offboarded agent retains their role and task history without contact options. Close the card to return to the same task and draft.

Finding and Filtering Tasks

On iOS and Android, recent task history spans your accounts. Choose All or an account pill above the list. Search sends the query to the server, so it can find an older task that has not loaded yet. The feed follows task activity order and loads older pages as you scroll. Phone history and the wider sidebar show tasks you own; account pills filter that history without changing the open conversation. On an unfolded Duo or tablet, tap All tasks between Search and New Chat in the sidebar to open the account-wide task list in the conversation pane. It opens the selected account pill's tasks, or the active account's tasks when All is selected. Use the list's filters to narrow by Status or Agent, toggle My tasks, and include archived tasks with Show archived.

Hiding an account pill in Organize accounts removes that shortcut from history. Hidden accounts stay in the organizer, where you can show them again. If you hide the selected account, the filter returns to All. Open a task link to go directly to that task in its own account.

On web, the Tasks list has filters for status, attention, agent, environment, owner, and playbook. Its active filters travel in the URL, so you can bookmark or share a filtered view. Archived tasks are hidden until you turn on Archived. Web list search narrows the currently loaded titles.

When a session changes, the open task updates immediately. Other task-list rows can take about 10 seconds to reflect that session change. Open the task for its current detail; returning to a list also fetches current data.

Conversations and Work Panes on Native Devices

A task can have multiple chat sessions and work views such as Console, Create PR, and Diff. Choose a chat session without changing the open work view, or choose a work view without changing the chat session. Closing a work view keeps your draft. An unsent message in an existing task also stays in the composer when you switch tasks and return. Sending clears it. Drafts are kept in the app's memory for that task and sign-in, so signing out or switching accounts does not carry one into another conversation.

On an iPhone Duo running iOS 27.1 or later, task conversation and work appear in adaptive cards. The work card fits the available window and fold regions. Swipe left or right on a card header to cycle through available content panels. The work pane header has no page dots or page counter; its VoiceOver adjustable control still changes panels. Swiping inside a panel still scrolls its content; sessions and forms such as Create PR do not page with the header gesture. An expanded work card stays expanded when you change panels.

In a regular-width, side-by-side task layout on iPad or an unfolded Duo, the work pane reaches the top of the window beside chat. The task title and actions remain over chat, which starts below the toolbar. Overlay and expanded work panes, and playbook tasks, keep their existing toolbar placement.

On earlier iOS versions and Android, a wide landscape window shows chat and work side by side. In portrait, work opens over a dimmed chat. Return to the conversation to continue where you left off.

Following a Task to Its Source

A task started from a GitHub issue identifies its conversation as GitHub in the origin banner and on message labels. A task started in Slack or email likewise names its source channel. These labels describe where the conversation lives; they do not change where you can send a reply.

On iOS and Android, use Open in in the task header to return to a Slack thread or GitHub issue, or to open a GitHub issue or pull request attached to the task. When there is one link, the button opens it directly. When there are several, its menu lists the conversation first, followed by attached issues and pull requests. The links open in the corresponding app when available, or in a browser. Open in also appears when the task cannot accept replies in Wallfacer.

An email-started task identifies Email in the origin banner but has no email-thread link; attached GitHub issues or pull requests can still appear under Open in. A task created in the app with no external attachment has no Open in control.

On the web dashboard, the task header has an external-link button when the task has an origin thread or an attached GitHub issue or pull request. One destination opens directly in a new tab. With several destinations, choose Open in… to see the origin conversation first, then the attached GitHub work. The origin link stays available when you can reply from Wallfacer. Email conversations have no thread URL; when replies are restricted, the banner can name the email counterpart instead. If the task has no usable external URL, there is no header button.

Acting on a Task from the List

On iPhone and Android, press and hold a task row to act on it without opening it first. The row lifts out of the list and its actions hang off it:

  • Rename -- change the task title.
  • Share -- open the share sheet with a link to the task.
  • Copy Link -- put that same link on the clipboard.
  • Archive -- archive the task, after a confirmation. Archiving is recoverable: flip the Archived toggle in the filters to see archived tasks again.

Tapping the lifted row opens the task, the same as a plain tap.

Task rows in native history have the same menu.

To archive an active task faster on iOS or Android, swipe left on its row in history or All tasks. Tap the revealed Archive button or complete the full swipe to archive immediately. If archiving fails, the row stays visible with Retry. Archived rows have no swipe action. The long-press menu and screen-reader Archive action still ask for confirmation. Scrolling the list or swiping another row closes an open Archive button.

Attachments

Use attachments to give Claude context beyond the prompt.

  • Attach inline text, ticket content, or a reference URL.
  • Attach a GitHub issue or pull request to a new task's first message, from the centered cards on web, the suggestion controls on iPhone and Android, or the + menu beside the input. The picker searches the repos the agent's computer clones. The + menu lists Photo, Camera, and File first, then Issue, Pull Request, and Handbook; a source that isn't available (no camera on the web, an account with no playbooks) drops out of the list.
  • Attach one to a task already running, from the same + menu. It joins the task and is listed under Attached context in the message you send.
  • Attach multiple items to a single task.
  • Attached context appears in the task detail view.

With an issue, a pull request, or a handbook selected, you can send without typing anything and Wallfacer writes the opening message for you. See Task Attachments.

GitHub issue attachments include the issue details Wallfacer can resolve for Claude, while preserving the original GitHub URL as the source reference.

See Task Attachments for the full attachment model and API routes.

Tasks Started During a Call

A task started during a phone call or meeting links back to the agent's call record after the call ends. Open that link to read what was said and what the call produced. See Calls and Call Records.

Task Status

A task stays active while its work is in progress and settles to a terminal state when the work finishes or can't continue.

To pause an active task, open its task menu and choose Stop task. Confirming stops the current turn and pauses the task. Choose Resume task from the same menu to make a paused task active again. If either status change fails, an inline error says Couldn't pause task or Couldn't resume task and asks you to try again. The task keeps its previous status until the change succeeds.

A playbook task can finish from its published objective when a matching event shows the goal was met. If the goal was reached elsewhere, the task owner or an account admin can choose Mark done from the task menu or an Inbox row. Choose Close when the work is no longer needed. Both actions stop the current step and any running session; Close does not count as a completion. The same outcomes are available through the Tasks API.

If a task's coding session fails terminally, the task now moves to a failed state and sends you a notification, instead of appearing to run indefinitely. That surfaces the problem so you can start a new session or adjust the task, rather than waiting on work that has already stopped.

The task list shows a one-line summary under the title when one is available: the current step for a task running a playbook, otherwise the last thing its agent said. A task whose agent has not spoken yet shows its title alone rather than filler. Some older tasks with legacy statuses can also show only the title after the agent has spoken because their message previews have not been filled in. A turn where the agent only used tools leaves the previous summary standing, so the line keeps describing the work rather than the scaffolding around it.

Pausing a Task

Pausing a task stops its playbook steps from advancing. Abort an in-flight turn first if you need it to stop immediately. Wallfacer releases the task's sandbox VM unless a running session still uses it. When you resume a task after its VM was released, Wallfacer boots a fresh VM and re-runs the interrupted step. See Pause or resume the task for the API call.

Waiting on a Person

A task that has stopped for a human reads as waiting on a person rather than as work in flight. It carries the amber attention accent in the task list and sorts with the tasks that need somebody, and the task itself says what it is waiting for.

That is a question the agent asked. When an agent stops to ask something, the task names who is being asked. If the agent asked you, it reads Waiting on your answer and says the question is yours; to anybody else it names the person or people it is waiting on, so a bystander knows whose answer is missing rather than assuming it is theirs. There are no Approve or Reject buttons: an answer is information, not a decision, and anybody reading the task can reply.

A question the agent asked in Slack or by email keeps its own callout and names no addressee on the task.

A task parked on a playbook's Wait step is not this. It shows a Waiting on a signal callout, it is not waiting on anybody in Wallfacer, and it continues on its own when the review, label, or check it names lands. See Playbooks.

Sharing a Task

Every task has its own URL, and sending it to a teammate opens the same task for them.

  • On a phone or tablet, open the task actions menu and tap Share Task. On an unfolded iPhone Duo, the actions menu is in the bottom toolbar; on other devices, it is in the task header. Your device's share sheet opens with the task link, ready to send through messages, mail, chat, or the clipboard.
  • On the web, the task URL is in the address bar.

The link addresses the task, not one session, so it stays valid as the task starts new sessions. Task access is account-scoped: the link opens for anyone who is already a member of the task's account, and sharing it does not grant access to anyone else.

Branch Management

A new session normally gets its own branch. If you do not provide a branch name, Wallfacer generates one following this pattern:

{handle}/{session-id-suffix}

For example: steve/b8dae0f6, where steve is the agent's handle and b8dae0f6 is the last eight hexadecimal characters of the session ID. For a session run for a person, the branch uses that person's handle. Wallfacer assigns the name when it creates the session, before the VM boots. The name is available before the branch is checked out in the workspace. Multiple sessions under the same task can produce separate branches, which is useful for trying alternate approaches or working across multiple environments.

When a playbook implements an assigned GitHub issue across steps, later steps use the head branch of an open pull request whose body uses a GitHub closing keyword for that issue. The task keeps working in the existing pull request, even if the first session created a different branch. See Playbooks.