LongCut logo

From 10 day vacation project to 100k users: auto-cpufreq v3 story

By Adnan Hodzic

Summary

Topics Covered

  • Success Lacks Failure Runbooks
  • 10-Day Vacation Hack Scales to 100K Users
  • Rigorous Reviews Balance Growth and Quality
  • AI Chatbot Replaces Solo Maintainer
  • Open Source Thrives Without Corporate Backing

Full Transcript

Hey everyone, Adnan here and today I want to share how the open source community and yes even AI helped shape

the journey to auto CPU uh 3.0 version release and something that went from 10day uhification project to having

100,000 users. Uh today in tech and in

100,000 users. Uh today in tech and in general in life we embrace failure and lessons we learn from it which is a good thing. Uh but we're focusing on failure

thing. Uh but we're focusing on failure aspects. so much that once the opposite

aspects. so much that once the opposite happens and you succeed, you don't know what to do anymore because there's not a lot of runbooks if your project uh ends

up uh being uh successful. And that's

exactly what uh happened uh to auto CPU frick.

So what started as a new year's uh vacation project six years ago is today an ultimate Linux performance and power optimizer with life of its own. uh with

for example 7,200 GitHub stars uh 116 uh contributors

and what I estimate to be around uh 100,000 users uh today and it all started with uh an idea I had for years

but never had time to work on it and then this vacation was coming up and my first kid was also supposed to be born in couple of months. And I thought if I

don't do this now, I'll never do it. It

will not be done. So I got to work and frantically coded day and night. And in

less than 10 days uh at end of my vacation, I actually released AutoCPU Freck. And as you can see here on after

Freck. And as you can see here on after the release idea immediately took off and uh got a great following on social media. It was very well covered on uh

media. It was very well covered on uh YouTube.

um yeah and various other news sites and uh it was even actually trending as number one on uh hacker news and uh even today it's great to see that autocpu

frea 3.0 0 release was featured on sites like XDA developers uh then also for example for next uh and

uh it's uh free and open-source uh software and even the even the auto CPU frack uh 3.0 know release post on Reddit

which was actually made by me was seen by over uh 75,000 people and uh I was even uh trending as number one on Linux

subreddit and how to get to this point is uh yeah can just be based on hype because from the very first project

release announcement users were suggesting requesting numerous features and fixes before first contribut computer showed up in this process. I

put hundreds of hours of my own free time to work on development and what was suggested as the simple Python script was immediately turning into a real

Linux application and tool that was used uh by many. But I would also like to clarify why auto CPU frack and why you might find it useful. And I'll probably

be biased when I say this, but even after all these years and all after the initial release, I still find auto CPU frack to be the best tool for the purpose it was built for originally,

which is automatic CPU speed and power optimizer for Linux. So what I wrote as part of this blog post is still valid today as without uh for without it for

example watching a YouTube in 4K will still be a choppy experience with high CPU temperatures I'll get double of battery life that I get with known power

profiles without having to manually switch between performance and power save for example for uh new users and as a reminder to existing ones uh after

AutoCPU frack is uh installed using recommend installation method which is using autocpu frack installer uh where you basically just need to copy paste these two lines into a terminal and yeah

after in installation is complete uh yeah you just simply need to uh you'll have autocpu frack as a binary and then for example if you run uh autop-help

you can see all of the available uh options that you have at your disposal and uh Yeah, please also note that for example uh you can also see what each

one of these flags is used for in the detail as part of the modes and options in the readme file. So it will go explain what uh yeah what each uh what

you can use it for. And when it comes to uh the the GUI experience, you just basically uh need to find auto CPU frack uh in list of your installed uh

applications and you can simply follow uh oncreen instructions for rest uh and what you need to do uh you can install the demon you can uh use monitor and so

on. But this is what it currently looks

on. But this is what it currently looks like when it's running in uh in the guey graphical user interface. Please note uh while auto CPU frack uh will make

decisions automatically based on various factors. So for example well some of

factors. So for example well some of these factors here. So if it detects needs more performance, there's a very high CPU usage, it will change a govern

governor to performance or will enable turbo even if it's on battery uh running on battery. It all same thing as if

on battery. It all same thing as if you're running on power save uh it will do everything it needs to do to give you maximum power uh battery life. And

besides that, you also have numerous configuration options if you would like to configure things to your own liking even yourself instead of it deciding

everything for you uh automatically. So

for example uh as part of the readme there's a configur configuring autop.

So for example you have an option like to force a governor. uh you can also deal with this uh with a with a CLI and uh here in the in the in the GUI for

example. So maybe you want it to run on

example. So maybe you want it to run on performance all the time. Uh and uh you also have an option to uh auto CPU

config file. So here you can configure

config file. So here you can configure how auto CPU frack work uh works on battery uh or while it's plugged in. And

you can even configure it uh that it never goes between uh below certain CPU threshold. And for example, I can show

threshold. And for example, I can show how I did that here as part of the config file. So this is uh the the

config file. So this is uh the the behavior on the B on the when it's plugged in to a charger. And for

example, I have an option here to uh yeah. Oh, I deleted it. To never go

yeah. Oh, I deleted it. To never go below 2 gigahertz for example. And uh in case you're using a config file, if uh

this uh path is not there, then basically if I run the autocpu stats and and here I can see that it's using

settings defined in autocp uh config file and same as with a GUI so that you know that all the decisions are

made by you and uh how you configured it uh to work and uh actually described uh like about all of this, how it works as

part of the original autocpu effect demo and showcase if you're uh interested in uh really seeing more uh more details how it all works. I immediately knew

that I won't be able to do uh all of this myself and being involved in open source since an early age I started accepting uh external contributions and

I was uh actively encouraging people to make contributions and uh themselves and credit giving them credit for their work as part of the each release. So you see

here uh like uh made numerous other changes before releases even started being a thing. But for example, you see here first the contributors are popping

up and then giving them credits and uh yeah see two uh and now for example with the rel latest release from just having

a one or two contributors basically it's uh yeah it's a lot lot more and uh yeah which eventually basically even grew

into a whole network and community of contributors and I'm very thankful to all 116 of them individuals who

contributed to this project as without them this project would not be where it is today. And uh which can only happen

is today. And uh which can only happen also with open source as besides few donations none of us are getting paid for any of this. And everyone is doing

this in their own free time next to their daily jobs and lives and driven by desire to solve a real problem learn something along the way and build a tool

that actually makes uh Linux a better experience uh for everyone. And with the number of contributors growing, it's also important to uh have a rigorous uh

code testing and review process and not to just uh merge everything.

So in this process there are actually uh numerous pull requests that were submitted and were never merged as for example they simply lacked on quality or

didn't fit the overall vision as each time I decided to close one eye or or miss something during the review process uh yeah and merge something that

shouldn't be merged uh yeah it had consequences that were addressed for months later on and of course uh yeah you don't also want to chase

contributors away. So it's a very

contributors away. So it's a very delicate balancing act of what to merge and what to mer not to merge.

My focus also shifted as the project got bigger and development was also superseded by numerous support requests

and uh just triage and answering various questions on what's possible and available. We're simply answering

available. We're simply answering questions by linking it to a piece of documentation or something that was mentioned in uh releases. And for

example, uh yeah, this took enormous amount of my time as being a person who knew the most about the project to turn me into the answering machine. And

that's an interesting paradox because while people are interested in making co coach contributions and developing new features and improvements, very few are

also interested in actively supporting the feature they developed. Of course,

kudos to the outliers. uh and that's why as part of each pull request I also made it a standard procedure uh uh and request actually to add

documentation for develop features and improvements which helped drastically and long term and with the rise of artificial intelligence through the tech

landscape and looking at uh some uh possible solutions and uh AI applications I was actually inspired to develop uh a dedicated auto CPU you

frack geni chatpod for support purposes and a solution to uh all above mentioned uh challenges and hence how I replaced

myself with a genai chatbot using Gemini project was born. I also uh made uh besides this uh blog post which explains everything, I also made a YouTube uh

video uh and where I talk about the whole project and I even made a GitHub repo with all of the code and instructions and data you needed to get

basically started and uh everything revolves uh around basically creating uh rag uh retrieval augments generation

based on numerous autop Frack data sources uh which have all necessary data uh so for these YouTube videos to GitHub

issues, Reddit posts and etc. And the creating genai chatbot uh with Verdict AI conversational agents in Google cloud

provides user with necessary answers to the questions and uh support requests.

chat is located on the same blog post and uh page and as soon as you open it it will pop up or if I click here will show up and here for example I asked it

a question and it gave me an answer and in the end the project turned out to be an amazing success. It was featured on official Google blog uh as how

developers have been using Gemini and I even gave a talk on the same topic uh at a Google office in Amsterdam as a part

of a Google DevCloud uh events or conference. And then uh riding the waves

conference. And then uh riding the waves of that success, I created from zero to AI hero, how to build a Genaii chatbot

with Gemini and Vert.exi XI agent builder, a blog post and uh yeah very extensive blog post which also links to

a 17 scene YouTube uh video YouTube playlist along with autop genai chatbot GitHub repo with all of the information.

Uh so people with yeah without any experience with AI or AI agents or chat bots or Google cloud could follow along

and by end of this YouTube playlist can be uh are able to create the same solutions for their apps platforms or any other uh use cases. And I'll also

add links to all of these in the video description you're in case you're interested in check checking them out.

And uh yeah, since autocpu frei support agent was created when creating uh an issue uh so for example this is what it looks like when you're creating an

issue. Uh I uh users are actually

issue. Uh I uh users are actually encouraged to uh use the chatbot to see if their answers or questions were

already answered or issue resolved. A

number of newly created issues and questions has drastically decreased uh while actually auto CPU users continue

uh to increase uh through uh this period which uh means that uh auto CPU fa chatbot is uh definitely doing uh its job and people are getting their answers

instead of having to create issues create u questions. So let's talk about what's new in auto CPU frack v3 since last time uh I made a video like this

was back when uh version 2.0 was released and since then a lot uh has uh changed uh and uh since each release uh

has too many fixes and improvement just to name few and features I'll only mention some of them and uh so for example uh in 2.0 know uh yeah you you

get a notification if there's a new update and you're using GUI uh then we also moved to poor tree for example as

the backend and uh yeah moving on with 22 yeah this was a big one adding uh support for uh energy performance

preference EP adding battery charge threshold I was uh pretty happy about this one because this feature was added way before I was added for example to

major products and uh desktop environments like uh Gnome uh 2.3 yeah rework config and reload uh config

on file changes and creation I was pretty happy about this one so for example uh as soon as you uh now make changes to the config file it will uh

changes will be applied you didn't have to like reset uh auto CPU your fra systemd service or uh re reboot your

computer or something like that. Uh then

for 2.4 4 was one of the biggest releases uh and uh it added for example setting per uh profile uh uh platform

profile and uh also added uh stuff uh for like for example other uh init systems if you're using anything uh

that's not systemd and then uh 2.5 also had uh some uh nice changes adding uh EPB energy performance device

setting. Uh and uh yeah, finally we also

setting. Uh and uh yeah, finally we also had 2.6 and uh yeah, this is an interesting one.

For example, it added Bluetooth service uh to be uh uh yeah, so for example, here you now it's a flag if you wanted

on and off because before as soon as uh auto CPU framen was installed, it would basically uh disable uh Bluetooth for

you. So this is a nice uh yeah it gives

you. So this is a nice uh yeah it gives you more control and uh yeah after that we have the big 3.0 uh which allows uh

yeah overriding the CPU turbo settings via CLI and GUI. I think that's a nice feature and it also allows user to specify battery uh in config because uh

various people have different uh uh batteries uh settings or even have dual batteries. So now they can uh yeah

batteries. So now they can uh yeah detect these uh and uh another cool thing that happened because uh this release happened only a week ago and

there's already two new contributors and for example monitoring mode was uh so I already drafted a 3.1 release uh and for example now there's monitoring mode and

the GUI and all of the some of the uh information uh that was available in CLI and statistics were not reflected in GUI

and Now that's also the case and uh yeah and yeah another thing that uh that uh wasn't listed anywhere but happened

right after the 2 release was that uh yeah creation of uh yeah auto CPU effect discord community. So if you have any

discord community. So if you have any questions there is off topic general and uh support uh yeah feel free to join and

as always uh yes yeah we're looking for co-developers and uh contributors uh and co-maintainers in case you're

interested in shaping uh yeah the future of this uh project feel free to uh check it out. In closing, this has been an

it out. In closing, this has been an incredible uh journey from starting this project as a solo developer with zero expectations to now being a tech lead or

uh release manager or whatever I am for this project anymore. Uh for a global project now with so many users has been an incredible uh experience and unique

experience to say the least. As for

what's next, the project has truly taken on a life of its own. So I'll just continue going with its uh flow. I've

been also thinking about a lot about further uh AI integration. I keep

thinking for example how great it would be for to uh integrated uh with something like Gemini CLI. So um yeah,

this way you would be moving away from the preset logic and allowing this system to actually reason about power and performance decisions uh or help

users troubleshoot an issue through natural language. And this idea is still

natural language. And this idea is still forming but uh it could be an interesting uh direction uh to uh to

explore. And uh in the end today I hear

explore. And uh in the end today I hear also a lot of folks saying something like open-source is dead and that's because most of the big projects are

sponsored by big companies or and this also means that pretty much these projects are then run by these same companies and while I would uh love to

see some corporate sponsorship for this project especially because I believe auto CPU frack could significantly uh aid uh various companies sustain

ustainability efforts by reducing power power consumption in data centers uh if run on service of course and this

project proves that sponsorship isn't a requirement for success and this project is also a testament uh to what can be achieved when people share the same

vision as you. It proves that open source doesn't need a corporate sponsorship to be successful and it's a perfect example uh of how powerful

open-source software and its community can be. So if you have an idea of your

can be. So if you have an idea of your own, I would just say uh go for it and open source it of course. Until next

time.

Loading...

Loading video analysis...