Security

We built this for people who don’t trust AI with their passwords. Neither do we.

Agents get sessions, not passwords. Here’s exactly what that means.

Your password is locked in a vault

AES-256-GCM
  • Each site’s password is encrypted with its own key.
  • That key is encrypted again with a master key kept separate from the database. If the database leaked on its own, the passwords would still be unreadable.
  • Agents never see it. It’s unlocked only for the moment an approved session connects, inside ArtiFTP, and never sent to the agent, shown in chat or written to logs.

Rules on every action

You decide what gets through.

Every file action is checked against your rules for that folder. Anything outside them is refused, and the agent is told why. The one exception is an away window you turn on yourself. It approves actions your rules would normally refuse, but it still can’t reach anything outside your site’s folder.

Session folder/public_html/menu
Agent asks towrite ../config/settings.php
That really means/public_html/config/settings.php
ResultREFUSED · Outside your folder
REFUSEDOutside your rules
REFUSEDAllow once already used
REFUSEDDoesn’t match what you allowed once
REFUSEDPath outside the site folder

In plain words

Seven things you can count on.

Your password is locked in a vault.

Each site’s password is encrypted with its own AES-256-GCM key, and that key is encrypted again with a master key kept separate from the database.

Agents never see it.

The password is unlocked only for the moment an approved session connects, inside ArtiFTP. It’s never sent to the agent, shown in chat or written to logs.

Rules on every action.

For each folder you choose list, read, write and delete. Everything starts denied. Anything outside your rules is refused with a reason, except during an away window.

Allow once means once.

An exception is granted on the approve screen, for one operation the agent listed in its request. It works on that exact file, at that exact size, one time. A second attempt is refused.

Nothing happens without your OK.

Every session needs your approval, from the emailed link on your phone or in the app. If you turn on an away window, you’re giving that OK ahead of time, for a period you set, up to 7 days. You can switch it off anytime, and anything it opened ends with it.

Sessions end.

Set a timer, or keep it open until you revoke. You can revoke any session instantly.

A record of everything.

Your Activity screen lists every request, approval, file operation and refusal, and you can filter it.

Activity screen

If it happened, it’s on the list.

ridgeline-studio.dev · ActivityAllRequestsFilesRefused
10:02 AMREQUEST/public_html/classesCursor agent · “Add the new Saturday class times”
10:03 AMAPPROVEDsession · 2 hoursby you, from your phone
10:04 AMWRITEclasses/schedule.html
10:04 AMREFUSEDwrite ../../backup.sqlPath outside the site folder
10:05 AMREFUSEDwrite classes/schedule.htmlDoesn’t match what you allowed once
10:09 AMREVOKEDsession lockedby you

Early access

Stop being the upload step.

Your agent does the work. You keep the final say.

Get early access

Name, business, email, and which AI agent you use. We’ll open seats in waves.

We’ll email you when seats open. No spam.