> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zerotwo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Prompting

<a id="prompts" />

## Prompting overview

Prompting is how you tell ZeroTwo what you want to know, make, or change. A prompt
can be a question, an instruction, or a goal. You don't need technical syntax or
a rigid formula. Start in your own words, review the response, and use follow-up
messages to shape the result.

A short prompt is often enough. For larger or more important tasks, include the
parts that matter:

* **Goal:** What should ZeroTwo do?
* **Context:** What information or sources will help?
* **Output:** What format, length, or level of detail do you need?
* **Boundaries:** What must stay unchanged? What should ZeroTwo avoid or check
  with you before it acts?

Use only the parts that help. You don't need to fill in every item or follow a
required format.

## Describe the result you need

Start with the result, not a detailed list of steps. Include the audience or
format when those details change what ZeroTwo should produce.

```text theme={null}
Turn these meeting notes into a short update for the project team.
Put the decisions and next steps first.
```

This prompt explains what to create and who will read it. Describe a process when
the process itself matters. Otherwise, leave ZeroTwo room to search, compare
information, and adjust its approach.

<a id="context" />

## Add useful context

Share the information that could change the result. Add only the sources that
matter, and explain what ZeroTwo should take from each one.

* Attach documents, spreadsheets, presentations, or PDF files when you want
  ZeroTwo to summarize, compare, transform, or [create files for review](/artifacts-viewer).
* Add a screenshot, diagram, or other [image input](/image-inputs) when the
  task depends on visual context. Point out the area that matters instead of
  relying on the image alone.
* Ask ZeroTwo to use [web search](/web-search) when the answer depends on
  current information, and ask for sources when you need to check the result.
* Use a [project](/projects) when related chats should share files,
  sources, or a local folder.

### Use connected sources

When ZeroTwo has access to connected sources, name where it should look and what
it should find. You don't need to describe every search it should run.

```text theme={null}
Use the latest project plan in Drive and relevant decisions and updates from
the project's Slack channel to prepare a status update.
```

Connected sources require the matching plugin, and availability can depend on
your plan and workspace settings.

### Use plugins

Plugins give ZeroTwo and ZeroCode reusable instructions and connections to tools
such as Google Drive, Gmail, Slack, and GitHub. Both products draw public
plugins from the same universal directory. Ask for the result you need and let
the active surface choose from the tools available to it. In ZeroTwo, type `@`
in the composer to choose a specific plugin.

<div className="chatgpt-next-steps not-prose">
  <a className="chatgpt-next-step" href="/plugins">
    <span className="chatgpt-next-step-icon" aria-hidden="true">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="20" height="20">
        <path d="M2.68 4.949a2.54 2.54 0 0 1 2.528-2.28h7.458c.69 0 1.246-.001 1.697.035.458.038.864.117 1.24.309l.219.122c.495.304.899.74 1.165 1.262l.066.142c.144.337.21.697.242 1.098.037.45.036 1.007.036 1.696v5.375a2.957 2.957 0 0 1-2.956 2.957h-1.64a2.748 2.748 0 0 1-5.471 0H5.208a2.54 2.54 0 0 1-2.54-2.54v-1.459l.006-.11c.056-.545.516-.97 1.076-.97l.145-.008a1.419 1.419 0 0 0-.145-2.83 1.08 1.08 0 0 1-1.082-1.08v-1.46zM3.999 6.43a2.747 2.747 0 0 1 0 5.47v1.224c0 .668.542 1.21 1.21 1.21H7.5l.11.005c.546.056.971.517.971 1.076a1.42 1.42 0 0 0 2.837 0c0-.597.485-1.08 1.082-1.08h1.875c.899 0 1.626-.73 1.626-1.628V7.333c0-.71 0-1.204-.031-1.588a2.4 2.4 0 0 0-.112-.615L15.802 5a1.84 1.84 0 0 0-.676-.731L15 4.199c-.158-.08-.37-.138-.745-.168-.383-.032-.877-.033-1.588-.033H5.208a1.21 1.21 0 0 0-1.21 1.21z" />
      </svg>
    </span>

    <span className="chatgpt-next-step-copy">
      <span className="chatgpt-next-step-title">Learn about plugins</span>
      <span className="chatgpt-next-step-desc">Find, install, and use plugins in ZeroTwo and ZeroCode.</span>
    </span>
  </a>
</div>

### Personalize ZeroTwo

Put preferences that should apply across chats in **Settings > Personalization**
as custom instructions. Keep details that matter only to the current chat in the
prompt.

<div className="chatgpt-next-steps not-prose">
  <a className="chatgpt-next-step" href="/reference/settings#personalization">
    <span className="chatgpt-next-step-icon" aria-hidden="true">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="20" height="20">
        <path d="M10.323 1.627c.828 0 1.595.439 2.014 1.154l.822 1.4.053.07c.062.06.145.096.233.096l1.615.013.154.007c.768.057 1.463.49 1.85 1.164l.329.571.073.136c.315.642.318 1.395.008 2.04l-.071.136-.803 1.422a.34.34 0 0 0 0 .329l.803 1.42.071.137c.31.645.308 1.398-.008 2.04l-.073.136-.328.571a2.34 2.34 0 0 1-1.85 1.165l-.155.005-1.615.014a.34.34 0 0 0-.233.097l-.053.068-.822 1.401a2.34 2.34 0 0 1-2.014 1.155h-.647c-.777 0-1.499-.387-1.931-1.024l-.082-.13-.822-1.402a.34.34 0 0 0-.2-.153l-.086-.012-1.615-.014A2.34 2.34 0 0 1 3.016 14.6l-.081-.13-.328-.572a2.34 2.34 0 0 1-.01-2.312l.802-1.421.033-.08a.34.34 0 0 0 0-.17l-.033-.08-.802-1.421a2.33 2.33 0 0 1 .01-2.312l.328-.571.081-.13A2.34 2.34 0 0 1 4.94 4.36l1.615-.013.086-.011a.34.34 0 0 0 .2-.155l.822-1.4.082-.13a2.34 2.34 0 0 1 1.931-1.024zm-.647 1.33c-.312 0-.603.144-.792.386l-.074.11-.821 1.401c-.26.443-.706.737-1.206.807l-.217.016-1.615.013c-.312.003-.603.15-.79.394l-.074.11-.328.571a1 1 0 0 0-.004.995l.802 1.421.095.196c.161.399.16.846 0 1.246l-.095.196-.802 1.42c-.174.31-.173.688.004.996l.328.57.075.11c.186.245.476.392.789.394l1.615.014.217.015c.5.07.946.366 1.206.808l.821 1.4.074.11c.189.242.48.388.792.388h.647c.356 0 .686-.19.867-.497l.821-1.4.122-.181c.31-.4.788-.639 1.301-.643l1.615-.014.132-.01c.304-.042.576-.223.732-.494l.328-.57.057-.118c.1-.243.102-.515.004-.758l-.057-.12-.803-1.42a1.67 1.67 0 0 1 0-1.638l.803-1.42.057-.12a1 1 0 0 0-.004-.758l-.057-.118-.328-.571a1 1 0 0 0-.732-.494l-.132-.01-1.615-.013a1.67 1.67 0 0 1-1.3-.642l-.123-.18-.821-1.401a1 1 0 0 0-.867-.497zM11.586 10A1.586 1.586 0 1 0 8.413 10 1.586 1.586 0 0 0 11.585 10m1.329 0a2.915 2.915 0 1 1-5.83 0 2.915 2.915 0 0 1 5.83 0" />
      </svg>
    </span>

    <span className="chatgpt-next-step-copy">
      <span className="chatgpt-next-step-title">Review personalization settings</span>
      <span className="chatgpt-next-step-desc">Set a default personality, custom instructions, and other app preferences.</span>
    </span>
  </a>
</div>

## Set boundaries that prevent real problems

Boundaries are the few instructions ZeroTwo needs to avoid creating extra work
or taking an action you didn't intend. Add one when changing the wrong detail
would make the result unusable, or when you want to review something before it
affects other people.

* Keep the approved dates and budget figures unchanged.
* Use only the supplied sources. Flag missing information instead of guessing.
* Keep recommendations within the stated budget.
* Prepare the message as a draft. Don't send it.

Focus on the one or two boundaries that matter most. You don't need to control
every step ZeroTwo takes.

## Make the result ready to use

Tell ZeroTwo how you plan to use the result. This helps it choose the right
length, level of detail, and organization.

* Make this a one-page summary a director can scan before the meeting. Put the
  decision and next steps first.
* Turn these notes into a follow-up email with the decisions, owners, and due
  dates.
* Create a clear table of planned versus actual spending and highlight any
  difference over 10%.

For important work, ask ZeroTwo for a final check, such as confirming every
action item has an owner and due date or flagging information it couldn't
verify. Then review the result yourself before you use or share it.

## Improve the result with follow-up messages

Your first prompt doesn't need to be perfect. Review the result, then ask for
the specific change you want.

```text theme={null}
Make the opening more direct, keep the evidence, and move the recommendation
above the background section.
```

You can add a missing source, correct the direction, ask for another option, or
change the level of detail without starting over.

### Steering and queuing

When ZeroCode is already working, you can send another message without waiting for
the current run to finish:

* **Steer** adds the message to the current run. Use it to change direction, add
  a missing detail, or share new information.
* **Queue** saves the message for the next run. Use it for a follow-up that should
  wait until the current work finishes.

In the ZeroTwo desktop app, choose the default under
[**Settings > General > Follow-up behavior**](/reference/settings#general).
Queued messages appear above the composer, where you can edit, reorder, send, or
delete them. The setting also shows the shortcut for using the other behavior
for one message without changing your default.

In ZeroTwo desktop app, press <kbd>Enter</kbd> while ZeroCode is working to steer the current
turn, or press <kbd>Tab</kbd> to queue the message for the next turn. See the
[interactive shortcuts](/developer-commands#cli-interactive-shortcuts)
for details.

## Put the pieces together

For a project update that uses connected sources, a complete prompt might look
like this:

```text theme={null}
Prepare a one-page project status update for Monday's leadership meeting. Use
the latest project plan in Drive and relevant decisions and updates from the
project's Slack channel.

Lead with the decisions leadership needs to make and the next steps. Summarize
progress, risks, owners, and due dates. Keep approved dates and budget figures
unchanged. Flag any conflicting or missing information, and don't send or
publish anything.

Before you finish, check that every next step has an owner and due date.
```

This prompt covers the **Goal**, **Context**, **Output**, and **Boundaries**, then
asks for a final check without spelling out every step.

## Use voice dictation

In the ZeroTwo desktop app, hold <kbd>Ctrl</kbd>+<kbd>M</kbd> while the composer is
visible, then start talking. ZeroTwo transcribes your speech into the composer so
you can review and edit it before sending the prompt.

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/zerotwo/B2FY-6wZG9TdQ3iS/images/codex/app/voice-dictation-light.webp?fit=max&auto=format&n=B2FY-6wZG9TdQ3iS&q=85&s=1b21e12bb7481d13d68e92fe9acdf799" alt="ZeroTwo voice dictation waveform active in the composer" width="1214" height="344" data-path="images/codex/app/voice-dictation-light.webp" />

  <img className="hidden dark:block" src="https://mintcdn.com/zerotwo/B2FY-6wZG9TdQ3iS/images/codex/app/voice-dictation-dark.webp?fit=max&auto=format&n=B2FY-6wZG9TdQ3iS&q=85&s=9cbb4bb549b18eac99fad75a92939648" alt="ZeroTwo voice dictation waveform active in the composer" width="1214" height="344" data-path="images/codex/app/voice-dictation-dark.webp" />
</Frame>

<a id="threads" />

<a id="chats" />

## Prompting examples for Chat

Use Chat for questions, ideas, drafts, and everyday decisions. Start with the
outcome you want, then add detail only when it changes the answer.

### Understand a topic

```text theme={null}
Explain how compound interest works for someone who has never invested.
Use one concrete example and define any financial terms you introduce.
```

### Draft and refine writing

```text theme={null}
Draft a friendly email declining this invitation because I will be traveling.
Keep it under 120 words and leave the door open for a future event.
```

### Compare options

```text theme={null}
Compare these two phone plans for one person who travels internationally twice
a year. Show the important differences in a table, then recommend one and explain
the tradeoff.
```

### Make a practical plan

```text theme={null}
Plan five weekday dinners that take less than 30 minutes. Avoid peanuts, reuse
ingredients across meals, and finish with one consolidated shopping list.
```

<a id="prompting-for-work" />

<a id="prompting-in-work-mode" />

## Prompting for ZeroTwo Work

Use Chat for quick questions, short rewrites, brainstorming, and lightweight
drafts. Use ZeroTwo Work for tasks that draw on different sources or tools, involve a
sequence of steps, make changes, or produce a larger deliverable.

In ZeroTwo Work, describe the result you need, provide the source material, name
the audience, and explain how you'll review the work. Ask ZeroTwo to plan,
gather the needed information, create files, and check them before it finishes.

<a id="use-work-efficiently" />

<a id="use-work-mode-efficiently" />

### Use ZeroTwo Work efficiently

ZeroTwo Work is useful for time-consuming or recurring tasks, or for finished files you
can reuse. A task that uses more credits can still be worthwhile if it saves
time, improves quality, or helps you make an important decision.

Start with one result you can review:

* Include only relevant sources and limit the date range when appropriate.
* Define the audience, output format, and desired length.
* Separate required work from optional improvements or polish.
* Ask for a plan when the approach matters. Require your approval before ZeroTwo
  sends, publishes, or changes information other people rely on.
* Narrow or stop the task if it starts doing work you no longer need.

Review the first result, refine the instructions, and reuse the workflow when
it works.

### Turn source material into finished files

```text theme={null}
Use the attached quarterly reports to create a leadership brief and a six-slide
presentation.

The audience is the executive team. Lead with the three decisions they need to
make, distinguish reported facts from your analysis, cite each number to its
source file, and check that the brief and slides agree before you finish.
```

### Research a decision

```text theme={null}
Research three customer-support platforms for a 50-person company. Compare
pricing, security, integrations, and migration effort using current sources.
Deliver a recommendation memo with links, assumptions, and the questions we
should answer before signing a contract.
```

### Coordinate a launch

```text theme={null}
Create a launch plan for the attached product brief. Include the timeline,
owners, dependencies, risks, announcement draft, customer FAQ, and a checklist
for launch day. Flag any missing decisions before producing the final files.
```

For recurring work, first refine the prompt in a normal chat. After the output is
reliable, [schedule a task inside that chat](/automations#schedule-a-task-inside-a-chat).
Create a standalone scheduled task instead when each scheduled run should start
a new chat.

<a id="use-editor-context" />

## Prompting ZeroCode

Use ZeroCode when you want ZeroTwo to work with code, a codebase, or developer tools.
A useful ZeroCode prompt names the behavior you want, points to the relevant code or
reproduction steps, preserves important constraints, and says how to verify the
change.

<a id="goal-mode" />

For a multi-step task, enter `/plan` in the app composer when you want ZeroCode to
investigate and propose an approach before editing. When [Goal mode](/long-running-work)
is available, use `/goal` after the plan to set a persistent goal. See the [app slash
commands](/reference/slash-commands)
for the current command list.

### How to read these examples

Each workflow includes:

* **When to use it** and which ZeroCode surface fits best (IDE, CLI, or cloud).
* **Steps** with example user prompts.
* **Context notes**: what ZeroCode automatically sees vs what you should attach.
* **Verification**: how to check the output.

> **Note:** The desktop app automatically includes your open files as context. In the CLI, mention paths explicitly, or attach files with `/mention` and `@` path autocomplete.

ZeroCode runs local commands inside a [sandbox](/sandboxing)
that limits file and network access. If a task needs to cross that boundary,
ZeroCode follows your approval policy before continuing.

### Explain a codebase

Use this when you are onboarding, inheriting a service, or trying to reason about a protocol, data model, or request flow.

#### desktop app workflow (fastest for local exploration)

<Steps>
  <Step title="Open the most relevant files." />

  <Step title="Select the code you care about (optional but recommended)." />

  <Step title="Prompt ZeroCode:">
    ```text theme={null}
    Explain how the request flows through the selected code.

    Include:
    - a short summary of the responsibilities of each module involved
    - what data is validated and where
    - one or two "gotchas" to watch for when changing this
    ```
  </Step>
</Steps>

Verification:

* Ask for a diagram or checklist you can verify:

```text theme={null}
Summarize the request flow as a numbered list of steps. Then list the files involved.
```

### Fix a bug

Use this when you have a failing behavior you can reproduce locally.

### desktop app workflow

<Steps>
  <Step title="Open the file where you think the bug lives, plus its nearest caller." />

  <Step title="Prompt ZeroCode:">
    ```text theme={null}
    Find the bug causing "Saved" to show without persisting changes. After proposing the fix, tell me how to verify it in the UI.
    ```
  </Step>
</Steps>

### Write a test

Use this when you want to define the exact scope to test.

#### desktop app workflow (selection-based)

<Steps>
  <Step title="Open the file with the function." />

  <Step title="Select the lines that define the function. Choose &#x22;Add to ZeroCode Thread&#x22; from command palette to add these lines to the context." />

  <Step title="Prompt ZeroCode:">
    ```text theme={null}
    Write a unit test for this function. Follow conventions used in other tests.
    ```
  </Step>
</Steps>

Context notes:

* Supplied by "Add to ZeroCode Thread" command: the selected lines (this is the "line number" scope), plus open files.

### Prototype from a screenshot

Use this when you want to turn a design mock, screenshot, or UI reference into a working prototype.

### desktop app workflow (image + existing files)

<Steps>
  <Step title="Attach the image in the ZeroCode chat (drag-and-drop or paste)." />

  <Step title="Prompt ZeroCode:">
    ```text theme={null}
    Create a new settings page. Use the attached screenshot as the target UI.
    Follow design and visual patterns from other files in this project.
    ```
  </Step>
</Steps>

### Iterate on UI with live updates

Use this when you want a tight "design → tweak → refresh → tweak" loop while ZeroCode edits code.

### Delegate refactor to the cloud

Use this when you want to design an approach with local context, then delegate the long implementation to a cloud chat that can run in parallel.

#### Local planning (IDE)

<Steps>
  <Step title="Make sure your current work is committed or at least stashed so you can compare changes cleanly." />

  <Step title="Ask ZeroCode to produce a refactor plan. If you have the `$plan` skill available, invoke it explicitly:">
    ```text theme={null}
    $plan

    We need to refactor the auth subsystem to:
    - split responsibilities (token parsing vs session loading vs permissions)
    - reduce circular imports
    - improve testability

    Constraints:
    - No user-visible behavior changes
    - Keep public APIs stable
    - Include a step-by-step migration plan
    ```
  </Step>

  <Step title="Review the plan and negotiate changes:">
    ```text theme={null}
    Revise the plan to:
    - specify exactly which files move in each milestone
    - include a rollback strategy
    ```
  </Step>
</Steps>

Context notes:

* Planning works best when ZeroCode can scan the current code locally (entrypoints, module boundaries, dependency graph hints).

#### Cloud delegation (IDE → Cloud)

<Steps>
  <Step title="If you haven't already done so, set up a [ZeroCode cloud environment](/environments/cloud-environment)." />

  <Step title="Click on the cloud icon beneath the prompt composer and select your cloud environment." />

  <Step title="When you enter the next prompt, ZeroCode creates a new chat in the cloud that carries over the existing chat context (including the plan and any local source changes).">
    ```text theme={null}
    Implement Milestone 1 from the plan.
    ```
  </Step>

  <Step title="Review the cloud diff, iterate if needed." />

  <Step title="Create a PR directly from the cloud or pull changes locally to test and finish up." />

  <Step title="Iterate on additional milestones of the plan." />
</Steps>

Tasks delegated to the cloud run in isolated environments. Internet access is
off during the agent phase unless you enable it for the environment. Learn more
about [cloud internet access](/cloud/internet-access).

### Do a local code review

Use this when you want a second set of eyes before committing or creating a PR.

### Review a GitHub pull request

Use this when you want review feedback without pulling the branch locally.

Before you can use this, enable ZeroCode **Code review** on your repository. See [Code review](/extend/mcp).

#### GitHub workflow (comment-driven)

<Steps>
  <Step title="Open the pull request on GitHub." />

  <Step title="Leave a comment that tags ZeroCode with explicit focus areas:">
    ```text theme={null}
    @zerocode review
    ```
  </Step>

  <Step title="Optional: Provide more explicit instructions.">
    ```text theme={null}
    @zerocode review for security vulnerabilities and security concerns
    ```
  </Step>
</Steps>

### Update documentation

Use this when you need an accurate, clear documentation change.

#### IDE or CLI workflow (local edits + local validation)

<Steps>
  <Step title="Identify the doc file(s) to change and open them (IDE) or `@` mention them (IDE or CLI)." />

  <Step title="Prompt ZeroCode with scope and validation requirements:">
    ```text theme={null}
    Update the "advanced features" documentation to provide authentication troubleshooting guidance. Verify that all links are valid.
    ```
  </Step>

  <Step title="After ZeroCode drafts the changes, review the documentation and iterate as needed." />
</Steps>

Verification:

* Read the rendered page.
