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

# Prompting

> Give Replit clear direction in a chat and refine the result with useful follow-up requests.

export const PromptingCover = () => <div className="chat-mkt" role="img" aria-label="Prompt box with context cues and a generated result, representing prompting in Replit" style={{
  margin: "28px 0 42px",
  borderTop: 0,
  paddingTop: 0
}}>
    <div className="chat-use-case-visual" style={{
  aspectRatio: "auto",
  minHeight: "clamp(220px, 34vw, 320px)",
  overflow: "hidden",
  background: "radial-gradient(circle at 50% -18%, rgba(255,255,255,.82), transparent 42%), radial-gradient(circle at 4% 96%, rgba(255,184,146,.48), transparent 38%), linear-gradient(140deg, #ff764d, #ff3c00 60%, #c92d00)"
}}>
      <div aria-hidden="true" style={{
  position: "absolute",
  inset: 0,
  background: "linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 48%, rgba(111,24,0,.2))"
}} />
      <div aria-hidden="true" style={{
  position: "absolute",
  width: "min(76%, 560px)",
  height: "64%",
  left: "50%",
  top: "18%",
  transform: "translateX(-50%) rotate(-4deg)",
  opacity: 0.42,
  border: "1px solid rgba(255,255,255,.34)",
  borderRadius: 26
}} />
      <div aria-hidden="true" style={{
  position: "relative",
  zIndex: 1,
  display: "flex",
  width: "100%",
  minHeight: "inherit",
  alignItems: "center",
  justifyContent: "center",
  padding: "clamp(14px, 3vw, 28px)"
}}>
        <div style={{
  width: "clamp(260px, 66%, 680px)",
  maxWidth: "calc(100% - 20px)",
  boxSizing: "border-box"
}}>
          <div style={{
  display: "flex",
  justifyContent: "center",
  gap: 10,
  marginBottom: 12
}}>
            <span style={{
  width: 18,
  height: 18,
  border: "1px solid rgba(255,255,255,.54)",
  borderRadius: 6,
  background: "rgba(255,255,255,.18)"
}} />
            <span style={{
  width: 18,
  height: 18,
  border: "1px solid rgba(255,255,255,.54)",
  borderRadius: 999,
  background: "rgba(255,255,255,.14)"
}} />
            <span style={{
  width: 18,
  height: 18,
  border: "1px solid rgba(255,255,255,.54)",
  borderRadius: 5,
  background: "rgba(255,255,255,.12)"
}} />
          </div>
          <div style={{
  padding: "clamp(18px, 4vw, 30px)",
  border: "1px solid rgba(255,255,255,.58)",
  borderRadius: 24,
  background: "linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,.1))",
  boxShadow: "0 18px 36px rgba(55,27,18,.2)",
  backdropFilter: "blur(5px)"
}}>
            <div style={{
  display: "grid",
  gap: 9
}}>
              <span style={{
  width: "55%",
  height: 9,
  borderRadius: 999,
  background: "rgba(255,255,255,.84)"
}} />
              <span style={{
  width: "88%",
  height: 9,
  borderRadius: 999,
  background: "rgba(255,255,255,.42)"
}} />
            </div>
            <div style={{
  display: "flex",
  alignItems: "center",
  justifyContent: "space-between",
  gap: 12,
  marginTop: "clamp(22px, 4vw, 32px)",
  padding: "13px 14px",
  border: "1px solid rgba(255,255,255,.64)",
  borderRadius: 16,
  background: "rgba(255,255,255,.18)"
}}>
              <span style={{
  width: "68%",
  height: 8,
  borderRadius: 999,
  background: "rgba(255,255,255,.78)"
}} />
              <span style={{
  display: "grid",
  width: 27,
  height: 27,
  placeItems: "center",
  flex: "0 0 auto",
  borderRadius: 9,
  background: "rgba(255,255,255,.9)",
  color: "#4b5563",
  fontSize: 16,
  fontWeight: 700
}}>
                ↑
              </span>
            </div>
          </div>
          <div style={{
  display: "flex",
  alignItems: "center",
  gap: 10,
  width: "74%",
  margin: "14px auto 0",
  padding: "10px 12px",
  border: "1px solid rgba(255,255,255,.46)",
  borderRadius: 14,
  background: "rgba(255,255,255,.14)"
}}>
            <span style={{
  display: "grid",
  width: 20,
  height: 20,
  placeItems: "center",
  flex: "0 0 auto",
  borderRadius: 999,
  background: "rgba(255,255,255,.86)",
  color: "#4b5563",
  fontSize: 13,
  fontWeight: 700
}}>
              ✓
            </span>
            <span style={{
  width: "68%",
  height: 7,
  borderRadius: 999,
  background: "rgba(255,255,255,.68)"
}} />
          </div>
        </div>
      </div>
    </div>
  </div>;

export const AiPrompt = ({children}) => {
  return <CodeBlock className="relative block max-w-full overflow-x-hidden font-sans !whitespace-pre-wrap !break-words" style={{
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
      <div className="pr-7" style={{
    whiteSpace: "pre-wrap",
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
        {children}
      </div>
    </CodeBlock>;
};

<PromptingCover />

Prompting means telling Replit the result you need in plain language. You don't need a perfect prompt. A short question or a rough idea is often enough to begin, and you can develop the brief through follow-ups.

Use prompts to ask questions, research topics, plan work, schedule Routines, write documents, or create apps, slides, and designs.

Here are three simple steps to prompt effectively:

1. Start simple.
2. Share useful context.
3. Ask follow-up questions and refine the chat.

Let's look at each one.

## Start simple

A short request can establish the direction:

<AiPrompt>
  What should a small team include in a weekly project update?
</AiPrompt>

Add context, boundaries, and an intended use when the task needs them:

<AiPrompt>
  Research how small product teams run weekly planning. Use current web sources
  and the attached team notes. Compare three approaches, keep the summary under
  500 words, and end with a recommendation I can share at Monday's planning
  meeting.
</AiPrompt>

The richer prompt is not automatically better. The extra details are useful because they change the result.

## Give Replit useful direction

When a task needs more direction, focus on what matters. Include only the details Replit needs:

* **State the outcome.** Ask for an answer, analysis, plan, Routine, or something you want to create.
* **Add useful context.** Point Replit to relevant files, [integrations](/features/integrations/overview), web sources, examples, feedback, images, or screenshots.
* **State important boundaries.** Say what Replit should preserve, prioritize, or leave out. Prefer direct instructions that describe what you want.
* **Explain how you will use the result.** Name the audience, decision, format, or next action when it affects the work.

These are options, not a required formula. Start with the details you know, then add more when they help.

<a id="refine-in-the-conversation" />

## Refine in the chat

Use follow-up requests to add context, respond to what Replit produced, or move the work toward an outcome:

* “Show the evidence behind the second finding.”
* “Use the error message I added and revise the likely cause.”
* “Keep the analysis, but turn it into five slides for leadership.”
* “Create a simple tracker from the recommended next steps.”
* “Explore three design directions before I choose one to build.”
* “Run this review every Monday as a Routine.”

Working incrementally helps you review each result before deciding what Replit should do next.

### Keep going from one result to the next

A follow-up can turn one result into the next useful output. Replit keeps the context from earlier in the chat, so you don't need to repeat the brief:

| Start with | Then keep going |
| - | - |
| “Help me compare these three pricing options.” | “Build a calculator so I can test different scenarios.” |
| “What keeps coming up in these survey responses?” | “Build a prototype that addresses the biggest problem.” |
| “Help me shape this idea for a weekend running club.” | “Build a signup page I can publish.” |
| “Explain how compound interest works.” | “Make an interactive example where I can change the numbers.” |
| “What should I ask customers before preparing a quote?” | “Build an intake app to collect these details.” |

For more guidance, explore the [prompt box](/home/prompt-box), learn about [context management](/learn/foundations/context-management), or [see detailed prompting examples](/learn/effective-prompting).

## Next steps

Continue from your prompt with one of these paths:

<section className="chat-mkt chat-workflow-grid has-visuals catalog-three-up">
  <a className="chat-example has-visual" href="/schedule-a-routine">
    <div className="chat-use-case-visual palette-stone">
      <div className="chat-use-case-window">
        <i />

        <i />

        <i />

        <b />

        <b />

        <b />
      </div>

      <div className="chat-use-case-icon">
        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
          <rect width="8" height="8" x="3" y="3" rx="2" />

          <path d="M7 11v4a2 2 0 0 0 2 2h4" />

          <rect width="8" height="8" x="13" y="13" rx="2" />
        </svg>
      </div>
    </div>

    <span>
      <svg width="19" height="19" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
        <rect width="8" height="8" x="3" y="3" rx="2" />

        <path d="M7 11v4a2 2 0 0 0 2 2h4" />

        <rect width="8" height="8" x="13" y="13" rx="2" />
      </svg>
    </span>

    <div className="chat-card-title">Schedule a routine</div>
    <p>Run related work on a recurring schedule.</p>
    <div className="chat-card-link">Explore →</div>
  </a>

  <a className="chat-example has-visual" href="/build-an-app">
    <div className="chat-use-case-visual palette-ink">
      <div className="chat-use-case-window">
        <i />

        <i />

        <i />

        <b />

        <b />

        <b />
      </div>

      <div className="chat-use-case-icon">
        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
          <path d="m18 16 4-4-4-4" />

          <path d="m6 8-4 4 4 4" />

          <path d="m14.5 4-5 16" />
        </svg>
      </div>
    </div>

    <span>
      <svg width="19" height="19" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
        <path d="m18 16 4-4-4-4" />

        <path d="m6 8-4 4 4 4" />

        <path d="m14.5 4-5 16" />
      </svg>
    </span>

    <div className="chat-card-title">Build an app</div>
    <p>Turn the result into working software.</p>
    <div className="chat-card-link">Explore →</div>
  </a>

  <a className="chat-example has-visual" href="/home/integrations">
    <div className="chat-use-case-visual palette-orange">
      <div className="chat-use-case-window">
        <i />

        <i />

        <i />

        <b />

        <b />

        <b />
      </div>

      <div className="chat-use-case-icon">
        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
          <rect width="20" height="14" x="2" y="7" rx="2" ry="2" />

          <path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" />
        </svg>
      </div>
    </div>

    <span>
      <svg width="19" height="19" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
        <rect width="20" height="14" x="2" y="7" rx="2" ry="2" />

        <path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" />
      </svg>
    </span>

    <div className="chat-card-title">Integrate to your workflows</div>
    <p>Bring relevant tools and information into Replit.</p>
    <div className="chat-card-link">Explore →</div>
  </a>
</section>

Learn how to [steer or queue follow-up messages](/features/agent/steer-and-queue-messages) while Replit works.

Once the request is clear, learn how to [add context](/chat/add-context) so Replit has the relevant information and tools for the task.
