summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/docs/catalog.md29
-rw-r--r--docs/docs/concepts/autopilot.md30
-rw-r--r--docs/docs/concepts/credentials.md7
-rw-r--r--docs/docs/concepts/gui.md18
-rw-r--r--docs/docs/concepts/history.md13
-rw-r--r--docs/docs/concepts/ide.md98
-rw-r--r--docs/docs/concepts/llm.md23
-rw-r--r--docs/docs/concepts/policy.md14
-rw-r--r--docs/docs/concepts/recipe.md15
-rw-r--r--docs/docs/concepts/sdk.md62
-rw-r--r--docs/docs/concepts/server.md11
-rw-r--r--docs/docs/concepts/step.md35
-rw-r--r--docs/docs/customization/context-providers.md6
-rw-r--r--docs/docs/customization/models.md6
-rw-r--r--docs/docs/customization/other-configuration.md6
-rw-r--r--docs/docs/customization/overview.md6
-rw-r--r--docs/docs/customization/slash-commands.md7
-rw-r--r--docs/docs/development-data.md6
-rw-r--r--docs/docs/how-continue-works.md7
-rw-r--r--docs/docs/how-to-use-continue.md6
-rw-r--r--docs/docs/intro.md6
-rw-r--r--docs/docs/quickstart.md6
-rw-r--r--docs/docs/telemetry.md7
-rw-r--r--docs/docs/troubleshooting.md6
-rw-r--r--docs/docs/walkthroughs/codebase-embeddings.md6
-rw-r--r--docs/docs/walkthroughs/codellama.md6
-rw-r--r--docs/docs/walkthroughs/create-a-recipe.md97
-rw-r--r--docs/docs/walkthroughs/headless-mode.md6
-rw-r--r--docs/docs/walkthroughs/manually-run-continue.md6
-rw-r--r--docs/docs/walkthroughs/running-continue-without-internet.md7
-rw-r--r--docs/docs/walkthroughs/share-a-recipe.md21
-rw-r--r--docs/docs/walkthroughs/use-a-recipe.md43
-rw-r--r--docs/docs/walkthroughs/use-the-gui.md37
-rw-r--r--docs/docusaurus.config.js1
34 files changed, 107 insertions, 553 deletions
diff --git a/docs/docs/catalog.md b/docs/docs/catalog.md
deleted file mode 100644
index 7dbcb547..00000000
--- a/docs/docs/catalog.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Catalog
-
-## Steps
-
-### EditCodeStep
-
-Provide a prompt and a list of file ranges to be edited by a language model
-
-### ManualEditStep
-
-Tracks all user edits in the IDE so that they can be reversed along with other steps
-
-### CreateTableStep
-
-Create a table in TypeORM
-
-### MigrationStep
-
-Create and run an alembic migration
-
-### AnswerQuestionChromaStep
-
-Type `/ask` and ask any question about your whole codebase. The Chroma embeddings store will help find important snippets and answer your question
-
-## Recipes
-
-### WritePytestsRecipe
-
-Write unit tests for this file \ No newline at end of file
diff --git a/docs/docs/concepts/autopilot.md b/docs/docs/concepts/autopilot.md
deleted file mode 100644
index 71090eb0..00000000
--- a/docs/docs/concepts/autopilot.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Autopilot
-
-**TODO: Better explain in one sentence what this is and what its purpose is**
-
-:::info
-The **autopilot** is the main loop, completing steps and then deciding the next step and repeating
-:::
-
-## Details
-
-The Autopilot class is the center of Continue. Every step is initiated from the Autopilot, which provides it with a ContinueSDK.
-
-- Records history
-- Allows reversal
-- Injects SDK
-- Has policy to decide what step to take next
-- Accepts user input and acts on it
-- Main event loop
-- Contains main classes that are provided through the SDK, including LLM, History, IDE
-
----
-
-- An autopilot takes user input from the React app
-- You can see this happening in `server/gui.py`
-- It basically queues user inputs, pops off the most recent, runs that as a "UserInputStep", uses its Policy to run other steps until the next step is None, and then pops off the next user input. When nothing left, just waits for more
-- `Autopilot` contains the
- - History
- - LLM
- - Policy
- - IDE
diff --git a/docs/docs/concepts/credentials.md b/docs/docs/concepts/credentials.md
deleted file mode 100644
index a2cf90e0..00000000
--- a/docs/docs/concepts/credentials.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Credentials
-
-**TODO: where to add / edit / remove API keys**
-
-Recipes on per model basis (make sure you have added API key)
-
-Models from OpenAI will require an API key
diff --git a/docs/docs/concepts/gui.md b/docs/docs/concepts/gui.md
deleted file mode 100644
index ff99839f..00000000
--- a/docs/docs/concepts/gui.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# GUI
-
-**TODO: Make sure codebase aligns with this terminology**
-
-:::info
-The **Continue GUI** lets you transparently review every automated step, providing the opportunity to undo and rerun any that ran incorrectly.
-:::
-
-## Details
-
-GUI displays every step taken by Continue in a way that lets you easily review, reverse, refine, re-run. Provides a natural language prompt where you can request edits in natural language or initiate recipes with slash commands. Communicates with the Continue server via GUI Protocol. Is a React app, which will eventually be published as a standalone npm package, importable as a simple React component.
-
-- **From GUI to Core**
- - Natural language instructions from the developer
- - Hover / clicked on a step
- - Other user input
-- **From Core to GUI**
- - Updates to state (e.g. a new step)
diff --git a/docs/docs/concepts/history.md b/docs/docs/concepts/history.md
deleted file mode 100644
index 7f028e14..00000000
--- a/docs/docs/concepts/history.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# History
-
-**TODO: Better explain in one sentence what this is and what its purpose is**
-
-:::info
-The **history** is the ordered record of all past steps
-:::
-
-## Details
-
-History stores a list ("timeline") of HistoryNodes. Each HistoryNode contains the Step with parameters, the Observation returned by the step, and the depth of the step (just so we can understand the tree structure, and what called what, and display as a tree if we wanted). History has a current_index, which can be smaller than the length of the timeline if some steps have been reversed (in which case GUI displays them with lower opacity). History class mostly responsible for maintaining order of history during reversals, grabbing most recent steps, or other things that should be bottlenecked through reliable access methods.
-
-- What step data and metadata is stored in the history?
diff --git a/docs/docs/concepts/ide.md b/docs/docs/concepts/ide.md
deleted file mode 100644
index d4b48f0a..00000000
--- a/docs/docs/concepts/ide.md
+++ /dev/null
@@ -1,98 +0,0 @@
-# IDE
-
-**TODO: Better explain in one sentence what this is and what its purpose is**
-
-:::info
-The **IDE** is the text editor where you manually edit your code.
-:::
-
-## Details
-
-SDK provides "IDEProtocol" class so that steps can interact with VS Code, etc... in an IDE-agnostic way. Communicates with editor through websockets protocol. All that's needed to make continue work with a new IDE/editor is to implement the protocol on the side of the editor.
-
-- `ide_protocol.py` is just the abstract version of what is implemented in `ide.py`, and `main.py` runs both `notebook.py` and `ide.py` as a single FastAPI server. This is the entry point to the Continue server, and acts as a bridge between IDE and React app
-- extension directory contains 1. The VS Code extension, whose code is in `extension/src`, with `extension.ts` being the entry point, and 2. the Continue React app, in the `extension/react-app` folder. This is displayed in the sidebar of VS Code, but is designed to work with any IDE that implements the protocol as is done in `extension/src/continueIdeClient.ts`.
-
-## Supported IDEs
-
-### VS Code
-
-You can install the VS Code extension [here](../quickstart.md)
-
-### GitHub Codespaces
-
-You can install the GitHub Codespaces extension [here](../quickstart.md)
-
-## IDE Protocol methods
-
-### handle_json
-
-Handle a json message
-
-### showSuggestion
-
-Show a suggestion to the user
-
-### getWorkspaceDirectory
-
-Get the workspace directory
-
-### setFileOpen
-
-Set whether a file is open
-
-### getSessionId
-
-Get a new session ID
-
-### showSuggestionsAndWait
-
-Show suggestions to the user and wait for a response
-
-### onAcceptRejectSuggestion
-
-Called when the user accepts or rejects a suggestion
-
-### onTraceback
-
-Called when a traceback is received
-
-### onFileSystemUpdate
-
-Called when a file system update is received
-
-### onCloseGUI
-
-Called when a gui is closed
-
-### onOpenGUIRequest
-
-Called when a gui is requested to be opened
-
-### getOpenFiles
-
-Get a list of open files
-
-### getHighlightedCode
-
-Get a list of highlighted code
-
-### readFile
-
-Read a file
-
-### readRangeInFile
-
-Read a range in a file
-
-### editFile
-
-Edit a file
-
-### applyFileSystemEdit
-
-Apply a file edit
-
-### saveFile
-
-Save a file
diff --git a/docs/docs/concepts/llm.md b/docs/docs/concepts/llm.md
deleted file mode 100644
index eacae6cd..00000000
--- a/docs/docs/concepts/llm.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# LLM
-
-**TODO: Better explain in one sentence what this is and what its purpose is**
-
-:::info
-An **LLM** is short for Large Language Model, which includes models like GPT-4, StarCoder, and others
-:::
-
-## Details
-
-Just a class with a "complete" method. Right now have HuggingFaceInferenceAPI and OpenAI subclasses. Need credentials as of now. Different models useful in different places, so we provide easy access to multiple of them, right now just gpt3.5 and starcoder, but can add others super easily.
-
-- `LLM` is the large language model that can be used in steps to automate that require some judgement based on context (e.g. generating code based on docs, explaining an error given a stack trace, etc)
-- Steps and recipes are implemented with specific models
-- Need to credentials for OpenAI models
-
-## Supported Models
-
-### `gpt-4`
-
-### `gpt-3.5-turbo`
-
-### `StarCoder`
diff --git a/docs/docs/concepts/policy.md b/docs/docs/concepts/policy.md
deleted file mode 100644
index e08458d8..00000000
--- a/docs/docs/concepts/policy.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Policy
-
-**TODO: Better explain in one sentence what this is and what its purpose is**
-
-:::info
-A **policy** is decides what step to run next and is associated with a [autopilot](./autopilot.md)
-:::
-
-## Details
-
-A relic of my original plan that ended up being the place to define slash commands, the command run on startup, and other weird stuff that you might want to inject after certain other steps. This may be the place where "hooks" turn out to be implemented. Much of this may be configurable through `.continue/config.py` config file (this is where steps that run on GUI opening are currently configured.). Simply takes the history and returns a single step to run next. Can return None if no step to take next. Then user input will kick it off again eventually. Autopilot has a single policy that it follows, so definitely a global/user-configurable type of thing.
-
-- The Policy is where slash commands are defined
-- The Policy is a global thing, so probably something we'll want to make user-configurable if we don't significantly change it
diff --git a/docs/docs/concepts/recipe.md b/docs/docs/concepts/recipe.md
deleted file mode 100644
index 5e03551b..00000000
--- a/docs/docs/concepts/recipe.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Recipe
-
-**TODO: Better explain in one sentence what this is and what its purpose is**
-
-:::info
-A **recipe** is an ordered sequence of [steps](./step.md) that are intended to accomplish some complete task, comprising a workflow that developers use and share with others.
-:::
-
-## Details
-
-When enough steps are strung together they become a recipe. Can kick off with slash command, can share/download somehow.
-
-- Although technically just a step itself, since they also subclass the Step class, recipes differentiate themselves from normal steps by ending their name with `Recipe` by
-- Technically, everything is a step since everything subclasses the step class. Steps can be composed together. Once steps are composed into a workflow that developers use and share with others, that step is called a recipe and, by convention, it ends with Recipe to signal this
-- Actually just a step that is composed of only other steps / recipes. \ No newline at end of file
diff --git a/docs/docs/concepts/sdk.md b/docs/docs/concepts/sdk.md
deleted file mode 100644
index 21190aa8..00000000
--- a/docs/docs/concepts/sdk.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# SDK
-
-**TODO: Better explain in one sentence what this is and what its purpose is**
-
-:::info
-The **Continue SDK** gives you all the tools you need to automate software development tasks in one convenient and standard location (e.g. open a directory, edit a file, call an LLM, etc), which you can use when defining how a step should work and composing them with other steps.
-:::
-
-## Details
-
-- The ContinueSDK has a `run_step` method, which allows Steps to be composable
-- The reason you want to run it with `run_step` instead of creating a Step and calling `step.run(...)` is so Continue can automatically keep track of the order of all steps run, and allow for reversibility, etc...
-- The ContinueSDK also contains functions for very common steps, like `edit_file`, `add_file`, `run` (to run shell commands), and a few others
-- `sdk.history` lets you access the history of past steps
-- `sdk.llm` lets you use the Autopilot's language model like `sdk.llm.complete`
-- `sdk.ide` lets you take any action within the connected IDE (this is where the IDE protocol is called)
-
-## Properties
-
-### `sdk.ide`
-
-`sdk.ide` is an instance of the class `AbstractIdeProtocolServer`, which contains all the methods you might need to interact with the IDE. This includes things like reading, editing, saving, and opening files as well as getting the workspace directory, displaying suggestions, and more. The goal is to have an IDE agnostic way of interacting with IDEs, so that Steps are portable across VS Code, Sublime, Code, or any other editor you use.
-
-### `sdk.models`
-
-`sdk.models` is an instance of the `Models` class, containing many of the most commonly used LLMs or other foundation models. You can access a model (starcoder for example) like `starcoder = sdk.models.starcoder`. Right now, all of the models are `LLM`s, meaning that they offer the `complete` method, used like `bubble_sort_code = await starcoder.complete("# Write a bubble sort function below, in Python:\n")`.
-
-### `sdk.history`
-
-`sdk.history` is the `History` object that contains all information about previously run steps`. See the documentation page to learn more.
-
-## Methods
-
-### `run_step`
-
-`run_step` is what allows Steps to be composable. While at the core, steps are run by calling `step.run(continue_sdk)`, using `sdk.run_step(step)` automatically fills in the `ContinueSDK` parameter, takes care of recording the step in history, and automatically updates the GUI.
-
-The below methods are all just shorthand for very common steps.
-
-### `apply_filesystem_edit`
-
-`apply_filesystem_edit` takes a FileSystemEdit (subclasses include Add/DeleteFile/Directory and EditFile) and runs the `FileSystemEditStep`.
-
-### `wait_for_user_input` and `wait_for_user_confirmation`
-
-`wait_for_user_input` and `wait_for_user_confirmation` both run steps that will open a cell prompting the user for some input, in the former case asking for a text input, and in the latter case just asking for confirmation through a button click. We are considering allowing for more complex forms in the future, potentially even dynamically generated by LLMs, so please reach out if this would be useful.
-
-### `run`
-
-`run` will run either a single command or a list of shell commands.
-
-### `edit_file`
-
-`edit_file` takes a filename and prompt, then will use the EditCodeStep to apply the edits requested in natural language in the prompt to the file. The EditCodeStep uses StarCoder to do this; if you have reason to customize this functionality, you can define a custom step and call that.
-
-### `add/delete_file/directory`
-
-`add/delete_file/directory` do just that.
-
-### `get_user_secret`
-
-`get_user_secret` will retrieve a secret from the local .env file or, if it doesn't exist, prompt the user to enter the secret before moving on.
diff --git a/docs/docs/concepts/server.md b/docs/docs/concepts/server.md
deleted file mode 100644
index e609fc6d..00000000
--- a/docs/docs/concepts/server.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Server
-
-**TODO: Better explain in one sentence what this is and what its purpose is**
-
-:::info
-The **Continue Server** holds the main event loop, responsible for connecting [IDE](./ide.md) (i.e. in VS Code, GitHub Codespaces, a web browser text editor, etc), [SDK](./sdk.md), and [GUI](./gui.md), and deciding which steps to take next.
-:::
-
-## Details
-
-The Continue server communicates with the IDE and GUI through websockets, acting as the communication bridge and main event loop. The `Autopilot` class is where most of this happens, accepting user input, calling on a policy to decide the next step, and injecting the `ContinueSDK` to run steps.
diff --git a/docs/docs/concepts/step.md b/docs/docs/concepts/step.md
deleted file mode 100644
index a58d3b19..00000000
--- a/docs/docs/concepts/step.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Step
-
-**TODO: Better explain in one sentence what this is and what its purpose is**
-
-:::info
-A **step** is a simple action that the LLM should take as part of a sequence that collectively completes some task
-:::
-
-## Details
-
-- A `Step` is a Pydantic class inheriting from `Step`
-- Steps implement the `run` method, which takes a ContinueSDK as its only parameter
-- The ContinueSDK gives all the utilities you need to easily write recipes (Steps)
-- It also implements the `describe` method, which just computes a textual description of what happened when the `run` method was called
-- Can save attributes in `run` if you want, or just have a default `describe`, or not even implement it, in which case the name of the class is used
-- Any parameters to a Step are defined as attributes to the class without a double leading underscore (those with this are private).
-- Steps can be composed together
-
-## Step methods
-
-### `run` (required)
-
-the code that should run when executed by the policy
-
-### `description` (optional)
-
-the definition of what the step does in natural language
-
-### `reverse` (optional)
-
-the code that should run when the step is reversed
-
-### `modify` (optional)
-
-the code that should run when the step is rerun with feedback \ No newline at end of file
diff --git a/docs/docs/customization/context-providers.md b/docs/docs/customization/context-providers.md
index e9f5e9cf..77631006 100644
--- a/docs/docs/customization/context-providers.md
+++ b/docs/docs/customization/context-providers.md
@@ -1,3 +1,9 @@
+---
+title: Context Providers
+description: Type '@' to select content to the LLM as context
+keywords: [context, "@", provider, LLM]
+---
+
# Context Providers
Context Providers allow you to type '@' and see a dropdown of content that can all be fed to the LLM as context. Every context provider is a plugin, which means if you want to reference some source of information that you don't see here, you can request (or build!) a new context provider.
diff --git a/docs/docs/customization/models.md b/docs/docs/customization/models.md
index 5bb8a860..69365beb 100644
--- a/docs/docs/customization/models.md
+++ b/docs/docs/customization/models.md
@@ -1,3 +1,9 @@
+---
+title: Models
+description: Swap out different LLM providers
+keywords: [openai, anthropic, PaLM, ollama, ggml]
+---
+
# Models
Continue makes it easy to swap out different LLM providers. You can either click the "+" button next to the model dropdown to configure in the UI or manually add them to your `config.py`. Once you've done this, you will be able to switch between them with the model selection dropdown.
diff --git a/docs/docs/customization/other-configuration.md b/docs/docs/customization/other-configuration.md
index 8049e8d6..5cb531ad 100644
--- a/docs/docs/customization/other-configuration.md
+++ b/docs/docs/customization/other-configuration.md
@@ -1,3 +1,9 @@
+---
+title: Other Configuration
+description: Swap out different LLM providers
+keywords: [tempature, custom policies, custom system messsage]
+---
+
# Other Configuration
See the [ContinueConfig Reference](../reference/config) for the full list of configuration options.
diff --git a/docs/docs/customization/overview.md b/docs/docs/customization/overview.md
index 0d433cd6..25486113 100644
--- a/docs/docs/customization/overview.md
+++ b/docs/docs/customization/overview.md
@@ -1,3 +1,9 @@
+---
+title: Overview
+description: Continue can be deeply customized
+keywords: [custom, slash commands, models, context providers]
+---
+
# Overview
Continue can be deeply customized by editing the `ContinueConfig` object in `~/.continue/config.py` (`%userprofile%\.continue\config.py` for Windows) on your machine. This file is created the first time you run Continue.
diff --git a/docs/docs/customization/slash-commands.md b/docs/docs/customization/slash-commands.md
index 17f07075..d40f44b5 100644
--- a/docs/docs/customization/slash-commands.md
+++ b/docs/docs/customization/slash-commands.md
@@ -1,3 +1,10 @@
+---
+title: Slash Commands
+description: Shortcuts that can be activated by prefacing your input with '/'
+keywords: [slash command, custom commands, step]
+---
+
+
# Slash Commands
Slash commands are shortcuts that can be activated by prefacing your input with '/'. For example, the built-in '/edit' slash command let you stream edits directly into your editor.
diff --git a/docs/docs/development-data.md b/docs/docs/development-data.md
index 267a746e..ea7b2424 100644
--- a/docs/docs/development-data.md
+++ b/docs/docs/development-data.md
@@ -1,3 +1,9 @@
+---
+title: Development data
+description: Collecting data on how you build software
+keywords: [development data, dev data, LLM-aided development]
+---
+
# 🧑‍💻 Development Data
When you use Continue, you automatically collect data on how you build software. By default, this development data is saved to `.continue/dev_data` on your local machine. When combined with the code that you ultimately commit, it can be used to improve the LLM that you or your team use (if you allow).
diff --git a/docs/docs/how-continue-works.md b/docs/docs/how-continue-works.md
index 2d52ea67..f33a5622 100644
--- a/docs/docs/how-continue-works.md
+++ b/docs/docs/how-continue-works.md
@@ -1,3 +1,10 @@
+---
+title: How Continue works
+description: Overview of the Continue archictecture
+keywords: [architecture, vs code, jetbrains, ide, manually]
+---
+
+
# ⚙️ How Continue works
![Continue Architecture Diagram](/img/continue-diagram.png)
diff --git a/docs/docs/how-to-use-continue.md b/docs/docs/how-to-use-continue.md
index 21b12395..0d2a9037 100644
--- a/docs/docs/how-to-use-continue.md
+++ b/docs/docs/how-to-use-continue.md
@@ -1,3 +1,9 @@
+---
+title: How to use Continue
+description: Using LLMs as you code with Continue
+keywords: [how to, edit, refactor, boilerplate, context]
+---
+
# 🧑‍🎓 How to use Continue
:::info
diff --git a/docs/docs/intro.md b/docs/docs/intro.md
index a35cf944..8b45b5e5 100644
--- a/docs/docs/intro.md
+++ b/docs/docs/intro.md
@@ -1,3 +1,9 @@
+---
+title: Introduction
+description: Continue is the open-source autopilot for software development
+keywords: [introduction, intro, continue, autopilot, chatgpt]
+---
+
# Introduction
![continue-cover-logo](/img/continue-cover-logo.png)
diff --git a/docs/docs/quickstart.md b/docs/docs/quickstart.md
index 77037b3d..cfcb4eb3 100644
--- a/docs/docs/quickstart.md
+++ b/docs/docs/quickstart.md
@@ -1,3 +1,9 @@
+---
+title: Quickstart
+description: Getting started with Continue
+keywords: [quickstart, start, install, vscode, jetbrains]
+---
+
# ⚡️ Quickstart
1. Click `Install` on the **[Continue extension in the Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Continue.continue)**
diff --git a/docs/docs/telemetry.md b/docs/docs/telemetry.md
index 2202aa92..c383b41f 100644
--- a/docs/docs/telemetry.md
+++ b/docs/docs/telemetry.md
@@ -1,3 +1,10 @@
+---
+title: Telemetry
+description: Continue collects anonymous usage information
+keywords: [telemetry, anonymous, usage info, opt out]
+---
+
+
# 🦔 Telemetry
## Overview
diff --git a/docs/docs/troubleshooting.md b/docs/docs/troubleshooting.md
index 18cc2204..580b6f44 100644
--- a/docs/docs/troubleshooting.md
+++ b/docs/docs/troubleshooting.md
@@ -1,3 +1,9 @@
+---
+title: Troubleshooting
+description: Troubleshooting while waiting for help during beta / alpha testing
+keywords: [reload, delete, manually, logs, server, console]
+---
+
# ❓ Troubleshooting
The Continue VS Code extension is currently in beta. It will attempt to start the Continue Python server locally for you, but sometimes this will fail, causing the "Starting Continue server..." not to disappear, or other hangups. While we are working on fixes to all of these problems, there are a few things you can do to temporarily troubleshoot:
diff --git a/docs/docs/walkthroughs/codebase-embeddings.md b/docs/docs/walkthroughs/codebase-embeddings.md
index 49d82ff5..4e9c28fb 100644
--- a/docs/docs/walkthroughs/codebase-embeddings.md
+++ b/docs/docs/walkthroughs/codebase-embeddings.md
@@ -1,3 +1,9 @@
+---
+title: Codebase Embeddings (Experimental)
+description: Talk to your codebase
+keywords: [talk, embeddings, codebase, experimental]
+---
+
# Codebase Embeddings (Experimental)
We're sharing an early look at an experimental plugin: codebase embeddings. By using the /codebase slash command, you will be able to ask a question and Continue will use similarity search to find the most relevant files to answer the question.
diff --git a/docs/docs/walkthroughs/codellama.md b/docs/docs/walkthroughs/codellama.md
index 298d996e..c45bdcc3 100644
--- a/docs/docs/walkthroughs/codellama.md
+++ b/docs/docs/walkthroughs/codellama.md
@@ -1,3 +1,9 @@
+---
+title: Using Code Llama with Continue
+description: How to use Code Llama with Continue
+keywords: [code llama, meta, togetherai, ollama, replciate, fastchat]
+---
+
# Using Code Llama with Continue
With Continue, you can use Code Llama as a drop-in replacement for GPT-4, either by running locally with Ollama or GGML or through Replicate.
diff --git a/docs/docs/walkthroughs/create-a-recipe.md b/docs/docs/walkthroughs/create-a-recipe.md
deleted file mode 100644
index 0d92fb92..00000000
--- a/docs/docs/walkthroughs/create-a-recipe.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# Create a recipe
-
-Check out the [recipes folder](https://github.com/continuedev/continue/tree/main/continuedev/src/continuedev/recipes) to learn how to write your own.
-
-**TODO: Describe step-by-step how to create a recipe**
-
-Points to include
-
-- Where to create recipes
-- How to create a step
-- How to create recipe
-- Using models
-
-1. Create a recipe here
-
-continue/continuedev/src/continuedev/recipes
-
-## 1. Create a step
-
-### a. Start by creating a subclass of Step
-
-You should first consider what will be the parameters of your recipe. These are defined as attributes in the step, as with `input_file_path: str` below
-
-### b. Next, write the `run` method
-
-This method takes the ContinueSDK as a parameter, giving you all the tools you need to write your recipe/steps (if it's missing something, let us know, we'll add it!). You can write any code inside the run method; this is what will happen when your recipe is run, line for line. As you're writing the run method, you want to consider how to break it up into sub-steps; each step will be displayed as a cell in the GUI, so this makes a difference to the end user. To break something off into a sub-step, simply make a new subclass of Step just like this one, with parameters and a run method, and call it inside of the parent step using `await sdk.run_step(MySubStep(<parameters>))`. To understand all of the other things you can do inside of a step with the `ContinueSDK`, see its documentation page.
-
-### c. Finally, every Step is displayed with a description of what it has done
-
-If you'd like to override the default description of your steps, which is just the class name, then implement the `describe` method. You can:
-
-- Return a static string
-- Store state in a class attribute (prepend with a double underscore, which signifies (through Pydantic) that this is not a parameter for the Step, just internal state) during the run method, and then grab this in the describe method.
-- Use state in conjunction with the `models` parameter of the describe method to autogenerate a description with a language model. For example, if you'd used an attribute called `__code_written` to store a string representing some code that was written, you could implement describe as `return models.summarize.complete(f"{self.\_\_code_written}\n\nSummarize the changes made in the above code.")`.
-
-## 2. Compose steps together into a complete recipe
-
-Creating a recipe is the same as creating a step, except that you may choose to break it up into intermediate steps
-
-By convention, the name of every recipe ends with `Recipe`.
-
-```python
-class CreatePipelineRecipe(Step):
-
- async def run(self, sdk: ContinueSDK):
- await sdk.run_step(
- WaitForUserInputStep(prompt="What API do you want to load data from?") >>
- SetupPipelineStep() >>
- ValidatePipelineStep()
- )
-```
-
-## Additional considerations
-
-### Using the SDK
-
-You will want to use the SDK when you are opening directories, editing files, using models, etc. This will ensure that these actions are recorded as steps, so they are reviewable, reversible, and rerunnable.
-
-### Allow for configurability
-
-Steps can include optional parameters that allow users to configure them
-
-```python
-from continuedev import ContinueSDK
-
-class CreatePytestsStep(Step):
-
- input_file_path: str
- output_file_prefix: str
- output_dir_path: str
-
- async def run(self, sdk: ContinueSDK):
-
- code = await sdk.ide.readFile(self.input_file_path)
- sdk.run_step(CreateDirStep(output_dir_path))
- sdk.run_step(WritePytestsRecipe(code, output_file_prefix, output_dir_path))
-```
-
-### Adjust for different OS
-
-You might want to implement your steps, so that they can run on Linux, MacOS, and Windows.
-
-```python
-from continuedev import ContinueSDK
-import platform
-
-class SetUpVenvStep(Step):
-
- async def run(self, sdk: ContinueSDK):
-
- os = platform.system()
-
- if os == "Windows":
- await sdk.run("python -m venv env; .\\env\\Scripts\\activate")
- else:
- await sdk.run("python3 -m venv .env && source .env/bin/activate") # MacOS and Linux
-```
diff --git a/docs/docs/walkthroughs/headless-mode.md b/docs/docs/walkthroughs/headless-mode.md
index 913bff78..4bc1b95d 100644
--- a/docs/docs/walkthroughs/headless-mode.md
+++ b/docs/docs/walkthroughs/headless-mode.md
@@ -1,3 +1,9 @@
+---
+title: Headless Mode
+description: Running Continue in the background
+keywords: [headless, async, background, ci/cd]
+---
+
# Headless Mode
"Headless mode" allows Continue to run in the background, without needing to be connected to the IDE or GUI. This is useful for performing refactors or other long-running tasks asynchronously. Headless mode can also be run in CI/CD for example to perform a thorough review for errors.
diff --git a/docs/docs/walkthroughs/manually-run-continue.md b/docs/docs/walkthroughs/manually-run-continue.md
index 1a24fcf7..20a52da4 100644
--- a/docs/docs/walkthroughs/manually-run-continue.md
+++ b/docs/docs/walkthroughs/manually-run-continue.md
@@ -1,3 +1,9 @@
+---
+title: Manually Run Continue
+description: How to run Continue manually
+keywords: [manual, firewall, vpn, air-gapped, self-host]
+---
+
# Manually Run Continue
You might want to run Continue manually if
diff --git a/docs/docs/walkthroughs/running-continue-without-internet.md b/docs/docs/walkthroughs/running-continue-without-internet.md
index f9d9799d..1ae7b7a4 100644
--- a/docs/docs/walkthroughs/running-continue-without-internet.md
+++ b/docs/docs/walkthroughs/running-continue-without-internet.md
@@ -1,3 +1,10 @@
+---
+title: Running Continue without Internet
+description: How to run Continue without Internet
+keywords: [no internet, air-gapped, local model]
+---
+
+
# Running Continue without Internet
Continue can be run even on an air-gapped computer if you use a local model. You'll have to make a few adjustments for this to work.
diff --git a/docs/docs/walkthroughs/share-a-recipe.md b/docs/docs/walkthroughs/share-a-recipe.md
deleted file mode 100644
index 44e7e367..00000000
--- a/docs/docs/walkthroughs/share-a-recipe.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Share a recipe
-
-**TODO: Describe step-by-step how to share a recipe**
-
-## 1. Verify checklist
-
-- [] Make sure you added them in right spot. All of the recipes are located in this part of the codebase here
-- [] Make sure to add a README
-- [] Make sure you have a main recipe file
-
-## 2. Push to codebase (fork codebase first?)
-
-## 3. Ask for review
-
-Ask for review from @tydunn or @natesesti
-
-## 4. Address review feedback
-
-Push your changes
-
-## 5. We approve \ No newline at end of file
diff --git a/docs/docs/walkthroughs/use-a-recipe.md b/docs/docs/walkthroughs/use-a-recipe.md
deleted file mode 100644
index dbe8901b..00000000
--- a/docs/docs/walkthroughs/use-a-recipe.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# Use a recipe
-
-## Select a recipe that you want to use
-
-You can learn more about the recipes that exist and how they work in the [Catalog](../catalog.md)
-
-All of the recipes are located in this part of the codebase here
-
-## Open the file you want the LLM to edit
-
-At the moment, we only support editing the file open and focused in the code editor, so you need to make sure that is
-
-user input step
-demopolicy decides what to do
-default step, starcoder to edit the current open file
-
-## Use its slash command to start the recipe
-
-Every recipe can be triggered by the user using its slash command. For example, `/comment` will trigger.
-
-add to the if / else with `/` commands
-
-## Review the steps and take any required manual actions
-
-Make sure that the recipe works as expected
-follow any instructions
-
-## Reverse if something goes wrong
-
-Click this button
-
-## Rerun
-
-add feedback to modify how it runs
-LLMs are non-determistic, so rerunning again might
-
-## Customizing the recipe
-
-If the recipe does not work exactly like you want, you can adjust it. Find the code for recipe here and then learn how to [create a recipe](./create-a-recipe.md) understand what you need to do to get it work like you want
-
-## Creating your own recipe
-
-Learn how to [create a recipe](./create-a-recipe.md) \ No newline at end of file
diff --git a/docs/docs/walkthroughs/use-the-gui.md b/docs/docs/walkthroughs/use-the-gui.md
deleted file mode 100644
index 33bc3b62..00000000
--- a/docs/docs/walkthroughs/use-the-gui.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# Use the GUI
-
-## How to edit a file using LLMs
-
-1. Open the file you want to edit
-
-2. Give instructions in natural language for how you want the file to be edited
-
-3. Press the `Continue` button
-
-4. Review the explanation of what was edited and why on the Continue GUI
-
-5. Check the code that was edited by the LLM in the code editor
-
-:::note
-At the moment, we only supporting the file that is opened and focused on in the code editor
-:::
-
-:::note
-Context is not carried across steps at the moment, so you will need to repeat any information from previous steps if you want the LLM in the current step to be aware of it
-:::
-
-## Review actions taken
-
-Whether you are using a recipe or not, you will want to review the explanations of what the LLM did and check the code that it generated. You are ultimately responsible for any code that you ship, even if it was written by a LLM.
-
-## Reverse button
-
-undo things done by steps
-
-## Rerun steps and recipes
-
-continue button (with optional modify)
-
-## How to use recipes
-
-You can learn how to use recipes [here](./use-a-recipe.md) \ No newline at end of file
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js
index b28a0ade..ce9336f9 100644
--- a/docs/docusaurus.config.js
+++ b/docs/docusaurus.config.js
@@ -56,6 +56,7 @@ const config = {
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
+ metadata: [{name: 'keywords', content: 'open source, ai, vscode, intellij, jetbrains, developer tools, chatgpt, copilot, llm'}],
// Replace with your project's social card
image: "img/continue-social-card.png",
navbar: {