| name | navvi-signup |
| description | Create a new account on a web service using Navvi — generates credentials in gopass, fills signup form, handles CAPTCHAs, registers the account. Use when asked to sign up, create an account, or register on a website. |
Navvi Signup
Account creation skill. Creates a new account on a service using Navvi MCP tools and gopass credentials.
First Steps (ALWAYS)
- Read the persona brief — this tells you who you are, your email, your accounts, your history:
mcp__navvi__navvi_milestone(action="brief", persona="{persona}")
Use the primary email from the brief when signing up. Never guess from the persona name.
- Unlock atomic tools — you'll need them for form filling:
mcp__navvi__navvi_atomic(enable=true)
Prerequisites
- Navvi container must be running (
mcp__navvi__navvi_start)
- GPG/gopass must be initialized (needs
NAVVI_GPG_PASSPHRASE in MCP config)
Workflow
Step 1: Check for existing account
Read persona://{persona}/state
If an account already exists for this service, report it and stop.
Step 2: Generate credentials
mcp__navvi__navvi_creds(action="generate", entry="navvi/{persona}/{service}", username="{chosen_username}")
Password is created inside the container and NEVER appears in your context.
Step 3: Navigate to signup page
mcp__navvi__navvi_open(url="https://{service}/signup")
Take a screenshot to see the page. If no obvious signup URL, try the homepage and look for a "Sign Up" or "Create Account" link.
Step 4: Fill the signup form
mcp__navvi__navvi_creds(action="autofill", entry="navvi/{persona}/{service}")
If autofill fails (non-standard form, multiple forms with same field names):
- Use
navvi_find to locate the correct form fields
- Use
navvi_fill for username/email only
- For password: use
navvi_creds(action="autofill") with explicit selectors, or tab to the password field and use autofill
- NEVER type passwords manually
Custom Dropdowns (Fluent UI, React Select, etc.)
Do NOT use navvi_browse for custom dropdowns — it gets stuck in scroll loops.
Use atomic tools directly:
- Find the dropdown trigger:
navvi_find("[role=combobox]") or navvi_find("select")
- Click to open it:
navvi_click(x, y)
- Find all options:
navvi_find("[role=option]", all=true)
- Find and click the desired option by text match
- If the option list is long, use
navvi_find("[role=option]:text('Chile')") or scroll within the dropdown
For native <select> elements: type the first letter(s) of the option after clicking to jump to it.
Step 5: Screenshot and verify form is filled
mcp__navvi__navvi_screenshot()
Read the screenshot to confirm fields are filled correctly before submitting.
Step 6: Submit the form
Click the submit button or press Enter:
mcp__navvi__navvi_find(selector="button[type=submit], input[type=submit]")
mcp__navvi__navvi_click(x=..., y=...)
Step 7: Handle CAPTCHAs
Step 8: Verify account creation
Screenshot and confirm success. Look for welcome messages, dashboard, confirmation page.
Step 9: Register the account
mcp__navvi__navvi_account(action="add", persona="{persona}", service="{service}", creds_ref="gopass://navvi/{persona}/{service}")
Step 10: Record milestone
After successful signup, always add a milestone with full details:
mcp__navvi__navvi_milestone(action="add", persona="{persona}", event="Signed up for {Service}", detail="Username: {username}\nEmail: {email}\n\nSubscriptions/choices made during signup.", url="https://{service}/profile/{username}", tags="first,{service},signup", screenshot=true)
Include ALL details: username, email, any profile choices, subreddits joined, etc. This builds the persona's life story.
Rules
- NEVER type or display passwords — always use gopass via autofill
- Generate credentials BEFORE navigating to the form (step 2 before step 3)
- If a page has multiple forms (login + signup), use
navvi_find with specific selectors to target the right one
- Always screenshot before and after submitting
- If email verification is required, report it — don't attempt to check email
Related Skills
- navvi-login — use after signup to verify the new account works
- navvi-browse — for general browsing and post-signup tasks
Response Format
Return:
- Account creation result (success/failure/verification needed)
- Username used
- Service URL
- Screenshot path
- Any issues encountered (CAPTCHA, email verification, etc.)