Review of "Penguin: AI Chatbot" version 23

Details Page Preview

A GNOME Shell extension that provides a chatbot interface using various LLM providers, including Anthropic, OpenAI, Gemini, and OpenRouter. Features include multiple provider support, customizable models, chat history, customizable appearance, a keyboard shortcut, web search, location (by using the extension, you consent to sharing your location with OpenRouter for AI Tools) and copy-to-clipboard functionality.

Extension Homepage
https://martijara.github.io/Penguin-AI-Chatbot-for-GNOME/

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

All Versions

Previous Reviews on this Version

JustPerfection rejected
1. Use `console.*` instead of `log()`. Logs should be only available on debug mode. For debug use `console.debug()` instead of `console.log()`: [Port Guide 45: Logging](https://gjs.guide/extensions/upgrading/gnome-shell-45.html#logging) 2. Please remove: - `.eslintrc.cjs` - `.gitignore` - `global.d.ts` - `package-lock.json` - `package.json` - `tool-server/README.md` - `tool-server/requirements.txt` - `tool-server/server.py` [EGO Review Guidelines: unnecessary files](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#don-t-include-unnecessary-files) 3. You cannot expose user's info without user's permission (line 7-61, 83-106 `lib/tools.js`). 4. You should call `abort()` on destroy and don't forget to call destroy on the `ToolExecutor` class instance (line 69 `lib/tools.js`): [`Soup.Session.abort()`](https://gjs-docs.gnome.org/soup30~3.0/soup.session#method-abort)
martijara posted a review
I don't get what you mean in point 3: 3. You cannot expose user's info without user's permission (line 7-61, 83-106 `lib/tools.js`). Do you say this because of the get_system_info tool?
JustPerfection posted a review
Aren't the user info sent to the URL?
martijara posted a review
ah, you mean the longitude latitude?
JustPerfection posted a review
Yes. If giving the user an option for that is too much work, a simple mention in the description (`metadata.json`) would be enough.
martijara posted a review
ok. Thanks. Will fix