+ *
+ . . * . . + *
. * * . .
. . . + + *
. . * .
. . * * * * * .
. . + + *
. * . . + . * *
. * .
. . * . . +
+ * . . *
.
+ * + .
+ . .
+ . + .
+
+ + * + .
. * .
+ + + *
. + . + *
. .
* . . .
+ . . +
+ . . . . * . + + +
. . . +
. + + . + + . .
* . + *
. . . . * + .+
. + . .
* . + +
* + .
. * * +
* * . . .
+ + ( *
. * . . + ~ . * .
* * . + ( * + * +
* ~
. + * * + .. *
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/___\
| / | /___\
/___\ . | |
| | / : .:. \^
^ ^ ^ :::.. ^ ^:.. '. ^ :. ...
^ ..'. ^ .:: ' : .:.. ^ : / ' ... :' . .\ :
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ' . . ' . ^ .:':' ' . : ': : ^ :.:.'.: :. :' ^ ^ ^ ^ ^ ^ ^ : ... ' .
^ . :..^ ^ ^ ^ . . .': ^ ^ ^ '.. ... ^ ^ ^ . '. : :'. ..::.' . : ' :'^ ^ : . .. . . : '. .: ''.' '/ ' .::'^ ^ ^ ':'. ^.' .' . .. .. \' ..^ ^
. . . . . ' :: . .' :....'...'..:.. ' '.. :.'. . ' .: . . ' . . :.. : ' :: .:' .. . ' ..:.. .: :' ': .. . . :.
':'' ..':': ..:' ':. ..: ' . : . '.. .' . :.'' '' '. ' . .: : . ... ' .:: .' ' . : ..: : ./ : .'.. '' .' ' : : ' . '. ' .\ .'
. : . ' .. : :. : ' . . . ' : : : . : : . . . . ' ' ' .. : . : .'
':. .. ' ' .' . '. . . . : / : . ' ' : :' \: '
. ' ' ' '. .. . '
ssh hetz
tmux new -d -s e#g
worker: co/nected
git worktree add ../eng-
linear: ENG-142 -> in progress
tmux attach -t eng-142
gh pr create
worker: reconne
ag
cargo build --rele
curl&-fsSL https://usefireto&e
^
/^\
^ ^ /^^^\
^ /|\%% ^% %^%^%%^^ %^^^^%% ^^ ^/|\ /^\
/^\ ^ ^%%8$@%### *^%&$%& %8#@ @$$%#^#^8#@@ &@^^ /^^^\
/^^^\/|\%$^ @^#%#@@^$ ^^$#^%$# &#%&& # $^^%8&%8#@/^^^^^\
/^\ %% *^8*%^@%#$# #%&#@%^8% ^^%%8@8$&#&$##&% #& ^|||
^\^ #%#@#&^8#@#@%8^@@##@^#%%%%#%#& 8@%8%*%#%8*8%##/|\
/^^^^^\%#@%&#%%8*##8#$&##%$#$^ %$@ $ ^#% %#@&@*$%^8#%%*^
|||$$^^*%%%8$ $**8%% 8^&@&#&$8# *%&*%^%# 8#@&% %@%#% ^ ^
^ ^8%%###%#*%%%%^# &#&@$%&$%@@*%#* 8*##^8&%^$%&%%^@%8*#/|\/^^^\
/|^^@8$$8&#%%$ %&% $*$#%^&##$*^$ $8&%#@@#%%# # 8#%$%#8$%#*% /^\
#$@*8$#^#*###%#%@$@@@8*$ 8#8%$ 8#& # &$8%^#%$&**%% #%^/^^^\
/^^^\^ %%#8%#$^#@### ^$ %%$##8$%&^* %*#$$ %&@ $ @@ % ^88*#$ %^ $@/^^^^^\
%$8%# @ ^@&^@##8###$8#& ^8 * @ %# ^ @&## $^&@#%#^@%|||
/^^^\^^^*88%#%@^ %%@ % $* #@ 8 $ * $@ ^#%%%%8%$#^ *^@%
/,' | | ,,,,//,' ''| | ,, ,'|| |||
|
-|--
|
|
|
| .^. #
| _.-' | '-._ #
_|-' | '-._
_.-' | '-._
/_______________________________\
|[ ][ ][ ][ ][ ]|
|[ ][ ][ ][ ][ ]|
+=============================+
| | | | | | | | | | | | | | | |
[===============================]
\ | : : | /
\| \: :/ |/
| _\\ /: |
/ :_\\ / : \
| : _\\ / : |
| : _\\ : |
| : / _\\ : |
/ :/ _\ \: \
| /: _\:\ |
| / : ===== \|
|===================|
/ \: :/ \
| :\ /_: |
| : \ /_ : |
| : \ //_ : |
| : //_ : \
/ : //_ \ : |
| : / /_ \ : |
| / /_ \ |
| / :===== : \ |
/=========================\
| \ : :/ |
| : \_\ / : |
| : _\ / : |
/ : _\ / : \
| : _\\ : |
| : / _\ \ : |
| : / _\ \ : |
/ :/ _\ \: \
| / : ===== : \ |
| : : |
[#] [#] [#] [#]
# laptop closed. agents still running.
%:: #8= :== %# :%%
%=: #== %:% % 8=:
%##
%#%
' ###
( )
.
^
:.'
::
.
.
Run every agent, on every machine, from one tower.
Firetower is a control plane for coding agents, on a server you own. It installs a worker on every machine you can SSH into, decides where each agent runs, gives it its own branch and worktree, and supervises all of them until one needs a human.
$ curl -fsSL https://usefiretower.com/install.sh | shXX00#@0@@@%%$%#$#@@@#@#@@@@#@800X8XX88XXX0080000@%@@%$#$#%$#$$$%%@%@@000008xX+:+.:.::. :.:+++..:xxX+x+XXxXX8X8888x+xxx:+.:++:: . . : ..+x+x+xX08000@0##%%%#%@#@#@@0@0800088XXx8XxX8X08@0@#0@#%%#$$$$$$$%%$$$$%@#0#@000
[ WORKFLOW ]
Your Entire Workflow, In One Place.
agent/invite-linkRead from your trackers as you look. Starting one opens a workspace.
ENG-142Add a dark mode toggleweb-appkevinopen2hStartStarting…ENG-139Fix the invite link on mobileweb-appmaraopen5hStartENG-131Rate-limit the webhook receiverapi—open1dStartPage 1Runs remotely. Keeps going when you close your laptop.
[ ANY DEVICE ]
Start On One. Finish On Another.
The agent runs on your server, not on the device you started it from, so every device picks up exactly where another left off. The same conversation, the same diff, the same branch — on a phone on a train.
- macOS
- the desktop client
- Windows
- the same build
- iOS
- review on the move
- Android
- review on the move
12 to pick from. Starting one opens a workspace.
ENG-142acme/web-app2hENG-139acme/web-app5hENG-131acme/api1d[ HOW IT WORKS ]
Four-layer architecture
Top to bottom, this is the whole of it. Each layer is a separate thing that can stop without taking the others with it.
LAYER 04
Your Devices
Mac, Windows, iPhone, Android. Start a session on one, pick it up on another. Closing any of them stops nothing.
.--------------------------------------------. | | | | | | '--------------------------------------------' | | |[ laptop ] closed 6h 41m ago [ phone ] [ desktop ] idlehttpspicked up, 9:41LAYER 03
Firetower Server
The control plane, about 200 MB. It tracks every workspace, and if it goes down it catches up by replay.
.--------------------------------------------. | | | | | | '--------------------------------------------' | | |firetower control plane inbox , logs replayed about 200 MBssh2 waitingLAYER 02
Workers
One per machine you own, reached over SSH. A worker never opens a port and writes its own log before reporting.
.--------------------------------------------. | | | | | | '--------------------------------------------' | | |Mac Studio 192.168.1.57 up Hetzner VM 5.161.44.9 up homelab 10.0.0.12 uptmuxLAYER 01
Agents
Any coding agent, in tmux, on its own git worktree and branch. This is where the work happens.
.--------------------------------------------. | | | | | | '--------------------------------------------'
o Claude Code westlabs/ledger working o Codex westlabs/api working Claude Code acme/web-app u* needs yo
+---------
|. .. . .. --------------
| . .. .. . .. .. -------------
|| .. .. .. .. .. --------------
|| .. .. .. .. .. .. .. --------------
|. .. .. .. . . . .. -------------+
| .. .. .. .. .. .. .. .. .. .. .. .. |
| .. .. .. .. .. .. .. . |
|| ... . .. .. .. .. .. .. .. .. |
|. .. .. .. .. .. .. |
| .. .. .. .. .. .. ... .. .. .. .. .. |
| .. .. . . . .. .. .. . ||
|| .. . .. ... .. .. .. .. .. ||
||. .. .. ... .. .. .. .. .. .. .. .. .. ||
| .. ... .. . . .. . . .. . .. .. ... ||
| .. .. .. .. .. .. .. ... .. ... ||
| . . .. ... .. ... .. |
|| .. .. .. .. .. .. .. .. .. .. |
|. .. .. .. . .. .. .. .. |
| .. ... .. .. .. .. .. .. .. .. .. .. |
| . .. .. .. ... .. .. .. .. |
|| . .. .. ... .. .. .. .. |
||. .. .. ... .. ... .. .. ... .. .. .. ||
|. ... .. .. . . . .. .. .. .. ... .. .. ||
| .. .. .. .. ... .. .. .. .. ... .. .. ||
|| . .. .. ... ... .. .. .. .. ||
===---------------- .. .. .. ... ... .. .. ||
======================---------------- . .. .. .. .. .. .. ... ||
=====================================---------------- . .. .. ... ... ... ... .. |
=====================================---------------- .. ... ... ... ... |
=====================================---------------- ... ... |
=====================================----------------- |
=====================================----------------- |
=====================================--------++
===========================
=======
|.
|
|
||
||
|
|
|.
||
||
|
|
|.
|.
||
||
|.
|.
|.
||
||
|.
|.
|
||
++-------
============----------------
================================----------------
==================================----------------
===================================----------------
===================================-----------------
===================================----------------
===================================----------------- |
===================================
===============
+----
|.
|
||
||
|.
|
|
|.
||
||
||
|.
|.
|
|
||
||
||.
|
|
|.
|.
||
||
|
====---------------
=======================----------------
=================================----------------
=================================----------------
==================================----------------
==================================----------------
==================================----------------
==================================------+
======================
===
+---
||
||
|
|.
|.
|
|
|.
|.
||
||
|
|.
|.
|
|
|.
||
||
||
|
|.
|.
|
|
++-----------
================----------------
================================----------------
================================----------------
================================----------------
================================----------------
=================================----------------
=================================-----------++
===========================
========
LAYER 04 YOUR DEVICES macOS Windows iOS Android
.--------------------------. .----------------------. .--------------------------.
| laptop | | phone | | desktop |
| closed 6h 41m ago | | 9:41 | | idle |
| | | picked up | | |
'--------------------------' '----------------------' '--------------------------'
close any of them. nothing stops.
[ HOW IT WORKS ]
Four-layer architecture
Scroll to take the stack apart, one layer at a time.
SCROLL TO TAKE THE STACK APART v
[ TRY IT ]
Each layer can fail on its own.
Take the flame and set fire to any part of the stack: a laptop, the server, a machine, an agent. Click it again to bring it back. Watch what keeps running.
Tap any part of the stack to set fire to it: a laptop, the server, a machine, an agent. Tap it again to bring it back. Watch what keeps running.
3/3
--:--:--all systems running. pick something to burn.
| | |
'---------------+---------------'
|
.------------------------------------.
| |
| |
'------------------------------------'
|
.---------------+---------------.
| | |
.------------. .------------. .------------.
| | | | | |
| | | | | |
'------------' '------------' '------------'
| | |
.------------. .------------. .------------.
| | | | | |
| | | | | |
'------------' '------------' '------------'
[ laptop ] [ phone ] [desktop]
firetower
Mac Studio Hetzner VM homelab
o claude o codex
https
inbox 2 waiting, logs replayed
ssh
up up up
ledger api web-app
every agent still working
* claude
[ ] [ ] [ ]
| | |
'-----------------------+-----------------------'
|
.-----------------+----------------.
| |
| , |
'-----------------+----------------'
|
.-----------------------+-----------------------.
| | |
.--------+-------. .--------+-------. .--------+-------.
| | | | | |
| . . . | | . . . | | . . . |
'--------+-------' '--------+-------' '--------+-------'
| | |
.---------+--------. .---------+--------. .---------+--------.
| | | | | * |
| / | | / | | / - |
'------------------' '------------------' '------------------'
+ ,
laptop phone desktop
https
firetower
inbox 2 waiting logs replayed
ssh
Mac Studio Hetzner VM homelab
192 168 1 57 5 161 44 9 10 0 0 12
o Claude Code o Codex Claude Code
westlabs ledger westlabs api acme web app
tmux its own worktree on every machine
04 YOUR DEVICES
03 FIRETOWER SERVER
02 WORKERS
01 AGENTS
every agent still working
[ SKILLS LIBRARY ]
One library of skills for your whole team.
Upload your skills once and manage them from Firetower. Share each one with the teammates who need it, and every agent they run picks it up.
|
+
|
+
|
+
|
'
[#] /review-pr
v1.4
Claude Code
Codex
Claude Code
Kimi
the whole team can use it
-------------------- /\ kevin
/__\
-------------------- /\ mara
/__\
-------------------- /\ sam
/__\
-------------------- /\ priya
/__\
_,_____________________,_________,,____________________________,_______________________________________,____,___
.--------------------------------------.
| S K I L L S L I B R A R Y |
|======================================|
| |
|--------------------------------------|
| |
|--------------------------------------|
| |
|--------------------------------------|
| |
|--------------------------------------|
| |
|--------------------------------------|
| |
|--------------------------------------|
| |
'--------------------------------------'
|| ||
/write-tests v2.1 2/4
/migrate-db v0.9 1/4
/changelog v1.0 4/4
/security-scan v1.2 2/4
/deploy-preview v0.3 0/4
Claude Code
[#]
Codex
[#]
[#]
[#] Claude Code
[#]
[ ] + upload a skill
Kimi
,*
'^
'*
**
/\ kevin
- - - / \
- - - - - - /_||_\ + /review-pr
>[#] /review-pr v1.4 4/4 - - - - - - - -
- - - - - -
- - - - - - /\ mara
- - - - - / \
- - - /_||_\ + /review-pr
- -
- - -
- - /\ sam
- - / \
- /_||_\ + /review-pr
-
-
- /\ priya
- / \
/_||_\ + /review-pr
/review-pr
v1.4
Reviews a pull request against the team checklist before anyone else looks at it.
Uploaded by mara
SHARED WITH
Example skills and teammates.
[ TOKEN WATCH ]
Watch what every provider burns, by project, issue and teammate.
Claude Code, Codex, Kimi, Grok and the rest each burn tokens their own way, and none of them can see the others. Firetower watches all of them at once, and keeps the running total.
6.43M
TOKENS TODAY, ALL PROVIDERS
.
. .
.
+
+
+ +
.. +
_________^______________^_____^_^___^_______^_
.^.
_.'|'._
/___|___\
|[ ][ ] |
[=======]
|\ /|
|/ \|
Claude Code 412k/h
`
^ ' "
^ " `'
'
^: ` ;
: ^^
'^ ` ; ; '
" ' `
; : " '
^ ; ' "
'
. .
. . . .
. . . .
& . . . . 8 &
) .
{
}
){( ) .
* &%
( ( * * .
)$ ( ( ( .
* )( % * (
{ { $ )( { *
* } * }} * &
( ) )( { } $ {{
^
%
%# %
%& @
@&#@# # %
&&#% &%@ @# &
##&#@ &#% #@@ &@ %
@#%#@@ #@%% #&&% &@ @@&
. .
. +
. . . . . . . +
.+ + +
+ .+
. + .
. + .
. + . .
. .
.
^ . . ^ + ^ .
. . . .
^ . . ^ . . ^ . . ^ .
. ^ . . ^ . . ^ . ^
^ ^ . . . .
. . ^ . ^ . ^ . ^ . .
. . ^ . ^
'' '. ' ' ' . ' . ' '' . . ' '. '' .
\_/\_/ \_/\_/ \_/\_/ \_/\_/ \_/\_/
________,_____________________,,__________,______,___^,___________,,________________________^___________,,__________,_____,,
.^.
_.' | '._
/_________\
|[ ][ ]|
[==========]
|\ /|
| \ / |
| \/ |
| /\ |
| / \ |
/|/ \|\
412k/h 268k/h 96k/h 54k/h 12k/h
Codex Kimi Grok Others
;
'^
'' "
: :
`" :` "''
^ `"' " ;"
;' ' :' `
' `'^ ^ `` :
': ;; ;; ' ^; :
^^ " `" "" ^ ; "
^ ' " '; "^ :^ `^ ;
^ " '' ^ " ^ ;`
^ : ; " ^ : " `
;` ' " : ` ^ ; '
' :
' 8& #8
( ) . . . . . . . . . . . . . . . . . . . . .
..
%} { '
( .
}& (
{ {( & ' '
${$ %%} $ '
{( $*% {&* } *
}* $$ * &$ % % &
))$ ( $ ( } %(* { ) *
) }) % ** * )*){ & $ * (}$
(}) ($& *& )$ & ) * * } ) }
} { &){ * % } * &{ { ) )
% *$} * ( &% * ) } $ } {
> Claude Code <
# #
#
@# &
%&& &@ &
%% # ##&% #@ @
#&#@ @ &@#% ##@ &@
@&%%# %#%%@@& #@%@ ##% @
&#%&#@&#@# #&%%@@ &@%&@% &#%#% & #&
#%#@@%###& @% &#%#@% #&@@%@&%& @%@@#%@ #@#%#
Claude Code
burning 412k tokens / hour
3.18M
TODAY
##############################
############..................
#######.......................
##............................
Example data. Your tower shows your own.
[ SMALL BY DESIGN ]
Written in Rust. No memory overhead.
A small core, no accumulating terminal daemons, and memory ceilings where the host supports them. In this race, each side carries the memory it uses.
FIRETOWER · carries ~50 MB
A DELPHINIDAE LOOKING COMPETITOR · carries ~1.5 GB
START
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
__________________._____________..______._.
-~~~- --- - -
--- --
.--------------.
| 1.5 GB |
'--------------'
/\
,__/ \_____.
>= `.
'-._________.' FINISH
:
|
:
|
:
|
:
|
:
|
:
|
:
|
:
(~~~) |
:
50 MB
[#]
_/^\_
(oo)
\
/\
/ \
START
:
: ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
: ^ ^ /^\ ^ /^\ /^\ ^ /^\ /^\ ^ ^ /^\ ^ /^\ /^\ ^ /^\ ^ ^ ^ ^ /^\/^\ /^\ /^\ ^ ^ /^\ ^
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
__ ______________________,___,_________________________._____________.____.___.______.____.________________.____________________________,___ ,________
--~~~~-- ----- --~~~~-- ----- --~~~ ~-
- --~~~~~- ----- -~~~~~- ----- -~
-~~
---- -~~~~~-- ---- -~~~~~-- ----
----- --~~~~-- ----- --~~~~-- ----- -
.---------------------.
| app + daemon |
| ~1.5 GB |
'---------------------'
/\
,_____.----' '-------.__
>= o `.
'-.____________.--------'
FINISH |>>
:|>
|
:
|
:
|
:
|
:
|
:
|
:
|
:
|
:
(~~~) |
:
|
:
|
50 MB
[#]
_/^\_
(oo)
|\
/\
/ \
Memory from a macOS user report.
[ SETUP ]
Set Up In Three Steps
STEP 01
Install the server
One command on any Linux box. The control plane runs in about 200 MB, and there is no account to create.
$ curl -fsSL https://usefiretower.com/install.sh | shSTEP 02
Add a machine
Any machine you can SSH into: a VPS, a Mac mini, a box in your closet. Firetower starts a worker there. It never opens a port.
host hetzner-01 reach ssh state worker connected
STEP 03
Connect GitHub, pick an issue
Start from a GitHub issue or a Linear ticket. The agent gets its own branch and worktree, and keeps going when you leave.
ENG-142 Retry webhook deliveries branch eng-142 agent running
No. Firetower runs on your own machine, and there is no account to create.
Give It A Server. Close The Laptop.
Open source and self-hosted, with no account. Clients for macOS, Windows, iOS and Android.