{"id":19874117,"url":"https://github.com/pythoninthegrass/desk_gpt","last_synced_at":"2025-03-01T01:22:57.727Z","repository":{"id":240327649,"uuid":"802336693","full_name":"pythoninthegrass/desk_gpt","owner":"pythoninthegrass","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-18T22:11:00.000Z","size":225,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-19T03:34:19.260Z","etag":null,"topics":["chatgpt","django","python","svelte"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pythoninthegrass.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-05-18T02:56:27.000Z","updated_at":"2024-05-30T07:38:10.918Z","dependencies_parsed_at":"2024-05-30T07:56:53.673Z","dependency_job_id":null,"html_url":"https://github.com/pythoninthegrass/desk_gpt","commit_stats":null,"previous_names":["pythoninthegrass/desk_gpt"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fdesk_gpt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fdesk_gpt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fdesk_gpt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pythoninthegrass%2Fdesk_gpt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pythoninthegrass","download_url":"https://codeload.github.com/pythoninthegrass/desk_gpt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241301743,"owners_count":19940698,"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":["chatgpt","django","python","svelte"],"created_at":"2024-11-12T16:21:49.184Z","updated_at":"2025-03-01T01:22:57.710Z","avatar_url":"https://github.com/pythoninthegrass.png","language":"Python","readme":"# desk_gpt\n\nSilly project to mimic the fantastic [QuickGPT](https://sindresorhus.gumroad.com/l/quickgpt) app but using the Python SDK instead of the web interface.\n\n## Minimum requirements\n\n* macOS 12+\n* [Python 3.11](https://www.python.org/downloads/)\n* [Poetry](https://python-poetry.org/docs/)\n* [Node.js](https://nodejs.org/en/download/)\n* [Cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html)\n\n## Installation\n\n* Clone the repo\n    ```bash\n    git clone https://github.com/pythoninthegrass/desk_gpt.git\n    cd desk_gpt\n    ```\n* Install the backend\n    ```bash\n    poetry install\n    ```\n* Install the frontend\n    ```bash\n    cd app\n    npm install         # bun install\n    ```\n\n## Quickstart\n\n### Run server\n\n```bash\ncd backend\n./run_django.py\n```\n\n### Run frontend\n\nEither run the vite dev server\n\n```bash\ncd app\nnpm run dev             # vite dev\n```\n\nor start the tauri app (recommended)\n\n```bash\ncd app/src-tauri\nnpm run tauri dev       # bunx tauri dev\n```\n\n## TODO\n\n* [devbox services](https://www.jetify.com/devbox/docs/guides/services/)\n  * Automates the setup of the backend and frontend services\n* Tauri integration\n  * ~~Add tray icon~~\n  * Add global shortcut\n  * Add notifications\n* Package the app\n  * Create a distributable package\n  * Setup CI\n* Add upload file feature\n  * Add file attachments\n* UI/UX design tweaks\n  * Add loading spinner\n  * Expand flexbox(?) viewport width\n  * Fixed width for chat form\n  * Change font\n  * Better code snippet formatting\n  * Streaming responses\n  * Copy code blocks\n* Create sidebar\n  * `+ New chat` button\n  * Chat history with title truncated\n  * `Clear conversations` button\n  * `Log out` button\n* Auth (Login / Logout)\n  * Save token to disk\n  * Load token from disk\n* Add tests\n  * Backend\n  * Frontend\n* Handle monorepo-ish structure\n  * Either dependencies all go in the root or in the respecitve subdirectory\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythoninthegrass%2Fdesk_gpt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpythoninthegrass%2Fdesk_gpt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpythoninthegrass%2Fdesk_gpt/lists"}