Getting started with AI code development tools

Getting started with AI code development tools

(written by a person, not an AI)

Are you doing AI-assisted development by copying and pasting code and error messages between your browser logged in to chatgpt and your editor? Or maybe you want to try AI-assisted development for the first time. This page will let you know what is available and how they work.

These tools aren’t just for python and web development. They work just fine with C++ and Fortran including large legacy Fortran/C++ codes like E3SM. You point the tool to a local clone of your repo and it can start adding and editing code directly in that repo (on a branch, of course).

There are many choices in what to use and you may want to do some exploring to find what is right for you. This is a brief guide providing a high-level overview of what is out there and how they work. For more info, there are tons of youtube videos about all of this. If you’re in a hurry, skip to Getting Started.

How AI dev tools work

When looking at the large array of applications available, there are 2 main categories that separate them:

  • Interface: Is it an Integrated Development Environment (IDE) that has a Graphical User Interface with a window you type in (like VScode), does it work within a terminal (via a keyboard-controlled Terminal User Interface (TUI)) or is it just commands on the command line?

  • Model choice: Is the AI model (Claude, ChatGPT, Gemini, etc.) choice limited by the tool or can you control it by either providing a key from another service (BYOK) or providing a URL (and key) to a model provider.

No matter how they are constructed, there are 2 main pieces to an AI software development application that will determine the behavior, usefulness and “feel”.

The LLM

The heart of all of these is a Large Language Model (LLM) like GPT or Claude. The real work is done by the tool sending input text (your instructions, code examples, error messages) converted to tokens to an LLM and getting tokens back which are then converted to text (code, documentation, explanations). Example of LLMs: claude-4.5-sonnet, gpt-5.2, gemini-2.5-pro, llama3.1-8b, SWE-1.5, Kimi K2.5

The application layer

What really makes these tools better then directly interacting with an LLM in a browser and what distinguishes them from one another is the “application layer” (also called the “harness” when its controlling agents). There are different ways to control what context is added (the system prompt) to your input, how they work with the editor, what tools (like file searching) are built in, how to add more models and model options, etc. Those decisions combined with the choice of GUI or TUI result in the huge number of tools available. Examples: Claude Code, Windsurf, Cursor, Copilot, Codex, Cline, Kiro, KiloCode, Roo, Antigravity, Zed, Warp, Goose, Continue. Just remember that there are still a small number of LLMs underneath it all.

From LLM to Agent

When you type in the chat window something like “what does this subroutine do?” you may notice that the LLM starts to read other files or text around the subroutine to get more context using unix tools like “grep” or “cat”. This is an example of the LLM acting as part of an Agent. “Agent” has lots of definitions but the most common is when an LLM is used in a loop with tool calling to accomplish a task. All AI dev tools are now agentic in that the application layer will often direct the LLM to start calling tools in response to your prompt.

Accessing the LLM

The tools are all free but access to the LLM is controlled and usually not free. Some tools are tied to specific LLMs or set of LLMs and you access them by creating an account with the tool developer and signing up for a plan with a credit card.

Clinemenu.png
Typical menu (from Cline) to choose LLM provider.

Some of these tools offer free plans with limited usage that renews every month (along with the paid plans). Look for for tools with free plans below. The free plans are typically only available for older or programming-specific LLMs. Sometimes a new LLM will be offered via the application with free unlimited use for a few weeks while it is being beta tested. You need to register an account to use the free tools but the account is also typically free (and can be done by authenticating with github).

When the tool communicates with the LLM, it uses an API. When model choices are available, there will be a menu of LLM suppliers to pick from (see figure), each with their own API. There is no official standard API but the “Chat Completions” format from OpenAI’s API has become a de facto standard. These LLM options will be listed as “OpenAI compatible” in the application.

BYOK-only: Bring your own key - key only

If you like Claude LLMs (Sonnet, Opus) from Anthropic but don’t like the Claude Code interface layer, you can purchase a monthly plan from Anthropic and get a key to the API for Claude. You can then enter that key in tools that support it and use Claude models with a different interface layer. You can also get keys from OpenAI and Google to use their LLMs this way. (Google will give you a key for free with free limited usage).

BYOK is sometimes limited to the big providers like OpenAI, Anthropic and Google. Some services offer a key that gives you access to several models. (Your institution may already have a contract with an LLM provider.)

RooMenu.png
Entering a URL and key for an OpenAI Compatible LLM

BYOK with URL: Bring your own key - and a URL

Some companies will allow access to many LLMs through a standard API from their own servers (for example https://www.asksage.ai/ ) . To use these, the AI development tool has to allow you to enter a key AND a URL to the service. You also need to enter a string for which model to use. Sometimes you set the URL through an environment variable or configuration file.

Github CoPilot is different

Github makes many models available to users of the Copilot application layer but the only way another application may use them is to provide a way to authenticate and communicate with Github internally. There is no key or URL provided by Github to its copilot models.

Enough background, what all is out there?

IDE-based tools

AI-supported development appeared in IDE’s first because they are so widely used by modern developers and had a way to create extensions. IDE’s with AI started with offering code completion where the LLM predicts what you might be writing as you type in the edit panel and you can hit tab to complete it (sometimes predicting entire functions). This rapidly evolved to offering a chat interface to the LLM in another panel where you ask it to make modifications to the code.

VSCode and AI extensions

Early AI coding assistants were available through extensions in VScode which is open source and has a well developed extension library. VScode is now integrated with Github Copilot by default (Free plan with copilot in VScode) but you can still use other extensions.

https://code.visualstudio.com/ (good support for Mac, Windows and Linux) https://code.visualstudio.com/download)

Screenshot of VScode logged on to perlmutter and editing E3SM.
VScode logged on to perlmutter.nersc.gov. Displaying content of clone of E3SM repo. Copilot is running in the panel on the right.

VScode AI extensions

These extensions to VScode let you BYOK with a URL. When you click on the extension, a window in the IDE with a chat box for that extension and its LLM(s) opens up. Here are some:

  • Continue One of the first VScode AI extensions. Must provide LLM from a provider.

  • Cline One of the first to introduce a “Plan” mode when interacting with an AI. Makes a rotating selection of free LLMs available (currently Minimax-m2.5, Kat-coder-pro) in addition to what you can bring.

  • Roo a fork of cline that recently halted development and will be folded back in to Cline.

  • Kilo a fork of Roo. Free models available

VScode clones

Since VScode is open source some groups incorporated AI by building the interface directly in to VScode instead of through an extension. Most of these only have Mac versions. Some notable ones:

IDE alternatives to VScode

  • Zed From the team that made Atom. Not a huge departure from VSCode in terms of look-and-feel but much less bloat. Has a built-in free plan but only for edit predictions. Mac, Windows and Linux support.

  • Jetbrains A family of language-specific IDEs. PyCharm is for python while CLion is for C/C++. No Fortran support. Free for open-source development. Many of the VSCode AI extensions have versions for Jetbrains.

Remote development with IDE’s

All of the above have to be installed on your laptop or desktop. But they have built-in support for ssh so you can log in, through the application, to a remote machine. The app installs a small server on the remote so that you can edit, display files and build on the remote machine while issuing commands and mouse clicks from the app running on your laptop. They will read your .ssh/config file and know how to prompt for One Time Passwords. In general, if you can ssh from your laptop to a remote machine using a terminal, the IDE will be able to do it as well.

Terminal-based tools

If you’ve been developing scientific application on HPC platforms, you’ve probably done it using a terminal and would like to keep doing that. Fortunately, there are now many AI development tools that work directly in the terminal without a GUI.

These tend to have a Terminal User Interface that takes over the terminal but is still controllable entirely with the keyboard.

ClaudeEx.png
Terminal (iTerm2 on Mac) running claude in a clone of the E3SM repo. Using the “/model” command to pick an LLM to use.

 

These are not code editors. Its just an interface to issue prompts to the LLM (and more.) To edit code yourself, you would open another terminal and start your favorite editor. Like the IDE’s, some of them are tied to a set of models and others let you configure everything.

All of them can be installed without super user privileges on the machine where you’re doing development, either through a simple shell script and curl or by using a python (or conda) virtual environment. Here are a few:

  • Claude Code From Anthropic. Viewed as the best AI coding assistant (YMMV). Expects a key to Claude models from Anthropic but can be directed to other providers. No built-in free plan.

  • Gemini-CLI Google's TUI. Get a free key if you have a google account and has a free plan. Limited to Gemini LLMs.

  • Copilot-CLI. The TUI version of Copilot. Can be used with the Copilot free plan.

  • Codex-CLI. OpenAI’s answer to Claude Code.

  • Cline-CLI. Many of the successful VScode extensions took their application layer and made it available in a TUI. Same free plans available as in the VScode extension.

  • Opencode. “The open source AI coding agent”. Fee models available

  • warp Is its own terminal program so must install on your laptop. Unique in that it interprets what you type as either a unix command or AI prompt. Has a free plan.

Headless mode

If a TUI feels too confining, you can install some of the above tools and invoke them at the command line in “headless mode”. Its just like issuing any other unix command and makes these tools scriptable. Examples:

> opencode run "Explain how closures work in JavaScript"

> claude -p "Find and fix the bug in auth.py" --allowedTools "Read,Edit,Bash"

GUI-based coding agent tools

What if you want to just direct agents to make code changes like in the TUI’s mentioned above but you don’t want to use a terminal? That is what agentic coding tools with a GUI do. They are applications like IDEs but they don’t have a code editor or debugger built in. They just provide a chat box to direct agents and git functionality to see code diffs and make commits.

Codex The OpenAI agentic coding tool. Mac only. Free plan available for limited time

Claude Anthropic’s way to provide Claude Code in a desktop app. Mac and Windows

Cursor Has an “Agent Mode” that alters the GUI to encourage this way of working (still have the editor and debugger available). Can use same free models.

Cloud-based coding agents

As coding agents have become more capable, they can be asked to make complex changes that take a while to finish. If you’re using a laptop and close the lid, the agents will be stopped. To support long-running coding agents, many of the AI tool developers have introduced cloud versions of their capabilities. To do development this way, you usually authenticate the cloud service with github so it can pull your code in to a virtual machine (in the cloud) where your prompts are executed. When finished, it makes a PR to github with the results. These never have a free option since the cloud resources are provisioned by the tool developer.

RooCloud.png
Chat interface for app.roocode.com hooked up to E3SM on Github.

Copilot - This is how copilot was offered originally. On Github, you can assign copilot an issue and it will go off and develop a PR with a (possible) solution.

Codex - OpenAI’s tool in the cloud

Claude - Anthropic’s Claude Code in the cloud. Currently in research preview.

Roo Code Cloud - The VScode Roo extension in the cloud

Kilo Cloud - The VScode Kilo extension in the cloud

Oz - Warp’s capabilities brought to the cloud

Actually Getting Started

That’s a lot of info so how should you get started?

  1. Install one of the tools with a good free plan or free models on your laptop. For IDE’s that would be Windsurf, Cursor (free plans) or VSCode with Cline (free models). For a TUI, use Opencode which has free models available.

  2. Point the tool to a local clone of your code on your laptop and use the chat interface to ask questions about the code. You could ask it to make changes too but probably can’t test them on your laptop.

  3. When you’re ready, try using the tools on your remote development platform. For the GUI’s, you would use its built-in SSH features to connect to a remote. For TUI’s, install it directly on the remote machine.

  4. As you ask the tools to make changes to your code, in another window, you can build and test those changes (For E3SM, there is an AGENTS.md file so you can say some thing like “Build an I-case to test these changes” and, if you’re on a supported machine, it will do it!).