In your pouch
What Carriel recognises
Every key Carriel names by itself, 164 kinds from 84 services and formats, and the shapes it knows without a service.
When you paste, type or drop something into the card, Carriel looks at its shape and proposes four things: a name, a kind, one of the eight categories and, for a key, the env name it maps to. This page lists every shape it knows. It is written from the same rules the app carries, so it changes when they do.
What recognising means
- The shape, never the characters. Carriel matches a public prefix such as
sk-proj-, a length, a checksum, a JWT or a PEM block. The name comes from the rule, such as “OpenAI project key”, never from your value: not its first letters, not its last. - Unknown is left alone. When no rule fits, the name stays empty for you, the category is Other, and the card says “Carriel doesn’t know this one” with the length, such as “A 32-character key”. It never guesses.
- Nothing leaves your Mac. The rules are inside the app. Carriel never looks a key up online and never tries one.
- Some shapes are shared. Several services use the same prefix and length, such as a
whsec_signing secret. When nothing else tells them apart, the card offers each as a choice. A name pasted with the value, such asMISTRAL_API_KEY=…, or the page you copied it from settles it, and a few keys with no prefix of their own are recognised only that way.
Whatever the card proposes, you can change it there before you tuck the thing in.
By category
Each service or format lists the names Carriel gives, what it recognises them by, and the env names it knows. The first env name is the one the card proposes; the others also tell it which service a pasted NAME=value belongs to.
Jump to: AI · Dev tools · Cloud & data · Payments · Accounts · Shapes Carriel knows without a service
AI
⌘1 · 21 kinds of key
| Service or format | Carriel names it | Recognised by | Env names |
|---|---|---|---|
| Anthropic | Anthropic API key | sk-ant-api03- and 95 characters | ANTHROPIC_, also CLAUDE_ |
| Anthropic Admin key | sk-ant-admin01- and 95 characters | ANTHROPIC_ | |
| Claude Enterprise organization key | sk-ant-api01- and 60 to 140 base64url characters | ANTHROPIC_ | |
| AWS | Amazon Bedrock API key | ABSK and 109 to 271 characters | AWS_ |
| Cohere | Cohere API key | 40 alphanumeric characters Only when a name pasted with it, or the page it was copied from, points to Cohere | CO_, also COHERE_ |
| DeepSeek | DeepSeek API key | sk- and 32 hex charactersSame shape as Qwen (DashScope) API key and Moonshot (Kimi) API key: the card asks which | DEEPSEEK_ |
| Gemini API key | AQ.Ab8RN6 and 44 base64url characters | GEMINI_, also GOOGLE_, GOOGLE_ | |
| Gemini API key (AIza) | AIza and 35 base64url charactersSame shape as Firebase API key and Google Maps API key: the card asks which | GEMINI_, also GOOGLE_, GOOGLE_ | |
| Groq | Groq API key | gsk_ and 52 alphanumeric characters | GROQ_ |
| Hugging Face | Hugging Face access token | hf_ and 34 characters | HF_, also HUGGINGFACE_, HUGGING_ |
| Mistral | Mistral API key | 32 alphanumeric characters Only when a name pasted with it, or the page it was copied from, points to Mistral | MISTRAL_ |
| Moonshot | Moonshot (Kimi) API key | sk- and 32 hex charactersSame shape as DeepSeek API key and Qwen (DashScope) API key: the card asks which | MOONSHOT_, also KIMI_ |
| OpenAI | OpenAI project key | sk-proj- and 124 to 156 charactersWith a fixed marker every one carries | OPENAI_, also OPENAI_ |
| OpenAI service account key | sk-svcacct- and 124 to 156 charactersWith a fixed marker every one carries | OPENAI_ | |
| OpenAI admin key | sk-admin- and 124 to 156 charactersWith a fixed marker every one carries | OPENAI_ | |
| OpenAI key (older format) | sk- and 48 to 161 charactersWith a fixed marker every one carries | OPENAI_ | |
| OpenRouter | OpenRouter API key | sk-or-v1- and 64 hex characters | OPENROUTER_ |
| Perplexity | Perplexity API key | pplx- and 48 alphanumeric characters | PERPLEXITY_, also PPLX_ |
| Qwen | Qwen (DashScope) API key | sk- and 32 hex charactersSame shape as DeepSeek API key and Moonshot (Kimi) API key: the card asks which | DASHSCOPE_, also QWEN_ |
| Replicate | Replicate API token | r8_ and 37 alphanumeric characters | REPLICATE_ |
| xAI | xAI API key | xai- and 80 alphanumeric characters | XAI_ |
Dev tools
⌘2 · 72 kinds of key
| Service or format | Carriel names it | Recognised by | Env names |
|---|---|---|---|
| age | age secret key | AGE-SECRET-KEY-1 and 58 characters | SOPS_, also AGE_ |
| Algolia | Algolia admin API key | 32 hex characters Only when a name pasted with it, or the page it was copied from, points to Algolia Same shape as Algolia search-only key (public): the card asks which | ALGOLIA_, also ALGOLIA_, ALGOLIA_ |
| Algolia search-only key (public) | 32 hex characters Only when a name pasted with it points to Algolia Same shape as Algolia admin API key: the card asks which | ALGOLIA_, also ALGOLIA_ | |
| Algolia application ID | 10 characters Only when a name pasted with it points to Algolia | ALGOLIA_ | |
| Apple | App Store Connect API key | A .p8 file, usually AuthKey_ and its 10-character key IDThe card asks which: App Store Connect or Push notifications | ASC_, also APP_, APP_ |
| Apple Push Notification key | A .p8 file, usually AuthKey_ and its 10-character key IDThe card asks which: App Store Connect or Push notifications | APNS_, also APNS_ | |
| Atlassian | Atlassian API token | ATATT3 and 186 charactersCarriel checks its built-in checksum | ATLASSIAN_, also JIRA_, CONFLUENCE_, BITBUCKET_ |
| Bitbucket | Bitbucket app password | ATBB and 28 to 60 characters | BITBUCKET_ |
| Brevo | Brevo API key | xkeysib- and 81 characters | BREVO_, also SENDINBLUE_ |
| Clerk | Clerk webhook signing secret | whsec_ and 24 to 100 base64 charactersSame shape as Stripe webhook signing secret, Svix webhook signing secret and Resend webhook signing secret: the card asks which | CLERK_, also CLERK_ |
| Clerk live secret key Clerk test secret key | sk_live_ or sk_test_ and 40 to 60 alphanumeric charactersSame shape as Stripe secret key: the card asks which | CLERK_ | |
| Clerk live publishable key (public) Clerk test publishable key (public) | pk_live_ or pk_test_ and 16 to 202 charactersDecodes to the app’s frontend address | CLERK_ | |
| Contentful | Contentful management token | CFPAT- and 43 base64url characters | CONTENTFUL_ |
| Databricks | Databricks access token | dapi and 32 to 34 characters | DATABRICKS_ |
| Datadog | Datadog API key | 32 hex characters Only when a name pasted with it, or the page it was copied from, points to Datadog | DD_, also DATADOG_ |
| Datadog application key | 40 hex characters Only when a name pasted with it, or the page it was copied from, points to Datadog | DD_, also DATADOG_, DD_ | |
| Discord | Discord bot token | 58 to 76 characters Its first part decodes to the bot’s numeric ID | DISCORD_, also DISCORD_ |
| Discord webhook URL | Starts with https://discord.com/api/webhooks/ or https://discordapp.com/api/webhooks/, 111 to 137 characters in all | DISCORD_ | |
| Docker | Docker Hub access token | dckr_ and 31 to 44 characters | DOCKERHUB_, also DOCKER_, DOCKER_ |
| Doppler | Doppler token | dp. and 43 to 91 characters | DOPPLER_ |
| Figma | Figma personal access token | figd_ and 40 to 60 base64url characters | FIGMA_, also FIGMA_, FIGMA_ |
| GitHub | GitHub token (classic) | ghp_ and 36 alphanumeric charactersCarriel checks its built-in checksum | GITHUB_, also GH_, GITHUB_ |
| GitHub OAuth token | gho_ and 36 alphanumeric charactersCarriel checks its built-in checksum | GITHUB_, also GH_, GITHUB_ | |
| GitHub App user token | ghu_ and 36 alphanumeric charactersCarriel checks its built-in checksum | GITHUB_, also GH_, GITHUB_ | |
| GitHub App installation token | ghs_ and 36 alphanumeric charactersCarriel checks its built-in checksum | GITHUB_, also GH_, GITHUB_ | |
| GitHub refresh token | ghr_ and 36 alphanumeric charactersCarriel checks its built-in checksum | GITHUB_, also GH_, GITHUB_ | |
| GitHub App installation token | ghs_ and 17 to 2,001 characters | GITHUB_ | |
| GitHub fine-grained token | github_pat_ and 82 characters | GITHUB_, also GH_, GITHUB_ | |
| GitLab | GitLab personal access token | glpat- and 20 to 310 characters | GITLAB_, also GITLAB_, CI_ |
| Grafana | Grafana service account token | glsa_ and 41 characters | GRAFANA_, also GRAFANA_ |
| HashiCorp | Terraform Cloud token | 83 to 93 characters With a fixed marker every one carries | TF_, also TFE_, TF_ |
| Vault token | hvs. and 90 to 120 base64url characters | VAULT_ | |
| JWT | JSON Web Token | A JWT: three parts joined by dots, decoded on your Mac | ACCESS_, also JWT, API_ |
| Kakao | Kakao REST API key | 32 hex characters Only when a name pasted with it, or the page it was copied from, points to Kakao Same shape as Kakao Admin key and Kakao JavaScript key (public): the card asks which | KAKAO_ |
| Kakao Admin key | 32 hex characters Only when a name pasted with it, or the page it was copied from, points to Kakao Same shape as Kakao REST API key and Kakao JavaScript key (public): the card asks which | KAKAO_ | |
| Kakao JavaScript key (public) | 32 hex characters Only when a name pasted with it, or the page it was copied from, points to Kakao Same shape as Kakao REST API key and Kakao Admin key: the card asks which | KAKAO_, also KAKAO_ | |
| Linear | Linear API key | lin_api_ and 40 alphanumeric characters | LINEAR_ |
| Mailgun | Mailgun API key | 50 characters | MAILGUN_ |
| Mailgun API key (older format) | key- and 32 hex characters | MAILGUN_ | |
| Mapbox | Mapbox public token | pk.eyJ and 41 to 341 charactersIts middle part decodes to the account’s JSON | MAPBOX_, also MAPBOX_ |
| Mapbox secret token | sk.eyJ and 41 to 341 charactersIts middle part decodes to the account’s JSON | MAPBOX_, also MAPBOX_ | |
| Naver | Naver client secret | 10 characters Only when a name pasted with it, or the page it was copied from, points to Naver | NAVER_ |
| Naver client ID | 20 characters Only when a name pasted with it, or the page it was copied from, points to Naver | NAVER_ | |
| Notion | Notion integration token | ntn_ and 46 characters | NOTION_, also NOTION_ |
| Notion integration token (older format) | secret_ and 43 alphanumeric characters | NOTION_, also NOTION_ | |
| npm | npm token | npm_ and 36 alphanumeric charactersCarriel checks its built-in checksum | NPM_, also NODE_ |
| OpenPGP | PGP private key | A PEM block labelled PGP PRIVATE KEY BLOCK | GPG_, also PGP_ |
| OpenSSH | SSH private key | A PEM block labelled OPENSSH PRIVATE KEYThe name adds the key type, and whether a passphrase protects it | SSH_, also DEPLOY_ |
| PEM | Private key (PEM) | A PEM block labelled PRIVATE KEY, RSA PRIVATE KEY, EC PRIVATE KEY or DSA PRIVATE KEYThe name adds the algorithm, and whether a passphrase protects it | PRIVATE_ |
| Encrypted private key (PEM) | A PEM block labelled ENCRYPTED PRIVATE KEY | PRIVATE_ | |
| PostHog | PostHog project key (public) | phc_ and 43 alphanumeric characters | POSTHOG_, also POSTHOG_, POSTHOG_ |
| PostHog personal API key | phx_ and 43 to 47 alphanumeric characters | POSTHOG_ | |
| Postman | Postman API key | PMAK- and 59 characters | POSTMAN_ |
| Postmark | Postmark server token | The shape of a UUID: 32 hex characters in five groups Only when a name pasted with it, or the page it was copied from, points to Postmark | POSTMARK_, also POSTMARK_ |
| Pulumi | Pulumi access token | pul- and 40 hex characters | PULUMI_ |
| PyPI | PyPI API token | pypi-AgEIcHlwaS5vcmc and 50 to 1,000 base64url charactersWith a fixed marker every one carries | PYPI_, also PYPI_, TWINE_ |
| TestPyPI API token | pypi-AgENdGVzdC5weXBpLm9yZw and 50 to 1,000 base64url charactersWith a fixed marker every one carries | TEST_ | |
| Resend | Resend webhook signing secret | whsec_ and 24 to 100 base64 charactersSame shape as Stripe webhook signing secret, Svix webhook signing secret and Clerk webhook signing secret: the card asks which | RESEND_ |
| Resend API key | re_ and 27 to 45 characters | RESEND_ | |
| SendGrid | SendGrid API key | SG. and 66 characters | SENDGRID_ |
| Sentry | Sentry DSN (public) | A DSN address on a host under sentry.io, with its public key and project number | SENTRY_ |
| Sentry organization auth token | sntrys_ and 67 to 447 charactersIts middle part decodes to the organization’s address | SENTRY_ | |
| Sentry user auth token | sntryu_ and 64 hex characters | SENTRY_ | |
| Slack | Slack bot token | xoxb- and 46 to 52 characters | SLACK_ |
| Slack user token | xoxp- and 65 to 74 characters | SLACK_ | |
| Slack app-level token | xapp- and 87 to 93 characters | SLACK_ | |
| Slack token (older format) | xoxa-, xoxr-, xoxo- or xoxs- and 10 to 200 characters | SLACK_ | |
| Slack incoming webhook URL | https://hooks.slack.com/ and 29 to 170 characters | SLACK_ | |
| Telegram | Telegram bot token | 41 to 52 characters | TELEGRAM_, also BOT_ |
| Twilio | Twilio Account SID | AC and 32 hex characters | TWILIO_ |
| Twilio API key SID | SK and 32 hex characters | TWILIO_, also TWILIO_ | |
| Twilio auth token | 32 hex characters Only when a name pasted with it, or the page it was copied from, points to Twilio | TWILIO_ |
Cloud & data
⌘3 · 51 kinds of key
| Service or format | Carriel names it | Recognised by | Env names |
|---|---|---|---|
| 1Password | 1Password service account token | ops_eyJ and 250 to 1,003 charactersDecodes to JSON | OP_ |
| AMQP | AMQP URL | A URL with a password in it, starting amqp:// or amqps://, on a host under cloudamqp.com | AMQP_, also RABBITMQ_, CLOUDAMQP_ |
| AWS | AWS access key ID | AKIA, ABIA or ACCA and 16 charactersDecodes to an AWS account number | AWS_ |
| AWS temporary access key ID | ASIA and 16 charactersDecodes to an AWS account number | AWS_ | |
| AWS secret access key | 40 base64 characters Only when a name pasted with it, or the page it was copied from, points to AWS | AWS_ | |
| AWS session token | Starts with IQoJb3JpZ2luX2Vj or FwoGZXIvYXdzE, 113 to 1,016 characters in all | AWS_ | |
| AWS access key (.csv download) | The .csv file the AWS console gives you for a new access key, with both halves of the pair | AWS_ | |
| Cloudflare | Cloudflare user API token | cfut_ and 44 to 56 base64url characters | CLOUDFLARE_, also CF_ |
| Cloudflare account API token | cfat_ and 44 to 56 base64url characters | CLOUDFLARE_, also CF_ | |
| Cloudflare Global API key | cfk_ and 44 to 56 base64url characters | CLOUDFLARE_, also CF_ | |
| Cloudflare token (cfast_) | cfast_ and 44 to 56 base64url characters | CLOUDFLARE_, also CF_ | |
| Cloudflare API token (older format) | 40 base64url characters Only when a name pasted with it, or the page it was copied from, points to Cloudflare | CLOUDFLARE_, also CF_ | |
| Cloudflare Global API key (older format) | 37 to 45 hex characters Only when a name pasted with it, or the page it was copied from, points to Cloudflare | CLOUDFLARE_, also CF_ | |
| DigitalOcean | DigitalOcean personal access token | dop_v1_, doo_v1_ or dor_v1_ and 64 hex characters | DIGITALOCEAN_, also DIGITALOCEAN_, DO_ |
| Fly.io | Fly.io access token | Starts with fo1_, fm1r_, fm1a_ or fm2_, 47 to 1,008 characters in all | FLY_, also FLY_ |
| Firebase API key | AIza and 35 base64url charactersSame shape as Google Maps API key and Gemini API key (AIza): the card asks which | FIREBASE_ | |
| Google Maps API key | AIza and 35 base64url charactersSame shape as Firebase API key and Gemini API key (AIza): the card asks which | GOOGLE_ | |
| Google OAuth client secret | GOCSPX- and 28 base64url characters | GOOGLE_, also AUTH_ | |
| Firebase legacy server key | AAAA and 148 charactersWith a fixed marker every one carries | FCM_ | |
| Google service account key | A JSON key file whose type is service_account, with its private key and client email | GOOGLE_, also GOOGLE_, FIREBASE_, GCP_, GOOGLE_ | |
| Heroku | Heroku API key | HRKU-AA and 58 base64url characters | HEROKU_ |
| Kubernetes | kubeconfig | A kubeconfig file: a kind: Config line and its clusters: | KUBE_, also KUBECONFIG_, KUBECONFIG_ |
| MongoDB | MongoDB Atlas connection string | A URL with a password in it, starting mongodb+srv:// or mongodb://, on a host under mongodb.net | MONGODB_, also MONGO_, DATABASE_ |
| MongoDB connection string | A URL with a password in it, starting mongodb:// or mongodb+srv:// | MONGODB_, also MONGO_ | |
| MySQL | MySQL connection URL | A URL with a password in it, starting mysql:// or mariadb:// | DATABASE_ |
| Neon | Neon API key | napi_ and 60 to 72 alphanumeric characters | NEON_ |
| Neon database URL | A URL with a password in it, starting postgres:// or postgresql://, on a host under neon.tech | DATABASE_ | |
| Netlify | Netlify personal access token | nfp_ and 36 to 40 alphanumeric characters | NETLIFY_ |
| Netlify access token (older format) | 40 to 46 base64url characters Only when a name pasted with it, or the page it was copied from, points to Netlify | NETLIFY_ | |
| PlanetScale | PlanetScale token | Starts with pscale_tkn_, pscale_pw_ or pscale_oauth_, 42 to 77 characters in all | PLANETSCALE_, also DATABASE_, PLANETSCALE_ |
| PlanetScale database URL | A URL with a password in it, starting mysql://, postgres:// or postgresql://, on a host under psdb.cloud or connect.psdb.cloud | DATABASE_ | |
| PostgreSQL | Postgres connection URL | A URL with a password in it, starting postgres:// or postgresql:// | DATABASE_ |
| Railway | Railway token | The shape of a UUID: 32 hex characters in five groups Only when a name pasted with it, or the page it was copied from, points to Railway | RAILWAY_, also RAILWAY_ |
| Railway database URL | A URL with a password in it, starting postgres://, postgresql://, mysql://, redis:// or mongodb://, on a host under rlwy.net, railway.app or railway.internal | DATABASE_ | |
| Redis | Redis URL | A URL with a password in it, starting redis:// or rediss:// | REDIS_ |
| Supabase | Supabase secret key | sb_secret_ and 20 to 64 base64url characters | SUPABASE_ |
| Supabase publishable key (public) | sb_publishable_ and 20 to 64 base64url characters | SUPABASE_ | |
| Supabase anon key (public) | A JWT issued by Supabase with the role anon, decoded on your Mac | SUPABASE_ | |
| Supabase service role key | A JWT issued by Supabase with the role service_role, decoded on your Mac | SUPABASE_ | |
| Supabase access token | sbp_ and 40 hex characters | SUPABASE_ | |
| Supabase database URL | A URL with a password in it, starting postgres:// or postgresql://, on a host under supabase.co or supabase.com | DATABASE_ | |
| Tailscale | Tailscale auth key | tskey-auth- and 29 to 73 characters | TS_, also TAILSCALE_ |
| Tailscale API access token | tskey-api- and 29 to 73 characters | TAILSCALE_, also TS_ | |
| Tailscale OAuth client secret | tskey-client- and 29 to 73 characters | TS_ | |
| Upstash | Upstash QStash token | eyJVc2VySUQiOi and 30 to 400 charactersDecodes to JSON | QSTASH_ |
| Upstash Redis REST token | 51 to 102 characters Only when a name pasted with it, or the page it was copied from, points to Upstash | UPSTASH_, also KV_ | |
| Upstash Redis URL | A URL with a password in it, starting rediss:// or redis://, on a host under upstash.io | REDIS_, also UPSTASH_, KV_ | |
| URL | Database connection URL | A URL with a password in it, starting mssql://, sqlserver:// or clickhouse:// | DATABASE_ |
| Link with a password in it | A link with a user name and password in it, starting https://, http://, ftp://, sftp://, smtp:// or smtps:// | SERVICE_, also DATABASE_ | |
| Vercel | Vercel access token | 24 alphanumeric characters Only when a name pasted with it, or the page it was copied from, points to Vercel | VERCEL_ |
| Vercel Blob read-write token | vercel_blob_rw_ and 47 characters | BLOB_ |
Payments
⌘4 · 19 kinds of key
| Service or format | Carriel names it | Recognised by | Env names |
|---|---|---|---|
| Lemon Squeezy | Lemon Squeezy API key | A JWT: three parts joined by dots, decoded on your Mac Only when a name pasted with it, or the page it was copied from, points to Lemon Squeezy Same shape as JSON Web Token: the card asks which | LEMONSQUEEZY_ |
| Paddle | Paddle live API key Paddle sandbox API key | pdl_live_apikey_ or pdl_sdbx_apikey_ and 47 to 67 characters | PADDLE_ |
| PayPal | Braintree access token | access_token$ and 57 to 60 characters | BRAINTREE_ |
| PayPal client secret | 80 characters Only when a name pasted with it, or the page it was copied from, points to PayPal | PAYPAL_ | |
| PayPal client ID | 80 characters Only when a name pasted with it, or the page it was copied from, points to PayPal | PAYPAL_ | |
| Paystack | Paystack live secret key Paystack test secret key | sk_live_ or sk_test_ and 40 hex characters | PAYSTACK_ |
| Paystack live public key Paystack test public key | pk_live_ or pk_test_ and 40 hex characters | PAYSTACK_ | |
| Shopify | Shopify Admin API access token | shpat_, shpca_ or shppa_ and 32 hex characters | SHOPIFY_, also SHOPIFY_ |
| Shopify app shared secret | shpss_ and 32 hex characters | SHOPIFY_ | |
| Square | Square access token | Starts with EAAA or sq0atp-, 29 to 64 characters in all | SQUARE_ |
| Square application secret | sq0csp- and 43 base64url characters | SQUARE_ | |
| Stripe | Stripe live secret key Stripe test secret key | sk_live_ or sk_test_ and 10 to 247 alphanumeric charactersSame shape as Clerk secret key: the card asks which | STRIPE_, also STRIPE_, STRIPE_ |
| Stripe live restricted key Stripe test restricted key | rk_live_ or rk_test_ and 10 to 247 alphanumeric characters | STRIPE_, also STRIPE_ | |
| Stripe organization key | sk_org_ and 20 to 247 characters | STRIPE_ | |
| Stripe live publishable key (public) Stripe test publishable key (public) | pk_live_ or pk_test_ and 10 to 247 alphanumeric characters | STRIPE_, also STRIPE_ | |
| Stripe webhook signing secret | whsec_ and 24 to 100 base64 charactersSame shape as Svix webhook signing secret, Clerk webhook signing secret and Resend webhook signing secret: the card asks which | STRIPE_, also STRIPE_ | |
| Svix | Svix webhook signing secret | whsec_ and 24 to 100 base64 charactersSame shape as Stripe webhook signing secret, Clerk webhook signing secret and Resend webhook signing secret: the card asks which | SVIX_, also WEBHOOK_ |
| Toss Payments | Toss Payments live secret key Toss Payments test secret key | Starts with live_gsk_, test_gsk_, live_sk_ or test_sk_, 24 to 69 characters in all | TOSS_, also TOSS_ |
| Toss Payments live client key (public) Toss Payments test client key (public) | Starts with live_gck_, test_gck_, live_ck_ or test_ck_, 24 to 69 characters in all | TOSS_ |
Accounts
⌘5 · 1 kind of key
| Service or format | Carriel names it | Recognised by | Env names |
|---|---|---|---|
| 1Password | 1Password Secret Key | A3- and 36 to 37 characters | OP_ |
Shapes Carriel knows without a service
These come from the shape of what you paste, type or drop, never from a service’s rules.
| Carriel names it | Kind | Recognised by | Category |
|---|---|---|---|
| Wi-Fi password | Password | A Wi-Fi QR string, WIFI:S:…;P:…;;. The network becomes where it’s used. | Home |
| Recovery codes | Recovery codes | 4 to 24 one-time codes of the same shape, one or two to a line, numbered or not, with up to three other lines such as a heading. A file name or page that names a service adds it to the name, such as “GitHub recovery codes”. | Accounts |
| Apple Account recovery key | Key | 28 capital letters and digits in seven groups of four. Carriel takes it only once you’ve added a pouch password. | Accounts |
| App-specific password | Password | Apple’s shape: four groups of four lower-case letters, joined by hyphens. | Accounts |
| Two-factor setup key | Key | An otpauth:// link from a two-factor QR code. Carriel keeps it and makes no codes. | Accounts |
| License key | Key | Four to six groups of four to six capital letters and digits, joined by hyphens, with at least one letter and one digit. A Carriel license is different: the card offers Use License and never keeps it as a thing. | Other |
| Password | Password | Two or three lines such as username: … and password: …, with an optional site: …, labelled in English or Korean: the account and the site go in their own fields. Also a value named password, pin or passcode, and anything else you type into the card yourself. Home when the words say Wi-Fi, router, door, garage, gate or alarm. | Accounts or Home |
| A 6-digit code | Password | A number of 4 to 8 digits, such as a PIN or a door code. The number in the name is its length. | Accounts or Home |
| A 32-character key | Key | Anything key-like that no rule knows. The number in the name is its length, and the title stays empty for you. A name pasted with it becomes the title and can choose the category: OPENAI_ORG_ID becomes “OpenAI org ID”, in AI. | Other |
| Public key | Key | An SSH public key line, an age public key, or a PEM block labelled PUBLIC KEY. | Dev tools |
| Certificate | Key | A PEM block labelled CERTIFICATE. | Dev tools |
| Note | Note | Text that isn’t a key: a sentence, a link, an email address, a path, a model name, a UUID, a hash, a database URL without a password, several lines no rule knows, or a key or password over 64 KB. | Other |
Blocks of names and values
A paste of several lines splits into one thing per secret, each named as above, or stays whole as one note whose names stay visible and whose values don’t. With 2 to 10 lines and at least one key Carriel recognises, the card proposes the split; otherwise it proposes the note. Settings that aren’t secrets, like PORT, come unticked as “Not a secret”.
| Carriel names it | Format |
|---|---|
| .env block | Lines of NAME=value, with or without export. |
| YAML block | NAME: value lines, such as a compose file’s environment. |
| JSON block | A JSON object of names and values, such as an MCP server’s configuration. |
| docker -e flags | docker run -e NAME=value flags. |
| fish set -x lines | set -x NAME value lines. |
| PowerShell $env: lines | $env:NAME = "value" lines. |
| credentials file | An INI-style file of name = value lines under [sections], such as AWS’s credentials file. |
A single NAME=value or name: value line keeps its name only when a person plainly wrote one: CAPS_WITH_UNDERSCORES, one secret word such as password or token, or words joined by _, - or . with a secret word among them, such as db_password. That name becomes the env name, and the title when no rule names the value. Anything else, such as a password with = in it, stays one value.
Files
A dropped file is named by its type, and its title is its file name without the extension. A file with no extension is recognised by its first bytes (PDF, PNG, JPEG, GIF, TIFF, HEIC, ZIP). A text file of 64 KB or less is also read as text, so a key, recovery codes or an .env block inside become what they are.
| Carriel names it | Files | Category |
|---|---|---|
| App Store Connect API key Apple Push Notification key | .p8The card asks which: App Store Connect or Push notifications. | Dev tools |
| Certificate bundle (.p12) | .p12, .pfxThe card has a field for its password, which you may leave empty. | Dev tools |
| Provisioning profile | .mobileprovision, .provisionprofile | Dev tools |
| VPN configuration | .ovpn, .mobileconfig | Dev tools |
| Certificate | .cer, .crt, .der | Dev tools |
| .env block | .env, .env.local, prod.envAny .env file: it splits as a pasted block does. | Dev tools |
| PDF document | .pdf | Documents |
| PNG image, JPEG image and so on | .png, .jpg, .jpeg, .heic, .heif, .gif, .tif, .tiff, .webp, .bmp | Documents |
| Archive | .zip, .gz, .tgz, .7z, .rar, .dmg | Documents |
| Text file | .txt, .md, .rtf | Documents |
| JSON file, CSV file and so on | Any other file, by its extension. | Documents |
What Carriel tidies in a paste
Before it looks, Carriel takes off quotes around a value, a Bearer or Token in front of it and an export before a name, drops a byte-order mark and zero-width characters at the edges, and turns Windows line endings into plain ones. It changes the inside of a value only when the result then matches a rule exactly, such as a key a terminal wrapped onto two lines.
Something missing?
If a key you keep isn’t here, Carriel still takes it: it leaves the name for you and puts it in Other. Write to Support with the service’s name and where its keys are made, never a key itself.