ravi CLI that is logged in and pointed at that project. From there you can publish pages and build interactive pages with Bases.
What the Console is
The Ravi Console at console.ravi.bot is where your organization lives. Your daemon, agents and channels stay on your machines. The Console holds what people and machines share:- Organization. Owns members, projects and the machines linked with
ravi login. Every member has a role. See Ravi for organizations. - Project. Holds your Pages and Bases. Each project has one default Pages host,
<org-slug>-<project-slug>.ravi.page. Every page you publish is a route on that host, such ashttps://acme-website.ravi.page/report. - Library. Skills, agent definitions, themes and widgets shared with every machine in the organization or in one project. See Machines and shared agents.
- Roles.
owner,adminanddevelopercan create projects and publish.viewerandbillingcannot. Onlyownerandadmincan rename the organization or add members.
ravi login links this machine and its CLI to your Console user, in one organization. It has nothing to do with your model provider: Claude or Codex credentials are configured separately, see Install Ravi.
Logging in and publishing from your own terminal do not need the daemon. Agents publishing on your behalf do, see Let your agent publish.
Create your account and organization
Organizations are created only in the web Console. Members are invited there or withravi invites create, see Share a page with one person.
1
Sign up
Open console.ravi.bot/sign-up. The sign-in screen is hosted by WorkOS AuthKit and offers email, Google, GitHub and SSO.If someone already added your email to their organization, sign up with that same email and you land in their organization. Skip to step 4.
2
Create your organization
A new account with no organization sees Create your organization. Follow it to finish the organization setup, then come back to
console.ravi.bot.3
Rename the organization slug before anything else
Open the organization’s settings,
console.ravi.bot/<org>/settings, set Name and Slug (for example acme), and save. Console URLs inside an organization start with its slug, so a link you share opens that organization for whoever follows it.4
Check your role
The members list on
/<org>/members shows each member’s role. You need owner, admin or developer to create a project and publish.5
Create a project
Open
/<org>/projects/new and fill Name, Slug, Description and Default visibility (private, public or protected link; private is preselected). The form shows the host it will create, <org-slug>-<project-slug>.ravi.page.Pick public if the first pages on this project are meant for anyone. The host default caps every route on it, so a private host keeps even a public route private. See Visibility.owner or admin opens /<org>/members, enters an Email and a Role, and clicks Add member. The person does not need an account yet.
You can also create the project from the terminal once you are logged in (next section):
ravi cloud projects is the older name of the same commands and still works.
Pass --default-page-site without a value. The host is always <org-slug>-<project-slug>, and the Console rejects any other name. Without --default-page-site, the first ravi pages ship creates the host with the visibility of that ship.
Link your CLI
1
Log in
--timeout-seconds 600.On a server or over SSH, use ravi login --no-open. It prints the URL and code without opening a browser, and you approve from any other device.2
Check who you are
Console, User, Organization, Installation, Scopes and Access token expires. It does not show your role or the selected project; use /<org>/members for the role and ravi cloud scope show for the project.3
Choose the default project
ravi login saves it as the global default for you. With two or more projects, ravi pages and ravi bases commands fail until you set a default or pass --project.Project scope
The default project can be set at four levels:ravi pages or ravi bases command also takes --project <slug>, which wins over everything. Otherwise Ravi uses RAVI_CONSOLE_PROJECT_REF if it is set, then the saved defaults (session, agent, workspace, global), then the only project your account can see. ravi cloud scope explain prints the whole chain.
There is no separate command that links a local folder to a Console project: the scope is the link. ravi link is something else. It links the author of a chat message to their own Console account: Ravi sends them a private link and they approve it in the browser. You do not need it for Pages or Bases.
Log in again when scopes change
The Console decides which permissions (scopes) your CLI gets at the moment you log in. A login made before a feature existed does not gain its scopes later. Look at theScopes: line of ravi whoami:
If any are missing, run
ravi login again. Symptoms of an old login:
ravi bases ...fails withPROJECT_ACCESS_DENIED(orORG_ACCESS_DENIED) and suggestsrun 'ravi login' again so this installation gets console.bases.read and console.bases.write.- Bases row events never reach the agent. The daemon skips Inbox polling without an error when the inbox scopes are missing.
Where the login lives
Credentials are stored under~/.ravi/cloud-auth/: active.json points to the active user, and users/<user-id>/credentials.json holds the tokens (file mode 0600). RAVI_STATE_DIR moves ~/.ravi. The access token lasts 15 minutes and refreshes on its own; the refresh token lasts 30 days.
Your agents publish through the daemon, which reads the daemon’s ~/.ravi. Run ravi login as the same OS user as the daemon (same HOME, or the same RAVI_STATE_DIR). On a VM or container, run ravi login --no-open there and approve in your own browser.
A login belongs to one organization, the one you picked on Authorize local Ravi. To work in another organization, run ravi login again and pick it. Saved project defaults are kept per organization.
Log out
Common problems
The browser says No organization available
The browser says No organization available
Your account is not a member of any organization yet. Open console.ravi.bot, create your organization (or ask an owner to add you), then run
ravi login again.Login code expired
Login code expired
The code lasts 10 minutes. Run
ravi login again for a new one.ravi login --json shows no URL or code
ravi login --json shows no URL or code
With
--json, the URL and code are not printed while the CLI waits; they only reach the browser it opens. On a headless machine that leaves you no way to approve. Log in without --json.pages ship says Missing Console project, but you never logged in
pages ship says Missing Console project, but you never logged in
Without a login and without
--project, ravi pages reports PAYLOAD_INVALID: Missing Console project instead of asking you to log in. Run ravi whoami; if it says AUTH_REQUIRED, run ravi login first, then set the project scope.You renamed the organization slug after logging in
You renamed the organization slug after logging in
Run
ravi login again before your first ravi pages ship. Until its next token refresh (up to 15 minutes), the CLI can still build the project host name from the old slug when it has to create that host.