{"id":25315718,"url":"https://github.com/haoxiang-xu/pupu","last_synced_at":"2026-04-12T02:03:06.608Z","repository":{"id":275863590,"uuid":"927432721","full_name":"haoxiang-xu/PuPu","owner":"haoxiang-xu","description":"PuPu is a lightweight tool that makes it easy to run AI models on your own device. Designed for smooth performance and ease of use, PuPu is perfect for anyone who wants quick access to AI without technical complexity.","archived":false,"fork":false,"pushed_at":"2025-03-22T04:10:56.000Z","size":8916,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-22T04:23:55.145Z","etag":null,"topics":["ai","chat","deepseek","llm","llm-gui","llm-webui","llms","minimalist","multios","ollama","ollama-app","ollama-chat","ollama-client","ollama-gui","ollama-interface","ollama-ui","ollama-webui","self-hosted","webui"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haoxiang-xu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2025-02-05T00:10:52.000Z","updated_at":"2025-03-22T03:58:37.000Z","dependencies_parsed_at":"2025-03-08T00:18:13.492Z","dependency_job_id":"bf5d57fb-3327-4434-ab7c-0b2d9de80e74","html_url":"https://github.com/haoxiang-xu/PuPu","commit_stats":null,"previous_names":["haoxiang-xu/ai_lounge","haoxiang-xu/ollama_webui","haoxiang-xu/pupu"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haoxiang-xu%2FPuPu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haoxiang-xu%2FPuPu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haoxiang-xu%2FPuPu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haoxiang-xu%2FPuPu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haoxiang-xu","download_url":"https://codeload.github.com/haoxiang-xu/PuPu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247684364,"owners_count":20979052,"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":["ai","chat","deepseek","llm","llm-gui","llm-webui","llms","minimalist","multios","ollama","ollama-app","ollama-chat","ollama-client","ollama-gui","ollama-interface","ollama-ui","ollama-webui","self-hosted","webui"],"created_at":"2025-02-13T18:24:48.888Z","updated_at":"2026-04-02T00:02:04.555Z","avatar_url":"https://github.com/haoxiang-xu.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./public/logo512.png\" alt=\"PuPu\" style=\"height: 128px\"\u003e\n  \u003ch1\u003ePuPu\u003c/h1\u003e\n  \u003cp\u003eYour AI, your way — beautifully simple.\u003c/p\u003e\n  \u003cp\u003e\n    A desktop AI client for local and cloud models, with workspace-aware chat in one clean app.\n  \u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"#macos\"\u003e\n      \u003cimg src=\"./public/assets/download_mac.svg\" alt=\"Download for Mac\" /\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\u0026nbsp;\n    \u003ca href=\"https://github.com/haoxiang-xu/PuPu/releases/latest/download/PuPu.Setup.0.1.1.exe\"\u003e\n      \u003cimg src=\"./public/assets/download_windows.svg\" alt=\"Download for Windows\" /\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\u0026nbsp;\n    \u003ca href=\"#linux\"\u003e\n      \u003cimg src=\"./public/assets/download_linux.svg\" alt=\"Download for Linux\" /\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\nPuPu is a cross-platform desktop AI client that lets you chat with local models through Ollama or connect to cloud providers such as OpenAI and Anthropic. It is built for people who want one fast desktop app for everyday AI work, not a browser tab maze.\n\nIf you find the project useful, ⭐⭐⭐ star the repo.\n\n![PuPu UI](./public/assets/v0.1.0-release/social_preview.png)\n\n## Why PuPu\n\n- Local and cloud models in one place\n  - Use Ollama for local models, or switch to supported hosted providers when you need them.\n- Workspace-aware chat\n  - Attach a project folder so PuPu can work with your local files in context.\n- A cleaner desktop workflow\n  - Keep conversations, settings, and tools inside one native app on macOS, Windows, and Linux.\n- Built for real usage\n  - Manage multiple chats, keep context close to your work, and avoid bouncing between disconnected tools.\n\n## Get PuPu\n\nDownload the latest release:\n\n\u003ca href=\"https://github.com/haoxiang-xu/PuPu/releases/latest/download/PuPu-0.1.1-arm64.dmg\"\u003e\u003cimg src=\"./public/assets/download_mac_apple_silicon.svg\" alt=\"Mac (Apple Silicon)\" /\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://github.com/haoxiang-xu/PuPu/releases/latest/download/PuPu-0.1.1-intel.dmg\"\u003e\u003cimg src=\"./public/assets/download_mac_intel.svg\" alt=\"Mac (Intel)\" /\u003e\u003c/a\u003e\n\n\u003ca href=\"https://github.com/haoxiang-xu/PuPu/releases/latest/download/PuPu.Setup.0.1.1.exe\"\u003e\u003cimg src=\"./public/assets/download_windows.svg\" alt=\"Download for Windows\" /\u003e\u003c/a\u003e\n\n\u003ca href=\"https://github.com/haoxiang-xu/PuPu/releases/latest/download/PuPu-0.1.1.AppImage\"\u003e\u003cimg src=\"./public/assets/download_linux_appimage.svg\" alt=\"Linux (.AppImage)\" /\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://github.com/haoxiang-xu/PuPu/releases/latest/download/PuPu_0.1.1.deb\"\u003e\u003cimg src=\"./public/assets/download_linux_deb.svg\" alt=\"Linux (.deb)\" /\u003e\u003c/a\u003e\n\n### Windows\n\n1. Download the latest `.exe` installer:\n\n   \u003ca href=\"https://github.com/haoxiang-xu/PuPu/releases/latest/download/PuPu.Setup.0.1.1.exe\"\u003e\u003cimg src=\"./public/assets/download_windows.svg\" alt=\"Download for Windows\" /\u003e\u003c/a\u003e\n\n2. Run the installer.\n3. Launch PuPu from the Start menu.\n\n### macOS\n\n1. Download the latest `.dmg`:\n\n   \u003ca href=\"https://github.com/haoxiang-xu/PuPu/releases/latest/download/PuPu-0.1.1-arm64.dmg\"\u003e\u003cimg src=\"./public/assets/download_mac_apple_silicon.svg\" alt=\"Mac (Apple Silicon)\" /\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://github.com/haoxiang-xu/PuPu/releases/latest/download/PuPu-0.1.1-intel.dmg\"\u003e\u003cimg src=\"./public/assets/download_mac_intel.svg\" alt=\"Mac (Intel)\" /\u003e\u003c/a\u003e\n\n2. Open the disk image.\n3. Drag PuPu into `Applications`.\n4. Launch PuPu from `Applications`.\n\n### Linux\n\n1. Download the latest:\n\n   \u003ca href=\"https://github.com/haoxiang-xu/PuPu/releases/latest/download/PuPu-0.1.1.AppImage\"\u003e\u003cimg src=\"./public/assets/download_linux_appimage.svg\" alt=\"Linux (.AppImage)\" /\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u003ca href=\"https://github.com/haoxiang-xu/PuPu/releases/latest/download/PuPu_0.1.1.deb\"\u003e\u003cimg src=\"./public/assets/download_linux_deb.svg\" alt=\"Linux (.deb)\" /\u003e\u003c/a\u003e\n\n2. If you use the `.deb`, install it with:\n\n```bash\nsudo apt install ./PuPu_0.1.1.deb\n```\n\n3. If your system reports a Chromium sandbox permission error, run:\n\n```bash\nsudo chown root:root /opt/PuPu/chrome-sandbox\nsudo chmod 4755 /opt/PuPu/chrome-sandbox\n```\n\n## Quick Start\n\n1. Open PuPu.\n2. Choose how you want to run models:\n   - local with Ollama\n   - cloud with a supported provider such as OpenAI or Anthropic\n3. Add any API key or provider settings in the app if needed.\n4. Optionally attach a workspace folder so PuPu can work with local files in context.\n5. Start chatting.\n\n## What You Can Do\n\n### Work With Local Models\n\nRun supported Ollama models directly from your machine without leaving the desktop app.\n\n### Connect To Hosted Providers\n\nSwitch to supported cloud providers when you want stronger hosted models or a different workflow.\n\n### Attach A Workspace\n\nGive PuPu a workspace and keep the conversation tied to the files you are actually working on.\n\n### Keep Chats Organized\n\nManage multiple conversations without losing context or cluttering your workflow.\n\n## Screenshots\n\n![PuPu showcase](./public/assets/v0.1.0-release/ui_showcase_1.png)\n\n## Roadmap\n\n- Agent Builder\n- Agent Teams and Skills\n- MCP integration\n\n## Contributing\n\nContributions are welcome.\n\nBy intentionally submitting a contribution, you agree to the terms in\n[docs/CLA.md](./docs/CLA.md). In short:\n\n- you keep ownership of your contribution;\n- the project may ship your contribution under Apache-2.0; and\n- the project may also reuse or relicense accepted contributions in future\n  commercial, dual-licensed, source-available, or proprietary offerings.\n\nIf you are contributing code or assets owned by your employer or client, make\nsure you have authority to do so before opening a pull request.\n\n## License And Trademark\n\nPuPu is distributed under the [Apache License 2.0](./LICENSE).\n\nThis means the code can be used, modified, and redistributed commercially, but\nthe PuPu name and brand are not automatically included in those rights.\n\n- License text: [LICENSE](./LICENSE)\n- Project notices: [NOTICE](./NOTICE)\n- Contributor terms: [docs/CLA.md](./docs/CLA.md)\n- Brand usage rules: [docs/TRADEMARK_POLICY.md](./docs/TRADEMARK_POLICY.md)\n\nIf you ship a modified fork, rename it and replace PuPu branding unless you\nhave written permission to use the marks.\n\n## Support\n\n- Found a bug or want to request something: [open an issue](https://github.com/haoxiang-xu/PuPu/issues)\n- Want the latest downloadable builds: [see releases](https://github.com/haoxiang-xu/PuPu/releases/latest)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaoxiang-xu%2Fpupu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaoxiang-xu%2Fpupu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaoxiang-xu%2Fpupu/lists"}