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

# Quickstart

Learning to *firebend*™ is easy. In just a few minutes, you'll have the plugin set up and your own custom coding agent.

export const DownloadButton = () => {
  return <button onClick={() => window.open('https://plugins.jetbrains.com/plugin/25224-firebender', '_blank')} className="relative group inline-flex items-center gap-2 px-5 py-2.5 rounded-full overflow-hidden bg-zinc-900 hover:bg-zinc-700 dark:bg-zinc-100 dark:hover:bg-zinc-300">
      <svg className="relative w-4 h-4 text-white dark:text-zinc-950" fill="none" stroke="currentColor" viewBox="0 0 24 24">
        <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
      </svg>
      <span className="relative font-medium text-white dark:text-zinc-950">Download Firebender</span>
    </button>;
};

export const Kbd = () => {
  const isMac = typeof navigator !== 'undefined' && navigator.platform.toUpperCase().indexOf('MAC') >= 0;
  return <kbd>{isMac ? 'Cmd + K' : 'Ctrl + K'}</kbd>;
};

export const KbdL = () => {
  const isMac = typeof navigator !== 'undefined' && navigator.platform.toUpperCase().indexOf('MAC') >= 0;
  return <kbd>{isMac ? 'Cmd + L' : 'Ctrl + L'}</kbd>;
};

<DownloadButton />

## Inline Edit

1. Open a file, Select some code
2. <Kbd /> to open inline edit
3. Type in natural language, then click `Request`

The edit will begin streaming in:

<video autoPlay loop muted playsInline>
  <source src="https://mintcdn.com/firebendercorp/unK9XP5AkA6wmgZ5/assets/inline-edit.webm?fit=max&auto=format&n=unK9XP5AkA6wmgZ5&q=85&s=dcecc658abc32beebd8c525926e92638" type="video/webm" data-path="assets/inline-edit.webm" />
</video>

## Coding Agent

1. <KbdL /> to open chat
2. Click on the drop down for `plan`; this controls the agent mode
3. Say what you want, or let Firebender come up with something: `investigate what this codebase does and suggest a feature or refactor to make it cleaner`

Firebender will get to work for you:

<video autoPlay loop muted playsInline ref={(el) => { if (el) el.playbackRate = 3.0; }}>
  <source src="https://mintcdn.com/firebendercorp/unK9XP5AkA6wmgZ5/assets/codingagent.webm?fit=max&auto=format&n=unK9XP5AkA6wmgZ5&q=85&s=cfdeb075117ed4826ee5b62c93a60f88" type="video/webm" data-path="assets/codingagent.webm" />
</video>

## Custom agent that reviews your code

Type `/agent` then paste:

```
Build an AI Jake Wharton to review my code:
- He is very good at catching bad practice
- See his comments on retrofit using gh cli to get an idea of his style
- Same level of concise and clear PR feedback to whip me into shape
- Make sure to also get his pfp as a file
- Tools for ability to read, no write access, or execute access.
```

Firebender will create an agent that will be available in the mode dropdown!

<video autoPlay loop muted playsInline>
  <source src="https://mintcdn.com/firebendercorp/unK9XP5AkA6wmgZ5/assets/jakewharton.webm?fit=max&auto=format&n=unK9XP5AkA6wmgZ5&q=85&s=b58e709938c8b1b36a04d432ba45b608" type="video/webm" data-path="assets/jakewharton.webm" />
</video>
