Put greeting.mjs in the project your agent will use, then open a terminal in that same directory. Choose the route that matches where you are sitting.
Before you begin
Section titled “Before you begin”You need the project directory on the Firehose server. For the practice route, first create hello-firehose through New git project in New session, as described in Start your first session. Its path combines the Location you selected and the project name.
Ask your operator for the full path if you do not know it. Do this before copying a file. The examples below use ~/projects/hello-firehose; replace it with your actual path.
| Your situation | Use this route |
|---|---|
| You can open a terminal on the server computer | Work on that computer |
| You use another computer and already have SSH access | Copy over SSH |
| You are on a phone or do not have terminal access | Ask your operator |
You can also select the Terminal tab at the top of a session to open a shell in that session’s folder for these location and command checks. Attaching a file to Chat stages prompt material; it does not place greeting.mjs at the project root for this tutorial.
SSH is a separate way to sign in to the server from a terminal. Access to the Firehose app or its Tailscale network does not by itself establish an SSH login. The shell examples here use a macOS or Linux terminal with Git and Node.js available on the server.
Work on the server computer
Section titled “Work on the server computer”-
Open your computer’s terminal application.
-
Change into the project directory:
Terminal window cd ~/projects/hello-firehosepwdgit rev-parse --show-toplevelBoth printed paths should identify
hello-firehoseon the server. Ifcdfails, stop and confirm the path; do not continue in the terminal’s previous directory. -
Open a text editor, paste the quickstart’s greeting code, and save it in that directory as
greeting.mjs, without an extra.txtextension. Alternatively, save the downloadable file there. -
Continue with Check the file.
Copy from another computer with SSH
Section titled “Copy from another computer with SSH”Have your operator confirm your SSH username, server hostname, login method, and destination directory first. YOUR_USER and YOUR_SERVER below are placeholders. Use the operator’s SSH address, not a documentation URL or the hosted app URL.
-
Download greeting.mjs to your computer. Open a terminal in the folder where you saved it.
-
Sign in to check the destination:
Terminal window ssh YOUR_USER@YOUR_SERVEROn the server, run:
Terminal window cd ~/projects/hello-firehosepwdgit rev-parse --show-toplevelexitFor a first SSH connection, verify the host identity with your operator before accepting it. If login fails, send the error to the operator; Firehose’s Connect button cannot repair SSH access.
-
Back in your computer’s terminal, copy the file:
Terminal window scp ./greeting.mjs YOUR_USER@YOUR_SERVER:projects/hello-firehose/greeting.mjsThe destination after
:is relative to that SSH account’s home directory. Replace it if your operator supplied a different path. This command replaces a file with the same name, so use it only for the intended practice file. -
Sign in again with
ssh YOUR_USER@YOUR_SERVER, change into the same project directory, and check the file below.
Ask your operator to place the file
Section titled “Ask your operator to place the file”Send the operator the sample download and your project name through your usual support channel. Ask them to save it in the server’s project directory and run the checks below. Ask for the full path and printed greeting in their reply.
Once they confirm that result, continue in Firehose from your phone or browser. You do not need to set up SSH on your phone just to read an agent’s explanation.
Check the file
Section titled “Check the file”In the server terminal, inside the intended project, run:
pwdls -l greeting.mjsnode --input-type=module -e "import { greet } from './greeting.mjs'; console.log(greet(' Ada '));"Expected result: the path is your project, the file is present, and the last command prints Hello, Ada!.
If the file is missing, check the save location and extension. If node is unavailable, ask the operator to supply Node.js before proceeding. If the greeting differs, compare the file with the original sample before asking an agent to explain it.
Return to Add the example file to commit the baseline. For a new worktree later, repeat the location check using that worktree’s path; its files live in a different directory.