Important
🚨 This repository is no longer actively maintained.
Development has moved to a new repository with major improvements, refactoring, and ongoing updates:
👉 https://github.com/KostaD02/steam-idler
This version is kept for historical/reference purposes and will be archived.
Steam-Idler: open-source idling application.
- Introduction
- Features
- Getting started
- How does it work
- Development
- Usage
- Screenshots
- Project Architecture
- Contributing
- Issues
- Logs
- To Do
Steam-Idler is a self-hosted application for Steam game idling. It can idle as many games as you want on as many accounts as you want. It's great for farming cards or increasing game hours.
- Docker support
- Simple managing UI
- Parallel multi-account idling
- Idling multiple games in parallel
- Managing Steam persona status while idling
- Custom message replies while idling
- Custom game display while idling
See instructions to run Steam-idler below.
The application can be easily set up using Docker Compose.
mkdir steam-idler
cd steam-idler
curl -o docker-compose.yml https://raw.githubusercontent.com/KostaD02/steam-idler/main/docker-compose.yml
docker compose up -d
Note
That was it, you are ready to use it!
The first question might be: Is it safe? Yes this application uses the steam-user package, which allows interaction with the Steam API through Node.js.
To start idling for an account, you need to sign in first. During this process, you'll be prompted to provide the following information:
- Username
- Password
- Two-factor authentication code
After the authorization process, your data will be saved on your machine using MongoDB. This data does not include your password. The following will be saved after authorization:
steamIdsteamCookiessteamRefreshToken
You can review exactly what is stored by checking this file. This data is required to prevent the need to log in again whenever the server is stopped or restarted.
Caution
Since your password is sent during the sign-in process, it is recommended to use a reverse proxy in your hosted environment.
First we need to clone repository.
git clone https://github.com/KostaD02/steam-idler
Then need to install packages:
cd steam-idler
npm ci
Create .env file similar to .env.example, for example:
PORT = 2222
HIDE_LOGS = false
DATABASE_URL = mongodb://127.0.0.1:27017/steam-idler
Note
You can change the DATABASE_URL to a remote address, but be sure to consider security implications.
After that, run the following script in the terminal:
npm run start
Just open the browser and type ip:port of the machine running Steam-idler.
Check more images inside the screenshots.
The application is built using the NestJS.
I will add new features when I have time, but you don't have to wait feel free to add them yourself! Fork the project and submit pull requests. Check more details at contributing page.
If you see any issues, feel free to open an issue or suggest a pull request.
If you didn't hide logs from the .env file, you can easily check what's happening in background processes by running this script:
docker logs steam-idler --follow
Here are a few ideas that will be implemented in the future. You can also open an issue for any of these ideas.
- Better client side UI
- i18n - translations for client side


