navvi-signup
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_PASSPHRASEin 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_findto locate the correct form fields - Use
navvi_fillfor 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]")ornavvi_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
- reCAPTCHA v2: find and click the checkbox up to 3 times:
If an image challenge appears or 3 clicks fail →mcp__navvi__navvi_find(selector="iframe[title*=reCAPTCHA]") mcp__navvi__navvi_click(x=..., y=...)navvi_vnc()for human help - Arkose Labs / Human Security (press-and-hold): use
navvi_hold(x, y, duration_ms=5000)on the verify button. These CAPTCHAs typically appear AFTER filling all form fields, not on intermediate Next buttons. - Other CAPTCHAs (hCaptcha, image puzzles):
navvi_vnc()immediately
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_findwith 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.)