Skip to content

Feat: Add system info (Client + Server metrics)#2311

Merged
Salazareo merged 10 commits intoHeyPuter:mainfrom
llpingll:2125
Jan 27, 2026
Merged

Feat: Add system info (Client + Server metrics)#2311
Salazareo merged 10 commits intoHeyPuter:mainfrom
llpingll:2125

Conversation

@llpingll
Copy link
Copy Markdown
Contributor

@llpingll llpingll commented Jan 21, 2026

This PR adds a System Information window with client-side and server-side information. Accessed via the toolbar -> profile -> System Information.

Screenshot 2026-01-23 001754
Screenshot 2026-01-23 001733

(Showed settings window to display similarity in style)

It displays:

  • Client-side:
    • Browser name/version (User-Agent Client Hints + fallback)
    • OS name/version
    • CPU cores
    • Approximate RAM
    • Screen resolution, pixel ratio, color depth
  • Server-side:
    • OS (platform/type/release)
    • CPU model & logical core count
    • RAM (free/total in GB)
    • Disk usage (root filesystem, used/total in GB)
    • Uptime (formatted as d/h/m)
    • Exposed via /getServerInfo API endpoint

It features:

  • Unified rendering logic for both client & server info
  • Graceful error handling (empty list on API failure → no crash)
  • Refresh buttons with animation
  • Initial load + on-demand refresh

Testing:

  • Tested locally in self-hosted mode
  • API endpoint returns correct data (logs + browser response)
  • Refresh buttons work with animation
  • Error path (e.g., API down) shows empty section gracefully

Regarding the existing PR #2286
I noticed @R0h1tAnand submitted a PR (#2286) that adds a System Information window with both client-side and server-side metrics. I wasn't sure if it was fully complete or if there were still open review points, so I went ahead and completed a full implementation independently.

I'm still happy to:

Just let me know what direction you'd like to go in, goal is to get a solid System Information feature merged in the best shape possible.

Would love any feedback on the client-side code, styling, or if you'd prefer this integrated differently. Thanks for reviewing!

Solves #2125

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Jan 21, 2026

CLA assistant check
All committers have signed the CLA.

@R0h1tAnand
Copy link
Copy Markdown

Add client-side system information to System Information window

This PR adds a client-side information section to the System Information window, accessed via the toolbar -> profile -> System Information.
Screenshot 2026-01-21 164537

It displays:

* Screen resolution (width × height)

* Browser name/version (via User-Agent Client Hints + fallback)

* OS name (via User-Agent Client Hints + fallback)

* CPU logical cores (`navigator.hardwareConcurrency`)

* Approximate RAM (`navigator.deviceMemory`)

* Pixel ratio, color depth

Features:

* Refreshes on button click with animation

* Clean, responsive layout matching Puter's style

* Handles missing data gracefully (shows 'N/A' or 'Unknown')

Regarding the existing PR #2286 I noticed @R0h1tAnand submitted a PR (#2286) that adds a System Information window with both client-side and server-side metrics. I wasn't sure if it was fully complete or if there were still open review points, so I went ahead and implemented the client-side part independently.

I'm happy to:

* Close this PR if [feat: Add System Information window with server metrics #2286](https://github.com/HeyPuter/puter/pull/2286) already covers this fully

* Rebase/merge my changes into [feat: Add System Information window with server metrics #2286](https://github.com/HeyPuter/puter/pull/2286) (happy to help resolve conflicts)

* Collaborate on combining the approaches

* Take on the server-side metrics part if the team wants a separate implementation or if [feat: Add System Information window with server metrics #2286](https://github.com/HeyPuter/puter/pull/2286) needs help finishing backend

Would love any feedback on the client-side code, styling, or if you'd prefer this integrated differently. Thanks for reviewing!

Addresses issue #2125

yeah there was a minor issue i was facing but happy to see this

@llpingll
Copy link
Copy Markdown
Contributor Author

Hey @R0h1tAnand, I submitted a client-side implementation for the System Information window. Happy to discuss merging approaches or collaborating if useful. No pressure, just wanted to contribute!

Happy to get involved on the serverside stuff too.

@jelveh jelveh self-assigned this Jan 21, 2026
@llpingll llpingll changed the title Feat: Add system info (frontend and client info only) Feat: Add system info (Client + Server metrics) Jan 22, 2026
@Salazareo
Copy link
Copy Markdown
Member

Hi @llpingll I updated some of the backend code.

I've moved the router to the extension system which is what we're trying to use now for non-core apis, event handlers and other similar add ons.

I've also disabled it so it only works for admin, or configured accounts.

Having this be production can be a security risk, so for now it will just be available for admin and whatever the local server configs the allowedUsernames to contain

@Salazareo Salazareo merged commit bbe6f9d into HeyPuter:main Jan 27, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants