Ecommerce Template
Next.js·React 등으로 만든 최신 전자상거래 템플릿
Optimal Data는 분산된 가격·시장 정보를 제품으로 바꿔 식료품 구매 등 일상 결정을 명확히 합니다
Optimal Data turns fragmented prices and market information into consumer products that make everyday decisions clearer—starting with grocery shopping.
커머스TypeScript · PythonGitHub @wgrazz온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Agent Fleet by Optimal Data Inc. Run Claude Code, Codex, Cursor, Copilot and Antigravity side by side, keep them alive, answer them from your phone.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗by Optimal Data Inc. · MIT licensed
Run Claude Code, Codex, Cursor, Copilot and Antigravity side by side, keep them alive when the terminal or SSH connection drops, and answer them from your phone. It all runs on your own Mac: no account, no cloud relay, and the AI features use the subscriptions you already have.
git clone https://github.com/wgrazz/agent-fleet
ln -s "$PWD/agent-fleet/fleet" ~/.local/bin/fleet # anywhere on PATH
fleet new my-task # a protected session in this folder: run claude / codex / agent inside it
fleet dash install # the dashboard, at login (add --local if you don't use Tailscale)
The CLI needs Python 3.9+, tmux, and lsof/ps (present on macOS and Linux). caffeinate is
used when present, so Linux works too; it just doesn't block sleep. The dashboard needs macOS
and Node.js 24+.
$ fleet
PID TOOL STATUS AGE WHERE DIR TASK
41922 claude working 2:14:07 safe · api · background shop-app [busy] Add rate limiting to /search
43310 codex needs you 31:50 dies with window landing Trim the hero copy
+ 3 background helpers (fleet all)
WAITERS
PID OWNER AGE COMMAND
42001 claude 41922 1:03:12 /bin/sh -c until ssh server 'test -f /tmp/done'; do sleep 300; done
Agents started in a plain terminal die when that window closes or a Termius / SSH connection
drops, along with the hour of work they were in the middle of. fleet new NAME starts a
protected tmux session (with caffeinate on macOS so the laptop doesn't sleep) and you run the
agent inside it. fleet then shows every agent on the box, whether it is protected, what it is
working on, and any follow-up waiters it armed. fleet kill cleans up.
| Command | What it does |
|---|---|
fleet new NAME | Start a protected session called NAME in the current folder, then run claude / codex / agent inside it |
fleet new NAME --tool T [--model M] [--effort E] [--profile P] [--detach] [PROMPT] | Start NAME already running claude, codex, cursor, copilot or agy, optionally with a first prompt (--resume ID continues a past conversation) |
fleet pause NAME | Stop NAME's agent but keep its conversation; fleet paused lists, fleet unpause ID|NAME brings it back |
fleet idea [-l LIST] [-p low|medium|high] TEXT | Jot an idea into ~/.fleet/fleet.db (Brain Dump unless you name a list), optionally with a priority |
fleet import-notes [--dry-run] | Copy your numbered Apple Notes checklists into Ideas, checked items as done (needs Full Disk Access) |
fleet rename OLD NEW | Rename a session |
fleet json | The agent list as JSON (what the dashboard reads) |
fleet dash | Open the dashboard |
fleet hooks install / uninstall | Add or remove the Claude Code hooks that report status to the dashboard |
fleet mac … | Jarvis's Mac abilities: music, calendar, event, reminders, remind, draft, apps, open, window, screen, hotkey install |
fleet tts install | A natural voice for Jarvis (Kokoro, runs on this Mac, ~350 MB in ~/.fleet/tts) |
fleet resume [NAME] | Reattach (no name: the only session, or a list) |
fleet peek NAME | Print the last 40 lines of NAME's screen without attaching |
fleet | Agents you started, what they're doing, and any waiters |
Inside a session: Ctrl-b d detaches (the agent keeps running), Ctrl-b [ scrolls.
The TASK column reads Claude Code's session files (~/.claude/sessions/<pid>.json and the
transcript title) and Codex's thread database (~/.codex/state_*.sqlite). Cursor shows no task.
A web page for the same agents, on the Mac and as an iPhone home-screen app over Tailscale.
fleet dash install # runs the server at login (launchd) and publishes it to your tailnet
fleet hooks install # optional: exact status from Claude Code instead of reading its screen
fleet dash # open it on this Mac
fleet dash app # open it in Safari, then File → Add to Dock for a Mac app
fleet dash update # after changing the dashboard's code: rebuild + restart
fleet dash install prints two links that end in ?key=…. Open one once per device and the key
is remembered. Without it the page shows "Fleet is locked". The key, push keys, profiles, paused
sessions, folders and ideas live in ~/.fleet/ (readable only by you). None of it is in this repo.
Agents
fleet adopt PID) stops one and continues the same conversation inside
Fleet.New agent
docs/ideas/ and adds it to Priority.Ideas
fleet idea "…", or Jarvis.fleet import-notes (or Ideas ⋯ → Import from Apple Notes) copies your numbered checklist
notes, with checked items in Done. macOS only allows this from an app with Full Disk Access.History. Every past Claude and Codex conversation: search, read as chat, resume, file into folders.
Team. Roles are assistants that run on a schedule, such as a daily chief of staff or a weekly clerk.
Each run is a headless claude -p on your subscription. Each role's page has its questions for you
(answer in place), its tasks for you (check off or dismiss), a box to tell it something, every run's
summary and cost, and its settings:
A role only answers in JSON. The server writes its items and memory and sends a push, so a role never edits your ideas. Fleet's server runs the schedule, and a run missed while the Mac slept happens on wake.
Ask Jarvis "what does the clerk need from me?" and it reads the questions out. Answer it, tell a role
something, or say "run the clerk now". From a terminal: fleet role lists roles, fleet role NAME
shows what it needs, and fleet role NAME answer N TEXT, tell TEXT and run do the same.
Usage. 5-hour and weekly limits:
statusline.sh writes ~/.fleet/claude-usage.json.Jarvis. The mic in the sidebar, the middle of the phone tab bar, or J. Type or talk.
~/.fleet/jarvis-memory.md.jarvis_warn_pct / jarvis_max_pct in ~/.fleet/config.json).
The share is computed from what every Claude session cost this week.fleet tts install adds Kokoro, an open-weight voice model that runs on your
Mac. Audio is made there and played on whichever device you're using. Pick a voice (British
George, Fable, Daniel, Lewis, and more) under Settings → Jarvis's voice. Mac voices and the
device's own voice are there too.Jarvis on your Mac. One assistant for agents and your day, from your phone or the Mac.
fleet mac hotkey install).Reading things and music happen right away. Calendar events, reminders and email drafts show an Approve card first. Each ability asks macOS for permission once: Settings → Mac access → Set up all, while you're at the Mac.
Jarvis outside the dashboard. fleet ask "what needs me?" talks to the same Jarvis, with the
same memory, cost cap and actions, from any terminal or script. That makes it easy to connect to:
Siri, hands-free on the iPhone. On the phone, open Settings → Hey Siri → Add the Jarvis
shortcut (or run fleet dash siri on the Mac and AirDrop the file). Say "Hey Siri, Jarvis", then
talk; Siri reads the answer and listens again until you stop talking. To build it by hand instead,
make a shortcut named "Jarvis":
https://<your-mac>.<tailnet>.ts.net/api/jarvisX-Fleet-Key: <your key>text = Dictated Textsay.Then say "Hey Siri, Jarvis". Tailscale must be on.
Share to Fleet from any app. On the phone, open Settings → Share to Fleet → Add the Save
to Fleet shortcut (or fleet dash share on the Mac and AirDrop it). Then in Instagram, TikTok,
Safari or anything else: Share → Save to Fleet, and the link lands in Brain Dump. Run on its
own it saves your clipboard. Tailscale must be on.
Keys:
| Key | Action |
|---|---|
| ⌘K | Jump anywhere |
| ⌘I | New idea |
| N | New agent |
| J | Jarvis |
| ↑ / ↓ | Move through agents |
| 1-9 | Answer menus |
| / | Reply box |
The smart features (Improve, Suggest, Sort, Interview, Jarvis) run on your own Claude
subscription through the Claude Code CLI (claude -p, Sonnet by default; set FLEET_AI_MODEL
to change it). They don't use an API key.
iPhone:
You get a push when an agent needs you, finishes or crashes, and tapping it opens that agent.
iOS only allows web push over HTTPS, so enable HTTPS certificates in the Tailscale admin console
(DNS page) before running fleet dash install. Without Tailscale, use
fleet dash install --local for a Mac-only dashboard.
How status works: Claude Code reports exactly through its hooks. Codex, Cursor, Copilot and
Antigravity are read from their screens every 2 seconds, using patterns taken from real captures
(dashboard/test/fixtures/). When a guess is wrong, save the screen
(tmux capture-pane -p -t =NAME: > dashboard/test/fixtures/<tool>/<state>-<label>.txt) and fix
the pattern in dashboard/server/detect.ts. Agents started in a plain terminal window show up
(Claude and Codex ones with their chat), but only agents in tmux (fleet new or the dashboard)
can be answered from it.
Needs Node.js 24+. In dashboard/:
npm test runs the detector, Ideas and end-to-end tests.npm run typecheck checks types.npm run dev serves the page with hot reload against a running server.A small companion: agents call it when a long job finishes, blocks, or gives up, so you get
a ping instead of checking back. It goes to your phone through the dashboard's push
(POST /api/notify) when the dashboard runs on this machine and a device is subscribed,
and falls back to Discord otherwise (another machine, dashboard down, no phone set up).
export DISCORD_AGENT_WEBHOOK=https://discord.com/api/webhooks/... # optional fallback
AGENT_NAME=claude ./agent-notify.sh "Nightly import finished: 347 rows loaded"
# → claude @ shop-app: Nightly import finished: 347 rows loaded
It never fails the caller: a failed post only warns on stderr.
Tell your agents (in AGENTS.md) that when they start something that takes more than a few
minutes they should arm a follow-up — a background until <check>; do sleep 300; done loop
that re-wakes the session — say so in one line, and notify on result. fleet shows those
waiters under their owning agent, and fleet new is what lets them survive a dropped
connection. See polyagent-kit for the rule text.
MIT
fleet all | Same, plus background helpers (desktop apps, Codex service, chrome bridge, claude-mem) |
fleet kill PID|NAME | Stop one agent or waiter, or a whole session |
fleet kill --all | Stop every agent and waiter you started, after a y/N prompt |
fleet selftest | Offline check of the process-tree logic |