Codync
免費、開源的 1:1 替代方案,取代 Grok Bot 與 Muse。從 iPhone、Mac 或 Linux 桌面將 Claude Code、Codex、Cursor 與 40+ 程式碼代理人作為持續機器人傳訊。群組聊天、主題串…
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Windows-first reference implementation for coordinating local Ollama requests and managed CUDA jobs on a shared GPU.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A local coordination layer for applications sharing a resource-constrained Windows GPU.
Chat, document indexing, image processing and a custom CUDA script can each work well alone—and compete for the same VRAM when they run together. GPUqueue gives integrated programs one place to request work, wait for capacity, explain why they are waiting, and retrieve their results.
This is a Windows-first reference implementation and development starting point, extracted from a working local setup. It combines an Ollama-compatible HTTP front door with managed command jobs, durable state and a small desktop tray. It is not an Ollama fork, a GPU driver, or a cluster scheduler.
Explore the interactive architecture · Communication walkthrough · Operations · Related work · Roadmap
| Capability | Current behavior |
|---|---|
| Shared inference entry point | Supported Ollama / OpenAI-style requests enter through 127.0.0.1:11436; Ollama remains on 11434. |
| Managed CUDA commands | A local client requests a lease, then launches and owns its process tree using a Windows Job Object. |
| Conservative admission | Priority aging, FIFO ties, fresh GPU measurements and declared VRAM budgets; unknown budgets run exclusively. |
| Durable requests | SQLite stores jobs, events and encrypted inputs/results. Async jobs receive an ID before inference. |
| Visible status | GPU-first tray status, CPU in a separate tab, CPU/GPU utilization, VRAM and a web history view. |
| Recovery | A watchdog restarts a missing coordinator. Inference blocked by a timeout or restart is released, without replay, once Ollama is proven idle; other ambiguous cleanup remains blocked for explicit reconciliation. |
| Per-user autostart | Optional installer registers the tray and watchdog with Windows Task Scheduler. |
Limits are deliberate: only integrated programs participate. Direct CUDA or direct Ollama callers can bypass this coordinator. A declared budget is an admission estimate, not a memory quota. No measured throughput or OOM-reduction claim is made.
The standalone Archify HTML includes light/dark themes,
zoom, component focus and export controls. Download it and open it locally, or use
the hosted link above. The editable specification is
docs/architecture.json.
The HTTP path is application → coordinator → Ollama → coordinator → application.
The command path is different: client → lease → owned child process → release.
The broker records command metadata; it does not execute submitted commands.
See the step-by-step communication contract.
Requirements: Windows, Python 3.13, an NVIDIA GPU with nvidia-smi for GPU
admission, and a separately installed local Ollama for model requests. The tray
uses Windows Forms and the .NET Framework compiler supplied with Windows. Other
operating systems, AMD/Intel telemetry and multiple GPUs are not supported here.
git clone https://github.com/Kiragroh/GPUqueue.git
cd GPUqueue
py -3.13 -m pip install -r requirements-dev.txt
py -3.13 -m pytest coordinator/tests tests -q
Tests use isolated state and synthetic backends; they do not invoke model inference. The UI started as a German-language local tool: documentation and API identifiers are English, while desktop/web labels currently remain German. English UI localization is tracked in the roadmap.
For a manual first run on a host without another coordinator on port 11436:
py -3.13 coordinator/server.py
Then open http://127.0.0.1:11436/. Pull models using Ollama's normal installation
workflow before submitting them. GPUqueue does not forward model-management
commands such as pulling or deleting models.
Use http://127.0.0.1:11436 as the Ollama base URL, or
http://127.0.0.1:11436/v1 for the supported OpenAI-style routes. This is a subset
of the APIs, not a promise of compatibility with every client feature. Configure
timeouts for queue waiting, or use durable asynchronous submission.
import requests
response = requests.post(
"http://127.0.0.1:11436/api/generate",
json={"model": "YOUR_INSTALLED_MODEL", "prompt": "Hello", "stream": False},
timeout=(10, 900),
)
response.raise_for_status()
print(response.json())
The default route waits and returns the response. For a request that can be
looked up after a client disconnect, edit examples/request.json and submit:
py -3.13 coordinator/client.py submit --owner demo --script examples/managed_worker.py --key demo-request-001 --json-file examples/request.json
py -3.13 coordinator/client.py job JOB_ID
py -3.13 coordinator/client.py result JOB_ID --output saved-result.json
--script should identify your actual caller entry point in real use; the
path above is an example. Reuse a logical idempotency key for the same request,
not for a different prompt. Retained results do not imply automatic replay.
py -3.13 coordinator/client.py run --owner image-worker --model my-model --script C:/work/infer.py --priority normal --vram-mb 6000 --min-free-mb 8000 -- C:/Python313/python.exe C:/work/infer.py
Use a measured, credible total peak budget. Omitting --vram-mb makes the job
exclusive. Import guard.ensure_managed(...) before CUDA initialization when you
want an entry-point guard; see examples/managed_worker.py.
For Windows virtual environments, read the process identity caveat.
$queuePython = py -3.13 -c "import sys; print(sys.executable)"
.\Install.ps1 -PythonPath $queuePython
This is an explicit, first-install helper. It copies the program to
%LOCALAPPDATA%\Programs\GPUqueue, stores runtime state separately under
%LOCALAPPDATA%\GPUqueue\state, and registers GPUqueue Supervisor and
GPUqueue Tray for your current Windows account. It refuses an existing
deployment. -SupervisorOnly omits the desktop build and tray.
No prebuilt executable is distributed. Build from reviewed source using
Build.ps1; the output is unsigned. If endpoint protection flags a build, stop
and follow your organization's normal review process—do not disable protection.
The prototype permits at most two budgeted GPU jobs, at most one Ollama GPU request, and one verified CPU-embedding request. It reserves 2048 MiB in admission calculations. Unknown budgets are exclusive. The policy deliberately subtracts reservations conservatively even when allocated memory may already appear in the GPU measurement. This can underutilize the GPU; it is not a throughput optimizer.
CPU routing is currently specific to a verified openviking-embed:latest alias
with Qwen3 embedding architecture and num_gpu 0. Other models use the GPU lane;
a model name alone is not a CPU guarantee. The alias is optional and is not
created by the installer. CPU cleanup compatibility still needs work.
See SECURITY.md and known limitations. Contributions should improve these boundaries without silently bypassing them.
Ollama already schedules model requests. GPU Task Spooler and simple_gpu_scheduler cover command-oriented GPU work. ollama-queue-proxy adds policy in front of Ollama. GPUqueue explores the combination of a Windows desktop workflow, durable inference results and owned command processes sharing one admission policy. It is an independent example, not a claim that those projects lack queuing or that this approach is universally better.
Start with CONTRIBUTING.md. The roadmap distinguishes working mechanisms from planned improvements. Small, reproducible fixes and integration examples are especially useful. Never include real prompts, tokens, runtime databases or private paths in issues or pull requests.
Project-wide licensing is awaiting the owner's choice; see LICENSING.md.