ef CLI and creating an API key both hand out access that keeps working after you close the browser. Before either one, ElasticFunnels checks that it’s really you, even when you are already signed in.
Before you start
- Two-factor authentication must be on for your account: an authenticator app, a passkey, or both. If it’s off, the app opens the setup first and continues once you are done.
- Keys and CLI connections are created from a signed-in browser session only. An existing API key or CLI token can’t create new ones.
The “Confirm it’s you” step
When you click Connect or Create API key, a window asks you to confirm it’s you. What it offers depends on your account:
With a passkey, your device asks for your fingerprint, face or PIN. A passkey that skips that check is refused.
One confirmation lasts 10 minutes. Within that time you can connect more devices or create more keys without being asked again. Signing in with your second factor counts too, so right after sign-in you may not see the window at all.
When you confirm, the action you started (the connection or the new key) goes through on its own. If you click Cancel instead, nothing is created and the app shows Action not saved.
Connect the ef CLI
Theef CLI keeps a project’s pages on your computer so you, or an AI tool such as Claude Code or Codex, can edit and publish them. Each computer gets its own connection to one project, which you can disconnect on its own.
1
Install the CLI
2
Start the connection
In an empty folder for the project, run:The terminal prints a short code and a link, and opens the link in your browser:The code expires after 10 minutes. If the browser doesn’t open, copy the link yourself.
3
Check the request
The Connect a device page shows the device name, the tool, the IP address it comes from and the code. Make sure the code matches the one in your terminal. If it doesn’t, or you didn’t start this, click Cancel.
4
Pick the project
Under Which project?, choose the project this computer may reach. The device can read and change that project the same way you can, and nothing else.
5
Connect and confirm it's you
Click Connect, then confirm with your passkey or code as described above.
6
Go back to the terminal
The page shows Device connected. The terminal picks it up by itself and prints
Signed in to <your project>.A computer without a browser
For a remote server where you can’t open the approval page:- In the app, go to Settings → AI tools, click Show advanced options, and under Computer without a browser click Create a one-time code. This also asks you to confirm it’s you.
-
Copy the command it shows and run it on the server:
Reconnect a folder
If a computer was disconnected, or its access expired, commands stop with a message telling you to sign in again. Run this in the project folder:ef login --code <code> on a machine without a browser.
See or disconnect your devices
Open Account settings from your account menu and choose Connected devices. Each row shows the device, its project, and when it connected and was last used. Disconnecting a device asks you to confirm it’s you, and stops that computer at once without touching your other connections.Create an API key
API keys are for your own scripts and integrations. Send the key in theEF-Access-Key header (see Authentication).
1
Open the API settings
In your project, go to Settings → API and click Create API key.
2
Name it
Give it a name that says where it will be used, such as
reporting server.3
Choose the projects
Under Projects, pick Only this project, Projects I pick, or All projects I can access, now and later.
4
Choose the access
Under Access, pick Read and write or Read-only.
5
Create and confirm it's you
Click Create API key, then confirm with your passkey or code.
6
Copy the key now
The Copy your new key window shows the full key once. Store it in a password manager or your integration’s settings, then click I’ve stored it. After that the page shows only the first and last characters.
Older full-access keys
A key marked Full access (legacy) can do everything your account can do, in every project. It keeps working. Regenerate gives it a new value and Convert to scoped key replaces it with a key limited to the projects and access you pick. Both ask you to confirm it’s you, and both stop the old value at once, so update your integrations right after.Troubleshooting
I cancelled the passkey prompt
I cancelled the passkey prompt
The window stays open and nothing counts as a failed try. Click Confirm with passkey again, or use the link below it to enter your authenticator code or a recovery code.
"Too many attempts. Try again in 15 minutes."
"Too many attempts. Try again in 15 minutes."
Five failed tries within 15 minutes, counting wrong codes and failed passkey checks together, lock this step until the 15 minutes are up. A successful confirmation resets the count. Switching between passkey and code does not reset the count. Wait, then start the connection or key again.
My browser doesn't support passkeys
My browser doesn't support passkeys
Use Use authenticator code instead (or Use a recovery code instead on a passkey-only account). To use your passkey, open the link in a recent version of Chrome, Safari, Edge or Firefox.
"This link is no longer valid"
"This link is no longer valid"
The request expired (after 10 minutes) or was already used. Run
ef init or ef login again for a new code.The terminal says "Sign-in was declined in the browser"
The terminal says "Sign-in was declined in the browser"
Someone clicked Cancel on the Connect a device page. Nothing was connected. Run the command again.
The window says my account is restricted
The window says my account is restricted
Some new accounts can’t create keys or connect devices until access is granted. Use Request access in that window and tell us what you need it for.