Kilo Code: Getting my Hands dirty
When it comes to AI, the best way to learn is by getting one’s hands dirty. In this blog post, I will show how I used a small project to get to grips with Kilo Code
But first, what is Kilo Code?
It is an AI agent that you either install as an extension in Visual Studio Code or use as a CLI in your preferred terminal. You can also run it in the Kilo Cloud or as a JetBrains extension.
I installed it as a CLI using Homebrew
brew install Kilo-Org/tap/kilo
Then go to Kilo Code and register for an account, it is free. Then visit your Dashboard and look around and do some settings.
Open a terminal and login to your account with the following:
kilo auth login
then start your Kilo CLI session using:
kilo
You issue commands using Slash [/] and the first command to issue is to select your model:
/models
It will show you a list of available models, some paid and some free. I suggest you start with Auto Free Kilo Gateway.
What is the project or Use Case?
I have a bash script that I use to get the response from calling 5 APIs and pipe the JSON to a text file. On some of the responses from the API call, I use jq to only retrieve some of the values.
I then have a cron job that runs this script every day at 9am, so I always have the latest data available.
I then just cat the text file in a Terminal window and look at the JSON output.
Over time this text file becomes very big and it is not easy to find values for a specific date.
So as an exercise and learning Kilo Code, I decided to ask the agent to plan, code and debug an CLI applications that call the APIs and store the results in a LibreCalc ODS file.
AI Agent (Kilo Code) prompt
I set the mode in Kilo CLI to plan and the model to Auto Free using the `Kilo Gateway’
This is the prompt I used to instruct the AI agent to plan, code and debug the CLI application, after the initial plan I added a bit to be more precise:
Provide a plan for the development of a Rust application that
- call each of the following APIs
1 https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,DOGE,TRX,ADA,NIGHT,BDAG,USDT,USDC&tsyms=USD
2 https://min-api.cryptocompare.com/data/pricemulti?fsyms=ADA,NIGHT,BDAG,TRX,DOGE,BNB,ETH,USDT,USDC&tsyms=BTC
3 https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=ZAR&e=VALR
4 https://openexchangerates.org/api/latest.json?app_id=3263b0c93523446299d17e2e6abdd748&symbols=ZAR,THB,KZT
5 https://api.valr.com/v1/public/USDTZAR/marketsummary
- output the results to a librecals ods sheet with each value in its own colums and the first column must the a timestamp in the following format YYYY-MM-DD HH:MM
- for the 4th API call above, only output the rates value
AI Agent (Kilo Code) plan output
Kilo CLI went away and the agent then asked one of its free models to plan the application based on the prompt above.
It came back with a detailed plan on how it will implement/code the application. I reviewed the plan and asked it to modify it with the following prompt:
Added:
- modify the plan, that if the ODS file does not exist then create a new one with the name CryptoPriceData.ods. If the file exist then append to the existing file
- For API 5 only use .lastTradedPrice
It then modified the plan as requested. I reviewed the plan and was happy with what it was planning to do. You can see the plan here
AI Agent (Kilo Code) code implementation
At the end of the planning stage, Kilo CLI gave the following options:
- Start a new session and implement the plan
- Implement the plan in an existing session
- Exit
I selected option 2 and implemented the plan in an existing session. The agent changed the mode to Code and went ahead and used one of the free models to implement the code.
During the whole process it gave detailed feedback on what it was doing.
When it was done implementing the code, it tried to build the code and gave feedback on any errors it encountered. It detected that the rate (that is what a library is called in Rust) it used for ODS file actions did not exist and it figured out what crate to use. The code was updated to use the correct crate and tested again. After some backwards and forwards, the code ran error free.
Told the AI agent I was happy and it went ahead and updated the plan with the correct ODS crate and added a Completion section on what it did.
Updates I have done manually
The AI implementation used UTC for its timestamp and I changed the code to rather use Local. Also when the application finished, it outputted a line to the terminal and since I am running it as a cron job where there is no terminal output, I commented out the println! line in the code.
Note: I use Zed as my editor. Unfortunately, Kilo does not have an extension for Zed, yet, hence the use of Kilo CLI.
The code for the application is available here
Conclusion
Although this was a fairly straightforward application and easy to implement, I was impressed by what it was able to do, given that it was using free models.
Stats from the session:
| Description | Value |
|---|---|
| Requests | 115 |
| Input Tokens | 7 475 473 |
| Output Tokens | 42 900 |
The binary is compiled, runs in milliseconds as a cron job, and perfectly handles the scope I set out to build.
If you’re building CLI utilities or exploring Rust, I highly recommend stepping away from traditional workflows and experimenting with an agentic assistant. It turns the friction of boilerplate setup into pure building momentum.
Have you built any CLI tools with Rust or experimented with agentic engineering platforms like Kilo Code? Let me know your thoughts or share your favourite crates in the comments below!

