Now in closed beta

Mobile IDE for
cloud coding agents.

Run Claude Code and Codex on your own cloud servers. Start long-running goals, handle blockers, review every change, and ship from your phone.

2:115G ● 69%
Fleet
Personal M…
All
Goals
Schedules
Tasks
luna
luna/add-pagination · just now
3
+
Add pagination to user API
● RUNNING
Analysing schema and pagination strategy· 1m
Refactor auth middleware
AWAITING_REVIEW
PR #4 awaiting review· 22m
Tests passing · 3 commits
8 files changed +261 −58
Plan the job queue backend
● NEEDS_INPUT
Agent asked a question· now
"Should I use Redis or Postgres for the job queue?"
apex
apex/redis-fix · no recent activity
1
+
Fix Redis connection pool
DONE
Connection pool patched and tests passing· 41m
Fleet
2Inbox
Review
Terminal
Settings
Add pagination to user API
×
↳ luna · add-pagination · claude
● LIVE
Add pagination to user API
running · 0:12
The users endpoint accepts pagination params but never returns a cursor.
Add stable cursor (created_at + id)
Validate limit param
Cover empty-page case
Open PR for review
Q
read_fileroutes/users.ts
>_
bashpnpm test
edit · routes/users.ts
42
const limit = clamp(query.limit, 1, 100);
43
const cursor = parseCursor(query.cursor);
44
const users = await listUsers({ limit, cursor });
45
return json(users);
45
return json({ data: users, nextCursor });
46
});
tests passing · 28 tool calls
API stays backwards compatible.
Can you also open a PR for this
running · 0:04
PR #4awaiting review
fix: add cursor pagination
+261−583 files
Awaiting your approval before merge
Ask or /command
Fleet
2Inbox
Review
Terminal
Settings
I
The
I'm
Q
W
E
R
T
Y
U
I
O
P
A
S
D
F
G
H
J
K
L
Z
X
C
V
B
N
M
123
← PR #4 · 3 files
f
routes/users.ts
+261 −58
File 1 of 3 · 2 hunks
42
const limit = clamp(query.limit, 1, 100);
43
+ const cursor = parseCursor(query.cursor);
44
+ const users = await listUsers({ limit, cursor });
45
- return json(users);
45
+ return json({ data: users, nextCursor });
46
});
Approve
Comment
Reject
Fleet
2Inbox
Review
Terminal
Settings
awsgcphetznerdigitaloceanmodaldaytonadockerfly
3 running · ◔ 2 scheduled · work continues while you sleep

The whole dev cycle.
From your phone.

Not remote access to a laptop. An always-on server owns execution, history, and workspace state.

Complete diffs

Every diff, every hunk, every changed file, on every remote machine you own.

+261 −58 · 3 files
2:115G ● 69%
← PR #4 · 3 files
f
routes/users.ts
+261 −58
File 1 of 3 · 2 hunks
42
const limit = clamp(query.limit, 1, 100);
43
+ const cursor = parseCursor(query.cursor);
44
+ const users = await listUsers({ limit, cursor });
45
- return json(users);
45
+ return json({ data: users, nextCursor });
46
});
Approve
Comment
Reject
Fleet
2Inbox
Review
Terminal
Settings
Templates
⌕ Search templates
AllGoalsLoops
PR review passgoal
Review the open diff and leave inline comments.
luna · 35m ago
Feature deliverygoal
Plan, implement, and verify a scoped feature end-to-end.
Any repo · 2h ago
Nightly dependency upgradeloop
Loop bumping dependencies until the build is green.
Any repo · 8h ago
Bug triage & fixgoal
Reproduce, fix, and add a regression test for a reported bug.
apex · 5h ago
Fleet
2Inbox
Review
Terminal
Settings
Stabilize auth rollout● RUNNING
⑂ luna · luna/auth-rollout · claude
Get auth-rollout stable before the mobile release
running · 6h 12m
PLAN
Map current session flows
Patch refresh-token rotation
Add regression coverage
Open PR for review
⌕ read_file0.3s
src/auth/middleware.ts
caps · 50 turns · 8h wall · $12
Fleet
2Inbox
Review
Terminal
Settings
Templates

Save a run once. Fire it on any of your machines, from your phone.

2:115G ● 69%
← PR #4 · 3 files
f
routes/users.ts
+261 −58
File 1 of 3 · 2 hunks
42
const limit = clamp(query.limit, 1, 100);
43
+ const cursor = parseCursor(query.cursor);
44
+ const users = await listUsers({ limit, cursor });
45
- return json(users);
45
+ return json({ data: users, nextCursor });
46
});
Approve
Comment
Reject
Fleet
2Inbox
Review
Terminal
Settings
Templates
⌕ Search templates
AllGoalsLoops
PR review passgoal
Review the open diff and leave inline comments.
luna · 35m ago
Feature deliverygoal
Plan, implement, and verify a scoped feature end-to-end.
Any repo · 2h ago
Nightly dependency upgradeloop
Loop bumping dependencies until the build is green.
Any repo · 8h ago
Bug triage & fixgoal
Reproduce, fix, and add a regression test for a reported bug.
apex · 5h ago
Fleet
2Inbox
Review
Terminal
Settings
Stabilize auth rollout● RUNNING
⑂ luna · luna/auth-rollout · claude
Get auth-rollout stable before the mobile release
running · 6h 12m
PLAN
Map current session flows
Patch refresh-token rotation
Add regression coverage
Open PR for review
⌕ read_file0.3s
src/auth/middleware.ts
caps · 50 turns · 8h wall · $12
Fleet
2Inbox
Review
Terminal
Settings
Long-run goals

Plan goals that run for hours on your remote machines, all launched, steered, and shipped from your pocket.

2:115G ● 69%
← PR #4 · 3 files
f
routes/users.ts
+261 −58
File 1 of 3 · 2 hunks
42
const limit = clamp(query.limit, 1, 100);
43
+ const cursor = parseCursor(query.cursor);
44
+ const users = await listUsers({ limit, cursor });
45
- return json(users);
45
+ return json({ data: users, nextCursor });
46
});
Approve
Comment
Reject
Fleet
2Inbox
Review
Terminal
Settings
Templates
⌕ Search templates
AllGoalsLoops
PR review passgoal
Review the open diff and leave inline comments.
luna · 35m ago
Feature deliverygoal
Plan, implement, and verify a scoped feature end-to-end.
Any repo · 2h ago
Nightly dependency upgradeloop
Loop bumping dependencies until the build is green.
Any repo · 8h ago
Bug triage & fixgoal
Reproduce, fix, and add a regression test for a reported bug.
apex · 5h ago
Fleet
2Inbox
Review
Terminal
Settings
Stabilize auth rollout● RUNNING
⑂ luna · luna/auth-rollout · claude
Get auth-rollout stable before the mobile release
running · 6h 12m
PLAN
Map current session flows
Patch refresh-token rotation
Add regression coverage
Open PR for review
⌕ read_file0.3s
src/auth/middleware.ts
caps · 50 turns · 8h wall · $12
Fleet
2Inbox
Review
Terminal
Settings

Syndic brings you back only when judgment is required.

22:00unattended
02:14
06:30unattended
07:42
SYNDICnow
Plan the job queue backend
"Should I use Redis or Postgres for the job queue?"
RedisPostgres
answered in 8 seconds
◢ syndic · hetzner-01review readyluna · +261 −58

your night: 98 seconds · their night: 9h 45m of work

Private by architecture.

Your code and your credentials never leave your server. No cloud in the middle, so we have nothing of yours to see.

hetzner-01
Contained runs
/srv/luna/wt-3own worktree
/srv/luna/wt-4scoped env
Credentials stay home
~/.claudelocal ✓
~/.codexlocal ✓
Revoke anything
audit: 22:40 merge · ⌗ faceID
[ revoke all ]

Nothing ships past you.

Every changed file, every hunk inside it. Browse the whole changeset and open any change before it merges.

22:41▰▰▰▱
Add pagination…Changed FilesPR #4 ›
⌕ Search commits or files
Commits5
luna/add-pagination → main
a41c9d2feat: cursor pagination dtos17m
b82a1dffeat: paginate users endpoint16m
c91f28bfix: clamp limit to 100 max15m
d20d4eetest: pagination edge cases14m
Changed files8
routes3
users.ts+12−2
users.test.ts+48
middleware.ts+6−1
api2
paginate.ts+240
types.ts+9−1
Fleet
2Inbox
Review
Terminal
Settings
routes/users.ts · magnified
41 const users = await db.users.find(
42 take: 1000,
42 take: limit,
43 skip: (page - 1) * limit,
44 orderBy: { createdAt: 'desc' },
45 res.set('X-Total-Count', total);
inline comments · agent replies in-thread · open PR · squash / rebase · biometric ⌗

Bring the workflow you've already built.

One command moves your local worktrees to your server. Pick them up on your phone instantly.

~ laptop · syndic

Move your whole setup with one command.

Your skills and agent configs land on the remote machine and work just like they do at home.

Ship more. From anywhere.

Free
$0 / forever
Everything you need
to start dispatching.
  • 2 repositories
  • 4 concurrent agents
  • Dispatch, monitor, review
  • Diff viewer + merge
Get Started
Pro
$59 / year
Everything in Free, plus full
control over your fleet.
  • Unlimited repos + agents
  • Per-agent configuration
  • Activity monitor
  • Audit log
  • Automated security scans
  • Priority support
  • Terminal access to your VM
Unlock Pro
Less than a coffee a month.
Just over $1 a week

Get started in one command.

$curl -fsSL https://get.syndic.dev | sh