What CarinaOS Go is
CarinaOS Go is an iOS app for licensed cannabis cultivators. It does one job well: recording the METRC compliance events that happen on the grow floor — plantings, flips, moves, waste, harvests, and packages — and filing them to METRC, right from your phone.
Go is built by an operator who runs a licensed commercial grow, so it's shaped around what actually happens between the rows. Two things make it different from filing at a desk: you scan a tag and act, and it keeps working with no signal — the reality of cultivation in metal buildings and back rooms.
What Go is for
- Recording METRC compliance actions from where the work happens.
- Working offline in dead zones, then submitting to METRC automatically when you reconnect.
- Scanning a plant or package tag and taking the right action in a couple of taps.
What Go is not
Go is a focused, standalone METRC compliance tool — that's the whole point. It isn't your full back office. Broader operations software — room and cycle setup, staff and task boards, dashboards, analytics, and sensor data — lives in the CarinaOS full suite (Ops Hub), a separate web product. Go doesn't require the Hub and isn't a slice of it. If METRC compliance is what you need on the floor, Go stands on its own. See Go & the full suite.
CarinaOS is software only. It never handles plant material — it records what your team does and files it to METRC on your behalf.
Before you start
You'll get through setup fastest with these ready:
- An iPhone running a current version of iOS.
- An active METRC license in a supported state. Go writes directly to METRC across 17 states. Not sure yours is live? Ask support before you subscribe.
- Your METRC user API key for the license you'll manage — you generate this inside METRC. See Connect METRC.
- A CarinaOS Go account, or just start the 14-day free trial from the app.
- A connection at some point in the day. Go works offline while you're on the floor, but it needs to reach the internet to sync fresh data and to file your queued actions to METRC.
You must already be enrolled and licensed in METRC for your state. Go connects to your existing METRC account — it doesn't create your state license or enroll you in track-and-trace.
Five steps to your first entry
- Install the app. Search the App Store for “CarinaOS Go,” or open App Store ID 6786339119.
- Start your trial and sign in. Create your Go account and begin the 14-day free trial.
- Connect METRC. Paste your METRC user API key, then choose your state and license.
- Let it sync. Go pulls in your current plants, batches, packages, and tags. Confirm they look right.
- Scan and act. Scan a plant or package tag, take an action, and submit. You're live.
Download & install
CarinaOS Go is on the Apple App Store for iPhone.
- Open the App Store on your iPhone.
- Search CarinaOS Go, or go directly to App Store ID
6786339119. - Tap Get to install, then Open.
Keep automatic updates on so you always have the latest METRC field support and fixes.
Go is iPhone-only today. If your crew is on Android, the CarinaOS full suite (Ops Hub) runs in any mobile browser in the meantime. See Go & the full suite.
Free trial & subscription
CarinaOS Go is $99 per month after a 14-day free trial. The trial is full access — connect METRC and run real entries during it.
How billing works
- Your subscription runs through your Apple ID, like any App Store subscription.
- If you don't cancel before the trial ends, it converts to the paid monthly plan automatically.
- Billing, receipts, and renewals are handled by Apple, not charged separately by CarinaOS.
Manage or cancel
- Open Settings → tap your name at the top.
- Tap Subscriptions.
- Select CarinaOS Go to change plan, or tap Cancel Subscription.
Cancel at least a day before your trial or renewal date to avoid the next charge. Cancelling stops future renewals — you keep access until the end of the period you've paid for. Your compliance data stays in METRC regardless; CarinaOS never owns your record.
Create your account & sign in
Open Go, create your CarinaOS Go account, and start the free trial. Go uses one login per facility.
- Launch CarinaOS Go.
- Choose Create account and enter your work email and a password, or Sign in if you already have a Go login for this facility.
- Start the free trial when prompted.
Each login is tied to a single licensed facility. If you run more than one license, you'll sign out and sign back in with that facility's account to switch — see Connect METRC.
Go signs you into one facility at a time. To work a different license, sign out and back in with that account. If keeping several facilities open at once is essential to how you operate, contact us about a custom solution.
Connect your METRC account
This is the one setup step that matters most. CarinaOS holds the certified integrator credential for your state; you supply your own METRC user API key so entries post under your license.
1. Generate your METRC user API key
You create this inside METRC, not in CarinaOS:
- Sign in to METRC for your state on a computer.
- Open your account / user settings and find API keys (often under your name in the top-right menu).
- Generate a key for CarinaOS as the integrator and copy it. Treat it like a password.
The METRC user whose key you generate needs permission for the actions you'll take in Go — plants, harvests, packages, and so on. If an action is rejected, the user's METRC permissions are usually the cause, not the app.
2. Add the key in Go
- In Go, open the METRC connection setup.
- Paste your user API key.
- Choose your state, then the license / facility you want to manage.
- Save. Go verifies the connection and pulls in your current plants, batches, packages, and tags.
3. Confirm it worked
A healthy connection shows your live facility data. If lists come back empty or you see an error, see Troubleshooting — usual causes are a mistyped key, the wrong state, or METRC permissions.
Go connects one facility per login. To manage another license, sign out and sign back in with that facility's account — you can't hold several open at once by default. If that's a hard requirement, ask us about a custom solution. Whichever facility you're signed into is where every entry posts, so confirm it before a session.
How Go maps to your grow
Go mirrors how METRC and your facility are organized, so what you see matches what's on the floor.
You don't set all of this up in Go. Rooms, licenses, and tags come from METRC and sync into the app so your entries drop into the right place.
Scan a tag, take the action
The fastest way to work in Go is to scan. Point at a plant or package tag and Go shows only the actions that make sense for what you scanned.
- Scan the tag. Go resolves it and reads what it is.
- Pick from context-aware actions. What you can do depends on the tag:
- Package → Adjust or Finish
- Veg plant / batch → Flip to flower
- Flower plant → Destroy
- Confirm and submit. The action opens with the scanned tag already filled in. Go checks the entry for completeness, then files it to METRC — or saves it to your offline queue if you have no signal.
Before anything is sent, Go validates the full entry — required fields, correct formats — so you don't file (or queue) something METRC would bounce. If a field is missing, Go tells you before it goes anywhere.
Plants & batches
Go handles the plant events you do most: starting veg plants from clones, flipping to flower, and moving a batch.
Clone → veg
Turn a clone package into veg plantings from the Clone Pipeline. Choose the clone package, set the count and destination, and submit — Go creates the veg plantings in METRC and tags them into veg where required.
Flip to flower
Move a veg batch into flowering. Scan a veg plant (or use the Veg tab), tap Flip, and confirm. Large batches are handled in the background so METRC's per-request limits don't trip you up.
Move a batch
Relocate a batch to a new room or location from the Batch tab. Pick the destination and submit.
Today you move a whole batch at once. Moving individual plants out of a batch isn't available in the app yet — for a one-off single-plant move, handle it in METRC directly. Tell us if per-plant moves matter to your workflow; it's on the roadmap.
Log additives (IPM & feeding)
Record additive applications — nutrients or IPM treatments — against plants or an entire location, for your feeding and pest-management records. Choose what was applied, the amount, and the target, then submit. Like any action, additives queue offline and file on reconnect.
If your workflow uses printed clone labels, those are generated alongside your METRC sync so the physical tag and the record stay matched.
Destroy & log waste
Record destruction and waste as it happens so your on-hand counts stay accurate. Go handles waste for both flowering plants and immature (veg) batches.
- Scan the plant or open the Destroy action from the Flower or Veg tab.
- Enter the waste weight and pick a reason, and note the material where asked.
- Submit. The waste event files to METRC (or queues if you're offline).
Most rejections are a missing or zero weight, or a reason METRC doesn't accept. Waste against an empty or already-finished batch is refused by METRC — that's a state rule, not an app error. Confirm the plants still exist and have quantity, and that weight and reason are filled in.
Harvesting
Go carries the harvest actions so you can log and package a harvest from the floor.
- Log harvest — record plants coming down and their weight against a harvest.
- Harvest → package — create a tagged package from harvested material.
- Finish harvest — close the harvest once its remaining weight is accounted for.
Finishing a harvest is not reversible inside Go — if you need to reopen one, you'll do it in the METRC portal. Only finish once the numbers actually reconcile.
Packages & items
Create tagged METRC packages, adjust or finish them, and finish a whole stack at once.
Create a package
From an immature batch, start a new package: select the item, enter the quantity and unit of measure, assign a package tag, and submit.
Adjust a package
Correct a quantity: enter the new amount — Go shows a live preview of the result — pick a reason, and submit. An adjustment is reversible (it can be negated back), and it's logged in METRC with the reason attached.
Finish & unfinish
When a package is depleted or done, finish it. Finished a package by mistake? Unfinish reopens it. Both are available by scan or from the Package tab.
Bulk-finish by scan
Closing out a lot of packages? Scan a stack of package tags and finish them all in one pass. Optionally, zero out remaining first — Go adjusts each to 0, then finishes. Everything is checked before it's sent, and offline it queues the adjust-then-finish steps in order.
Items & strains
Packages reference METRC items, each with a unit of measure, and items are tied to strains. You can add both right in Go — no desktop trip required:
- Add a strain — create a new strain so it's available for plantings and items.
- Add an item — create the item with its category, unit of measure, and strain, so it's ready to package against.
Set these up before packaging so the right item and unit are there when you create the package.
METRC is strict about units of measure. When you add an item, pick the unit that matches how it's meant to be counted — a mismatch is a common cause of a rejected package.
Syncing & working offline
Go writes directly to METRC — no second system in between. When you have signal, actions file immediately. When you don't, they wait safely on your device and file themselves the moment you reconnect.
Reads vs. writes
- Reads — your plants, batches, packages, and tags are pulled from METRC so what you see reflects the state record. Fresh counts need a connection.
- Writes — plantings, flips, moves, waste, harvests, and packages post to METRC when you submit, or as soon as you're back online if you made them offline.
The offline queue
When you're offline, a write action is saved to an on-device queue instead of failing:
- You act as normal. Scan and take the action — no connection needed.
- Go confirms it's queued, not filed. You'll see
📥 Offline — saved to queue. Auto-submits when back online.Go never tells you something reached METRC while you're offline. - A badge shows the count in the corner:
📥 3 queued · offline. - On reconnect, the queue drains automatically, in the exact order you entered items, and confirms with
✅ N queued actions submitted.Completed items clear a few seconds later.
The queue, under your control
Tap the badge to open the queue. Each item shows an icon and plain label (e.g. “Flip to flower”), a detail line (batch · strain · tag), and a status:
You can move items up or down, retry a failed one, remove an item, or tap Submit all now to send everything without waiting for auto-drain.
What you can rely on
- Persistent — the queue survives closing and reopening the app.
- In order — items submit in the sequence you created them, which matters for multi-step work (zero-out, then finish).
- Honest status — nothing is shown as filed until METRC actually accepts it.
- No silent loss — a failed action stays in the queue with its error message, ready to retry. It's never dropped.
- Validated first — each action is checked for completeness and format before it's queued, so fewer things bounce.
New tags need a sync. Actions on tags the app has already synced work offline; discovering a brand-new tag it's never seen requires a connection to resolve. No auto-dedup. If you deliberately queue the same action twice (say, “adjust +5” on one package, twice), both submit — remove duplicates before reconnecting if that wasn't intended.
Tag inventory, room audit & records
Beyond filing actions, Go includes a few tools built for working in the room.
Tag inventory
Check your METRC tag supply from your phone — how many plant and package tags you have available to assign. It's a read view, so the latest counts arrive on your next sync. Order more tags in METRC before you run low, since running out stops tagging work cold.
Room audit
Scan every tag in a room and Go reconciles what's physically there against your last synced data. It sorts results into three buckets:
The audit runs fully offline, and you can share or export the result. It's the fastest way to catch a mis-tagged plant or a discrepancy before it becomes a compliance problem.
Activity log with undo
Go keeps a running log of what you've done. Where METRC allows a clean reversal, you can undo from the log — an adjustment negates back, a finish unfinishes. It's a fast safety net for the occasional wrong tap.
Photo attachments
Attach photos to your records for your own documentation, and export your log to CSV when you need it off the phone.
Go & the full suite
Go is deliberately narrow: METRC compliance, from the floor. When you want the rest of the operation in one place, that's the CarinaOS full suite (Ops Hub) — a separate web product that Go doesn't require.
Only need to stay compliant with METRC on the floor? Go on its own is enough. Want the full operations picture — scheduling, environment and sensor data, analytics, and reporting alongside it? See the CarinaOS Hub guide, or talk to us.
Troubleshooting
“I connected METRC but everything is empty”
Almost always one of three things: the API key was mistyped or has a stray space, the wrong state is selected, or the METRC user lacks permission. Re-paste the key carefully, confirm the state, and check the user's METRC permissions.
“My connection was working and now it isn't”
A METRC key can be regenerated or revoked on the METRC side, which breaks the link. Generate a fresh user API key in METRC and add it again in Go.
“Scanning a tag does nothing while I'm offline”
Check whether it's a tag the app has synced before. Actions on known tags queue offline; a brand-new tag the app has never seen needs a connection to resolve its details. Get back into signal, sync, and try again.
“My queue isn't draining after I reconnect”
Open the queue and tap Submit all now. Confirm the phone truly has internet by loading any web page — captive Wi-Fi and weak signal are common culprits.
“An item is stuck on Failed”
Open the queue and read the error on that item. Most failures are METRC validation issues — a missing or zero weight, an invalid reason, or the wrong unit. Fix the underlying entry and tap Retry. Failed items never disappear on their own.
“The badge shows a count but the queue looks empty”
Reopen the app. The queue reloads from device storage on launch and drains any leftovers if you're online.
“An action succeeded but it's still in the list”
Give it a few seconds — completed items are pruned shortly after they succeed.
“An action was rejected by METRC”
The rejection comes from METRC and usually names the cause: a unit-of-measure mismatch, an action against an empty or finished batch, a missing tag, or a permission the user doesn't have. Fix the record or permission, then resubmit.
“I can't sign in”
Confirm you're using this facility's Go login. Reset your password if needed. Remember Go is one login per facility — the account is tied to the license.
“It says my subscription isn't active”
Check Settings → your name → Subscriptions to confirm CarinaOS Go is active on your Apple ID. If you restored a device or changed Apple IDs, you may need to restore purchases.
Frequently asked questions
If I lose signal mid-action, do I lose my work?
No. The action is saved to your device's queue and submits automatically when you're back online — in the order you entered it.
What can I do offline?
The METRC write actions: flip to flower, destroy / log waste, adjust a package, finish and unfinish packages, create a package, clone → veg, move a batch, the harvest actions, log additives, and bulk-finish by scan. Room audit and the activity log work offline too. What needs a connection: resolving a brand-new tag you've never synced, and pulling fresh live counts.
Will I accidentally file the same action twice?
Each queued action submits once. Note that Go doesn't auto-deduplicate intentional repeats — if you queue “adjust +5” twice on the same package, both submit. Remove duplicates from the queue before reconnecting if that wasn't intended.
One of my queued actions failed — what do I do?
Open the queue, read the error on that item, fix the underlying issue (often a wrong weight, reason, or unit), and tap Retry. Failed items never vanish on their own.
Do actions submit in the right order?
Yes — the queue drains in the exact order you created items. That matters for multi-step work, like adjusting a package to zero and then finishing it.
Can I move a single plant instead of a whole batch?
Not in the app yet — Go moves batches today. For a one-off single-plant move, handle it in METRC directly. Let us know if per-plant moves matter to you.
Which states does Go support?
Go writes directly to METRC in 17 states. If you're unsure whether yours is live, contact support with your state and license type before subscribing.
Do I need a METRC account already?
Yes. Go connects to your existing METRC account for a licensed facility. It doesn't enroll you in track-and-trace or issue your state license.
Is there an Android version?
Not yet — Go is iPhone-only. On Android, use the CarinaOS full suite (Ops Hub) in a mobile browser.
Can I manage more than one facility?
Go uses one login per facility. To manage a second license, sign out and sign back in with that facility's account. Need several open at once? Contact us about a custom solution.
Is my data safe? Who owns it?
Your compliance record lives in METRC and always belongs to you — CarinaOS files to METRC on your behalf, it doesn't own your data. Each operation's data is isolated from every other, and communication with METRC is encrypted. CarinaOS is software only and never touches plant material.
What does it cost, and is there a trial?
$99/month after a 14-day free trial, billed through your Apple ID. Go is a standalone METRC tool; the CarinaOS full suite is a separate product.
How is Go different from the full suite?
Go does METRC compliance from the floor, on iPhone, and works offline. The full suite (Ops Hub) is a separate web platform for the wider operation — scheduling, monitoring, analytics, and more. Go doesn't require it.
Glossary
Get help
Still stuck? Reach a human. The more specific you are — the exact action, the facility, and any error text METRC returned — the faster we can sort it out.
Email support: hello@carinaos.com
Online: carinaos.com
App Store: ratings and version notes at App Store ID 6786339119
When you write in, tell us your state, your license, what you tapped, and what happened. Screenshots of any error help a lot.
CarinaOS is built and run by someone who works a licensed grow every day. When you flag something, it reaches the person who actually knows the floor.