SPB Git

spb/zyquo-cloud

Public MIT

Native macOS AI chat client for 12 cloud providers — your keys, every cloud model, one beautiful chat.

docs: README; scripts: header audit sweep (all files pass)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
simon-pierre boucher committed (Jul 30, 2026) parent ae79ca3 Browse files

2 changed files +87 −0

added README.md +62 −0
@@ -0,0 +1,62 @@
1+<!--
2+ README.md
3+ Zyquo Cloud
4+ Author: Simon-Pierre Boucher
5+ Mail: contact@spboucher.ai
6+-->
7+
8+# Zyquo Cloud
9+
10+**Zyquo Cloud** is a native macOS AI chat client — Swift + SwiftUI, built entirely without Xcode
11+(Swift Package Manager + command-line toolchain). Bring your own API keys and chat with any model
12+from **12 cloud AI providers**, switch models mid-conversation, compare models side by side, and
13+manage everything from a fast, beautiful, truly native Mac interface.
14+
15+## Providers
16+
17+OpenAI · Anthropic · xAI · Mistral · Google Gemini · Alibaba Qwen (DashScope) · DeepSeek ·
18+Kimi (Moonshot) · Perplexity · Together AI · DeepInfra · Cerebras — plus any custom
19+OpenAI-compatible endpoint (OpenRouter, Groq, …). 170+ chat models built in, verified live against
20+every provider (`docs/VERIFICATION.md`), with dynamic `/models` refresh.
21+
22+## Highlights
23+
24+- **Streaming chat** with stop, per-message model switching, regenerate-with-another-model
25+- **Reasoning display** (DeepSeek, Qwen thinking, Claude extended thinking…) in a collapsible section
26+- **Perplexity citations** as numbered source chips
27+- **Vision**: drag & drop images to vision-capable models; text files inject inline
28+- **Compare mode**: broadcast one prompt to 2–4 models in parallel columns
29+- **Quick Chat**: ⌥Space Spotlight-style floating panel from anywhere
30+- **Prompt library** (56 built-in templates + yours), **personas**, ⌘K command palette
31+- **Export** conversations to Markdown or PDF; full-text search; auto-titles
32+- Token usage + estimated cost per message and per conversation
33+- **Custom key vault** — AES-256-GCM (CryptoKit), machine-bound via HKDF (hardware UUID + salt +
34+ compiled-in pepper). No Keychain. Keys never leave `~/Library/Application Support/ZyquoCloud/vault.zq`.
35+
36+## Build
37+
38+Requires macOS 13+ and the Swift toolchain (Command Line Tools are enough — no Xcode).
39+
40+```sh
41+make # release build → dist/Zyquo Cloud.app (ad-hoc signed, for local use)
42+make run # build + launch
43+make test # unit tests (Swift Testing)
44+make icon # regenerate AppIcon.icns from assets/icon/*.svg
45+make release # universal binary, Developer ID signed, notarized, stapled + DMG
46+make verify # live API verification across all providers (needs .env.keys)
47+```
48+
49+`make release` uses the Developer ID identity and `notarytool` keychain profile configured on this
50+machine (see `docs/SIGNING.md`).
51+
52+## Layout
53+
54+```
55+Sources/ZyquoCloud/ # app target (App, DesignSystem, Models, Providers, Services, ViewModels, Views, Verify)
56+Sources/ZyquoVerify/ # zyquo-verify — live API verification launcher
57+Tests/ZyquoCloudTests/ # unit tests
58+assets/icon/ # SVG icon sources (single source of truth)
59+docs/ # PROVIDERS.md (API research), PLAN.md, VERIFICATION.md, SIGNING.md
60+```
61+
62+© 2026 Simon-Pierre Boucher. All rights reserved.
added scripts/audit-headers.sh +25 −0
@@ -0,0 +1,25 @@
1+#!/bin/bash
2+#
3+# audit-headers.sh
4+# Zyquo Cloud
5+#
6+# Author: Simon-Pierre Boucher
7+# Mail: contact@spboucher.ai
8+#
9+# Repository-wide sweep: every code file must carry the Author/Mail header.
10+#
11+set -uo pipefail
12+cd "$(dirname "$0")/.."
13+missing=0
14+while IFS= read -r file; do
15+ if ! head -12 "$file" | grep -q "Author: Simon-Pierre Boucher"; then
16+ echo "MISSING HEADER: $file"
17+ missing=$((missing+1))
18+ fi
19+done < <(find Sources Tests scripts -type f \( -name "*.swift" -o -name "*.sh" \) ; echo Package.swift; echo Makefile)
20+if [ "$missing" -eq 0 ]; then
21+ echo "OK — all code files carry the mandatory header."
22+else
23+ echo "$missing file(s) missing the header."
24+ exit 1
25+fi
26
Menu

Theme