Quickstart
Install Anthracode, connect a model, and run your first session in the terminal.
Anthracode is an AI coding agent for the terminal with persistent memory, specialized subagents, crash-isolated PTY tools, and Windows-native support.
Let’s get started.
To use Anthracode in your terminal, you’ll need:
-
A modern terminal emulator like:
-
API keys for the LLM providers you want to use.
Install Anthracode with npm, bun, pnpm, or yarn:
npm install -g anthracode-aibun install -g anthracode-aipnpm install -g anthracode-aiyarn global add anthracode-aiYou can also grab the binary directly from GitHub Releases.
With Anthracode you can use any LLM provider by configuring their API keys.
-
Run the
/connectcommand in the TUI and select the provider you want to use./connect -
Paste the API key from your provider.
Anthracode does not require an Anthracode cloud account. Bring your own provider key. Learn more.
Now that you’ve configured a provider, you can navigate to a project that you want to work on.
cd /path/to/projectAnd run Anthracode.
anthracodeNext, initialize Anthracode for the project by running the following command.
/initThis will get Anthracode to analyze your project and create an AGENTS.md file in
the project root.
This helps Anthracode understand the project structure and the coding patterns used.
You are now ready to use Anthracode to work on your project. Feel free to ask it anything!
If you are new to using an AI coding agent, here are some examples that might help.
You can ask Anthracode to explain the codebase to you.
How is authentication handled in @packages/functions/src/api/index.tsThis is helpful if there’s a part of the codebase that you didn’t work on.
You can ask Anthracode to add new features to your project. Though we first recommend asking it to create a plan.
-
Create a plan
Anthracode has a Plan mode that disables its ability to make changes and instead suggest how it’ll implement the feature.
Switch to it using the Tab key. You’ll see an indicator for this in the lower right corner.
<TAB>Now let’s describe what we want it to do.
When a user deletes a note, we'd like to flag it as deleted in the database.Then create a screen that shows all the recently deleted notes.From this screen, the user can undelete a note or permanently delete it.You want to give Anthracode enough details to understand what you want. It helps to talk to it like you are talking to a junior developer on your team.
-
Iterate on the plan
Once it gives you a plan, you can give it feedback or add more details.
We'd like to design this new screen using a design I've used before.[Image #1] Take a look at this image and use it as a reference.Anthracode can scan any images you give it and add them to the prompt. You can do this by dragging and dropping an image into the terminal.
-
Build the feature
Once you feel comfortable with the plan, switch back to Build mode by hitting the Tab key again.
<TAB>And asking it to make the changes.
Sounds good! Go ahead and make the changes.
For more straightforward changes, you can ask Anthracode to directly build it without having to review the plan first.
We need to add authentication to the /settings route. Take a look at how this ishandled in the /notes route in @packages/functions/src/notes.ts and implementthe same logic in @packages/functions/src/settings.tsYou want to make sure you provide a good amount of detail so Anthracode makes the right changes.
Let’s say you ask Anthracode to make some changes.
Can you refactor the function in @packages/functions/src/api/index.ts?But you realize that it is not what you wanted. You can undo the changes
using the /undo command.
/undoAnthracode will now revert the changes you made and show your original message again.
Can you refactor the function in @packages/functions/src/api/index.ts?From here you can tweak the prompt and ask Anthracode to try again.
Or you can redo the changes using the /redo command.
/redoAnd that’s it! You are now a pro at using Anthracode.
To make it your own, we recommend picking a theme, customizing the keybinds, configuring code formatters, creating custom commands, or playing around with the config.