{"id":26465009,"url":"https://github.com/KotRikD/tosu","last_synced_at":"2025-03-19T09:01:02.009Z","repository":{"id":152205014,"uuid":"610363667","full_name":"tosuapp/tosu","owner":"tosuapp","description":"Memory reader and PP counters provider for osu! and osu! Lazer","archived":false,"fork":false,"pushed_at":"2025-03-15T16:38:06.000Z","size":3533,"stargazers_count":271,"open_issues_count":16,"forks_count":19,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-15T17:30:55.021Z","etag":null,"topics":["counters","gosumemory","lazer","memory","osu","overlays","pp","process","reader-writer","stable"],"latest_commit_sha":null,"homepage":"https://tosu.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tosuapp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.YML","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":"https://boosty.to/kotrik/donate"}},"created_at":"2023-03-06T16:13:52.000Z","updated_at":"2025-03-15T16:38:09.000Z","dependencies_parsed_at":"2024-02-12T13:27:10.984Z","dependency_job_id":"f00c97e8-8658-44b3-b842-35907c38397e","html_url":"https://github.com/tosuapp/tosu","commit_stats":null,"previous_names":["tosuapp/tosu","kotrikd/tosu"],"tags_count":72,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tosuapp%2Ftosu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tosuapp%2Ftosu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tosuapp%2Ftosu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tosuapp%2Ftosu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tosuapp","download_url":"https://codeload.github.com/tosuapp/tosu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244394510,"owners_count":20445635,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["counters","gosumemory","lazer","memory","osu","overlays","pp","process","reader-writer","stable"],"created_at":"2025-03-19T09:00:59.090Z","updated_at":"2025-03-19T09:01:01.992Z","avatar_url":"https://github.com/tosuapp.png","language":"TypeScript","funding_links":["https://boosty.to/kotrik/donate"],"categories":["Games","Community Resources"],"sub_categories":["Other","Tools"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Version\" src=\"https://img.shields.io/github/release/tosuapp/tosu.svg?style=for-the-badge\u0026color=%235686A2\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/node-%3E%3D20.11.1-45915E.svg?style=for-the-badge\u0026logo=node.js\u0026logoColor=white\" /\u003e\n  \u003ca href=\"https://github.com/tosuapp/tosu/blob/master/LICENSE\" target=\"_blank\"\u003e\u003cimg alt=\"License: GPL--3.0\" src=\"https://img.shields.io/github/license/tosuapp/tosu?style=for-the-badge\u0026color=%23A27456\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://twitter.com/kotrik0\" target=\"_blank\"\u003e\u003cimg alt=\"Twitter: kotrik0\" src=\"https://img.shields.io/badge/kotrik0-1DA1F2?style=for-the-badge\u0026logo=twitter\u0026logoColor=white\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n\u003ch1 align=\"center\"\u003eWelcome to tosu 👋\u003c/h1\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\".github/logo.png\" /\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\n\n```text\nTosu is a memory reader for osu! that sends data to overlays (aka pp counters) via WebSocket API, with extra features.\n```\n\u003e [!NOTE]\n\u003e Supports stable and osu! lazer. \u003cbr\u003e Compatible with _**gosumemory**_ and _**streamCompanion**_ overlays.\n\n\n\u003cdiv  align=\"center\"\u003e\n\u003ca href=\"https://boosty.to/kotrik/donate\"\u003e\u003cimg src=\".github/button-boosty.png\" /\u003e\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/tosuapp/tosu/releases/latest\"\u003e\u003cimg src=\".github/button-download.png\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://discord.gg/WX7BTs8kwh\"\u003e\u003cimg src=\".github/button-discord.png\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/tosuapp/counters/tree/master/counters\"\u003e\u003cimg src=\".github/button-counters.png\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\nInstallation guide\n---\n1. Download [tosu](https://github.com/tosuapp/tosu/releases/latest)\n2. Extract tosu.exe to a `Folder`\n3. Run `tosu.exe`\n4. Go to [http://127.0.0.1:24050](http://127.0.0.1:24050)\n5. Now you in overlays dashboard, in here you can download counters, or tweek settings of tosu\n6. Here you can watch showcase of dashboard: [link](https://youtu.be/3eW4TD_zwhM)\n8. Have fun!\n---\n\n\u003cbr\u003e\n\nFeatures\n---\n- [x] All _**Gamemodes**_ are supported. Using [rosu-pp](https://github.com/MaxOhn/rosu-pp) for pp calculations\n- [x] gosuMemory _**compatible**_ api\n- [x] streamCompanion _**compatible**_ api\n- [x] Lazer support\n- [X] Brand _**new api**_ for websocket\n- [x] _**In-game**_ overlay, allow adding multiple overlays (pp counters)\n- [x] _**Available**_ websocket data:\n  - Settings\n  - Gameplay data\n  - User ingame data\n  - Beatmap data\n  - Session _**(Work in progress)**_\n  - Multiple graphs for different skill sets _**(aim, speed, etc)**_\n    - Extended starrating stats _**(per mode)**_ \n  - Leaderboards list _**(array)**_\n  - Folders paths and Files names\n  - Direct paths to files\n  - Result screen\n  - Tourney data _**(not tested, yet)**_\n- [X] LOW CPU USAGE (I actually checked, this thing has a much lower memory recoil than the gosu)\n---\n\n\u003cbr\u003e\n\nIn-game overlay\n---\n- To enable it, you need to edit `tosu.env`, and turn on `ENABLE_INGAME_OVERLAY=true` (make it equal `true`)\n- Tutorial: TBA\n---\n\n\n\u003cbr\u003e\n\nAPI\n---\n- `/` - List of all counters you have\n\ngosu compatible api\n- `/json` - Example of `/ws` response\n- `/ws` - [response example](https://github.com/tosuapp/tosu/wiki/v1-websocket-api-response)\n- `/Songs/{path}` - Show content of the file, or show list of files for a folder\n\nstreamCompanion compatible api\n- `/json/sc` - Example of `/tokens` response\n- `/tokens` - [response example](https://github.com/tosuapp/tosu/wiki/v1-websocket-api-response)\n- `/backgroundImage` - Current beatmap background\n\nv2 _**(tosu own api)**_\n- `/json/v2` - Example of `/websocket/v2` response\n- `/websocket/v2` - [response example](https://github.com/tosuapp/tosu/wiki/v2-websocket-api-response)\n- `/websocket/v2/precise` - [response example](https://github.com/tosuapp/tosu/wiki/v2-precise-websocket-api-response)\n- `/files/beatmap/{path}` - same as `/Songs/{path}`\n- `/files/beatmap/background` - Background for current beatmap\n- `/files/beatmap/audio` - Audio for current beatmap\n- `/files/beatmap/file` - .osu file for current beatmap\n- `/files/skin/{path}` - similar as `/files/beatmap/{path}`, but for a skin\n\napi\n- `/api/calculate/pp` - Calculate pp for beatmap with custom data\n  - [Response example](https://github.com/tosuapp/tosu/wiki/api-calculate-pp-response-example)\n  - BY DEFAULT IT USES CURRENT BEATMAP (:))\n  - All parameters are optional\n  - `path` - Path to .osu file. Example: C:/osu/Songs/beatmap/file.osu\n  - `lazer` - true or false\n  - `mode` - osu = 0, taiko = 1, catch = 2, mania = 3\n  - `mods` - Mods id or Array of mods. Example: 64 - DT or [ { acronym: \"DT\", settings\": { speed_change: 1.3 } } ]\n  - `acc` - Accuracy % from 0 to 100\n  - `nGeki` - Amount of Geki (300g / MAX)\n  - `nKatu` - Amount of Katu (100k / 200)\n  - `n300` - Amount of 300\n  - `n100` - Amount of 100\n  - `n50` - Amount of 50\n  - `sliderEndHits` - Amount of slider ends hits (lazer only)\n  - `smallTickHits` - Amount of slider small ticks hits (lazer only)\n  - `largeTickHits` - Amount of slider large ticks hits (lazer only)\n  - `nMisses` - Amount of Misses\n  - `combo` - combo\n  - `passedObjects` - Sum of nGeki, nKatu, n300, n100, n50, nMisses\n  - `clockRate` - Map rate number. Example: 1.5 = DT\n---\n\n\n\u003cbr /\u003e\n\nSupport\n---\n- Give a ⭐️ if this project helped you!\n- If you need help setting up this program or have any suggestions/comissions, feel free to go to the [discord](https://discord.gg/WX7BTs8kwh) channel above in the `🔵 tosu` section\n---\n\n\u003cbr/\u003e\n\nLinux notice\n---\n- osu! stable build tested on [osu-winello script](https://github.com/NelloKudo/osu-winello/tree/main) with arch linux 2025.03.01 (latest confirmed that all works)\n- If you're using custom wine prefix with wine cwd breaking (your cwd is showing windows path instead of full linux one) please set `TOSU_OSU_PATH` in your bash/zsh profile (example `TOSU_OSU_PATH=/home/kotrik/.local/share/osu-wine/osu!`)\n- osu! lazer builds tested on AppImage from official osu repository and flatpak image\n---\n\n\u003cbr/\u003e\n\nSponsorship\n---\n| [![](./.github/sponsors/signpath.png)](https://signpath.io/) | Free code signing on Windows provided by [SignPath.io](https://signpath.io/), certificate by [SignPath Foundation](https://signpath.org/) |\n| :----------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |\n\n\u003cbr /\u003e\n\n## Maintainers\n\n🐱‍👓 **Mikhail Babynichev**\n* _**LEADMF**_\n* Website: http://kotrik.ru\n* Twitter: [@kotrik0](https://twitter.com/kotrik0)\n* Github: [@KotRikD](https://github.com/KotRikD)\n\u003cbr\u003e\n\n🍒 **Cherry**\n* _**Memory guy**_\n* Github: [@xxCherry](https://github.com/xxCherry)\n\u003cbr\u003e\n\n😪 **ck**\n* _**headache provider**_\n* Website: https://osuck.net\n* Github: [@cyperdark](https://github.com/cyperdark)\n\n\n\u003cbr /\u003e\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome!\u003cbr /\u003eFeel free to check [issues page](https://github.com/tosuapp/tosu/issues). You can also take a look at the [contributing guide](https://github.com/tosuapp/tosu/blob/master/CONTRIBUTING.md).\n\n\u003cbr /\u003e\n\n## 📝 License\n\nCopyright © 2023-2024 [Mikhail Babynichev](https://github.com/KotRikD).\u003cbr /\u003e\nThis project is [LGPL-3.0](https://github.com/tosuapp/tosu/blob/master/LICENSE) licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKotRikD%2Ftosu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKotRikD%2Ftosu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKotRikD%2Ftosu/lists"}