Free AI coding guide
Free web search for your coding agent: no API key, no setup
free-pi can now search the web for you, and it costs nothing extra. CLI 0.4.6 adds a built-in websearch tool.
free-pi can now search the web for you, and it costs nothing extra. CLI 0.4.6 adds a built-in web_search tool. When your question needs information newer than the model's training data, the agent searches, reads the pages it finds, and answers from them. You do not need an API key or an account with a search provider. We build free-pi, so read this with that in mind.
A language model only knows what was in its training data. Software changes after that point: new releases, renamed options, new bugs. A coding agent that cannot look anything up has to answer from memory, and its memory is out of date the day the model ships.
How it is free
free-pi is a free coding agent paid for by ads shown in the terminal. Everything you use, including model calls, comes out of a free daily allowance that those ads pay for.
web_search runs on free-pi's servers. There is no search API key to create and no search account to set up. Each search uses a small part of your daily allowance, and the agent is told to search purposefully rather than for every question.
Many coding agents need you to create a search API key or configure an MCP server (a plug-in server that adds tools to an agent) before they can search at all. Here there is nothing to configure.
What it returns
A search result contains the title, the URL, the publish date and the text of the page. The agent can read the answer itself instead of only getting a list of links. Dates matter because they let the agent tell a current page from a three-year-old one.
You do not call the tool yourself. The agent decides when to use it. Good uses are:
- release notes and current version numbers
- error messages the model does not recognize
- service status
- pages you mention in your question
An example from our test
We asked this in a live session:
> What is the latest stable Bun release right now, and in Next.js how do I
> configure the middleware matcher so middleware only runs on /api routes?
> Keep it short.
web_search "latest stable Bun release version"
-> GitHub releases page: Bun v1.4.3 (Oct 10, 2026)
web_search "Next.js middleware matcher config only /api routes"
-> Next.js docs: Middleware, Matching Paths
Latest stable Bun: v1.4.3 (Oct 10, 2026).
Middleware matcher for /api routes only:
export const config = { matcher: ['/api/:path*'] }
Note: the current Next.js docs are renaming the middleware file
convention to `proxy`.
The transcript is trimmed, and the agent also cited the URLs it used. The last point is the useful one. A model answering only from memory may not know about the rename if it happened after its training data was collected.
How it makes your coding better
The agent checks facts before it writes code that depends on them. It can confirm the current version of a tool, read the release notes for a change that might affect you, and look up an error instead of guessing. You get an answer based on what is published today, with sources you can open and check.
It also keeps you in the terminal. You ask the question where you are already working.
What goes wrong without it
An agent that cannot search fails in familiar ways:
- It uses an option that was renamed or removed. The model is confident, the code looks right, and the build fails because the option changed after its training cutoff.
- It suggests an outdated install command or version. You copy the command, and it installs an old release or a package that has been replaced.
- It guesses at an error message. The real explanation is often a GitHub issue with a fix, but the model has not seen it, so it offers plausible-sounding causes instead.
- You become the search engine. You switch to a browser, find the page, copy the text and paste it into the chat, then repeat for the next question.
Each of these comes from the same cause: the model's knowledge stops at its training data. Search does not make the model smarter. It lets the model check what it remembers against what is published now.
Search can also return a wrong or low-quality page, so the agent can still be wrong. That is why free-pi shows the sources.
Try it
You need free-pi CLI 0.4.6 or newer.
npx free-pi-cli
Sign in with GitHub, then ask a question about something recent, such as "What changed in the latest release of the framework I'm using?" The agent will decide whether to search.