Guide & tips
A practical tour of CrimeCode: install it, sign in, pay, build a team, learn the keyboard shortcuts, and get the most out of the live collaboration features. Keep this page open in a tab while you set things up — most chapters are three-minute reads.
1. Install & first launch
The CrimeCode desktop installer is available for Windows x64. On macOS and Linux, open the web app in a modern browser.
Windows
- Download the current Windows x64 installer.
- Run it. Windows SmartScreen will say "Unknown Publisher" — click More info → Run anyway. (We're in the process of getting a commercial code-signing certificate.)
- The installer creates a Start Menu shortcut and auto-launches.
macOS and Linux
Use the CrimeCode web app. The separate CLI installer downloads upstream OpenCode and does not provide the CrimeCode desktop account or shared-session features.
Web
No install. Open app.crimecode.cc. Browser sessions connect to a configured backend, while the Windows desktop app includes the local terminal sidecar.
Desktop and web share the same account. Sign in on one, sync works across both — your recent projects and preferences follow you.
2. Create your account
CrimeCode requires an approved account and an active license before the IDE unlocks. Register, verify your email, and wait for approval. Then sign in and choose a plan on the pricing page.
- Open the desktop or web app and choose Create account: username, email and password, or continue with Telegram.
- Confirm the verification email we send you — this proves the mailbox is yours.
- Wait for your account to be approved. You'll see a "pending approval" state until then.
- Sign in with your username/email and password. The server checks identity, verified email and approval before anything unlocks.
Creating an account never signs you in automatically and never grants access by itself — email verification, approval and an active license are all required. If approval takes too long, message @OpCrime1312.
3. Pay for a plan
Three USD-priced plans — Monthly $20, Annual $200, Lifetime (one-time). You can pay by card through Stripe, with Telegram, or with crypto (BTC, LTC, ETH) through a NOWPayments invoice.
Card
- On the pricing section, choose Pay with Card.
- Sign in or create an account so the license has a delivery address.
- Complete payment on Stripe's hosted checkout page. CrimeCode never receives your card number.
- The license is attached to your account after Stripe confirms payment.
Crypto
- On the pricing page, choose Pay with Crypto for your plan and sign in.
- Complete the NOWPayments invoice that opens for that order. Follow the amount and network shown there.
- After payment confirmation, the license is attached to the account used at checkout.
- Back in the app, sign in with that same account to unlock access.
The Telegram bot also offers on-chain checkout. Follow the bot's exact amount and wallet instructions if you choose that route.
Send the exact amount the bot gives you. If you round up or down, the poller won't match and manual reconciliation may be needed.
The order expires 60 minutes after creation. If you miss the window, run /order <plan> again in the bot to get fresh addresses.
4. Sign in
Sign-in is required to use the IDE — identity, verified email, approval and an active license are all checked by the server. It also unlocks cloud sync, teams, and cross-device license portability. Use a Telegram one-time PIN, or your email, username, and password account.
Telegram one-time PIN
- Menu → File → Account / Sign in… (web: click the account icon in the workspace dock).
- Click Sign in via Telegram.
- An 8-character PIN appears (e.g. ABCDEF12). The app also opens the bot at
t.me/CrimeCodeSub_bot?start=auth_<PIN>. - On Telegram, tap Start. The bot replies "Signed in as @handle. You can close this chat."
- The app auto-detects within 2–4 seconds and shows "✓ Signed in" with your customer ID.
Every new sign-in triggers a Telegram DM to you saying "New device signed in to your CrimeCode account" with the device label and time. If it wasn't you, hit Sign out immediately and tell @OpCrime1312.
5. Open and create projects
A project in CrimeCode is just a directory. No .crimecode config file, no special format.
Open an existing project
Menu → File → Open Project… (Ctrl+O / Cmd+O), pick a folder. The project becomes your default workspace for sessions, terminals, and AI chats.
Create a new project
Menu → File → New Project… (Ctrl+N / Cmd+N), pick where to create it, give it a name. The app creates the directory and opens it as a project.
If you're signed in, every new project is recorded in your cloud-synced recents list — switch devices and it shows up in Open Project's "Recent projects" shortcut.
6. Integrated terminal
Toggle the terminal panel with Ctrl+`. Each terminal runs inside a pseudo-terminal (PTY) managed by the sidecar — so it survives an app restart as long as the backend keeps running.
- New terminal: Shift+Ctrl+` or the
+button in the terminal panel tabs. - Next / previous terminal: Alt+↑ / Alt+↓ on the terminal panel.
- Kill terminal: click the × on the tab. The PTY is torn down and the tab removed.
If the backend redeploys while you have terminals open, the tabs auto-reconnect — new PTYs are spawned to replace the dead ones and your command history for the session is preserved in the scrollback (though not the live process state).
7. AI assistants
CrimeCode ships with multi-provider AI support out of the box — you connect whichever accounts you already have.
Supported providers
- Anthropic (Claude) — API key or OAuth via console.anthropic.com.
- OpenAI (GPT-5, GPT-4 family).
- Google Gemini.
- GitHub Copilot — authorize with your GitHub.com or Enterprise account.
- Local models via Ollama, LM Studio, any OpenAI-compatible endpoint.
- Full list: Cerebras, Cohere, DeepInfra, Groq, Mistral, Amazon Bedrock, Vercel AI Gateway, and more.
Add a provider
- Settings → AI providers.
- Pick one, click Connect. For OAuth providers a browser-style flow opens (or a device code if the provider doesn't support redirect).
- Select a default model and you're done.
Request routing depends on the backend and model you select. A local desktop sidecar keeps session storage on your machine, while hosted backends process and may retain session content so you can resume it. The selected model provider receives the prompt and context needed to answer. See the Privacy Policy.
8. Teams — create, invite, roles, ownership transfer
Teams are shared workspaces with role-based access. Annual and Lifetime plans include up to 20 members per team.
Create a team
- Sign in (teams require a real account).
- Workspace dock (bottom-left) → click the workspace switcher → ⊕ Create Team.
- Type a team name, click Create Team. You become the owner automatically.
Invite members
Open the team in the switcher → click the ⚙ gear → Add Team Member. Two identifier formats:
@telegram-handle— invite via Telegram. If the user isn't registered yet, the invite is saved and auto-accepted the moment they sign in.email@example.com— pending invite that matches on sign-in if the user has linked that email.
Roles
| Role | Can do |
|---|---|
| Owner | Everything: add/remove members, rename team, delete team, change roles, transfer ownership. |
| Admin | Add/remove members, cancel invites. Cannot delete team or change other admins' roles. |
| Member | Read-only access to the team's workspace metadata and live sessions. |
Transfer ownership
Open the team's Manage dialog → next to any non-owner member click 👑. A confirmation lists what you lose (delete team, further transfers, changing admins). Once confirmed, you're demoted to admin and the new owner has full control.
Ownership transfer is reversible only by the new owner transferring back. Don't hit the crown unless you really mean it.
9. Live collaboration & cursors
When you switch to a team workspace, a green "N live" badge appears in the workspace dock whenever another member is active. The collaboration layer is powered by Server-Sent Events — changes propagate in under a second.
Publish your session
Open a project, start working. The team workspace can "advertise" your session (title + state JSON) to other members. When you do, your cursor is visible to everyone else on the team who's viewing the same workspace.
Watch someone else
With the team workspace active, other members' cursors appear as coloured arrows with their usernames. Each user gets a deterministic hue so you recognise them instantly. Cursors fade out after 4 seconds of silence.
Cursor publishing is rate-limited client-side to ~10 Hz, and only fires while you have an active live session. It's designed to be invisible — you should never see lag or notice it in dev tools.
10. Cloud sync
Once signed in, two snapshots are synced to our cloud key-value store:
client.settings— your full settings.v3 blob (theme, editor prefs, AI defaults).client.recent-projects— deduped list of your last 30 opened projects.
Manual backup / restore
Account dialog → Cloud sync section:
- 📤 Backup to cloud — push both snapshots immediately.
- 📥 Restore from cloud — pull down and merge; settings apply on next restart.
- Last synced: N minutes ago shown next to the buttons.
Sign-in automatically triggers a pull so a freshly installed app lands on your existing setup instead of defaults. Creating a new project auto-schedules a debounced push after 5 seconds.
11. Offline mode & the 7-day cache
CrimeCode is designed to work offline. The license is cached locally for 7 days after the last successful online validation:
- Sign in online with a licensed account → entitlement cached locally with expiry timestamp.
- Background check every 7 days (or on app start if last check > 7 days ago).
- If the server says "revoked" or "expired", local copy is updated.
- Network errors during background check leave the cached state alone — you stay productive.
After 7 days fully offline, you must reconnect once to refresh the cache. AI calls and team features obviously need internet on each use.
12. Keyboard shortcuts
The most useful shortcuts across the app. Swap Ctrl for Cmd on macOS.
| Action | Shortcut |
|---|---|
| New session | Shift + Ctrl + S |
| New project… | Ctrl + N |
| Open project… | Ctrl + O |
| New window | Ctrl + Shift + N |
| Toggle sidebar | Ctrl + B |
| Toggle terminal panel | Ctrl + ` |
| Back / forward navigation | Alt + ← / → |
| Previous / next session | Alt + ↑ / ↓ |
| Command palette / search | Ctrl + K |
| Developer tools | Ctrl + Shift + I |
13. Privacy hardening tips
- Choose the sign-in and payment rail that fits your threat model. Email/password, Telegram, Stripe, and public blockchains expose different metadata to different processors.
- Use the local desktop sidecar for sensitive engagements. Hosted backends retain session content so it can be resumed; local storage keeps that state on your machine.
- Review your model provider. The provider you select receives prompts, attachments, and tool context needed to answer.
- Review the admin session list periodically. Account → Sessions. Revoke anything you don't recognise.
- Turn off cloud sync if you prefer. Sync is opt-in through the Account dialog. This prevents preference and recent-project snapshots from being copied to the sync service, but it does not change how your selected backend or model provider processes an active AI session.
- Disable error telemetry. Set
SENTRY_DSN=empty in your local desktop env vars (create a.envin the opencode config dir). The default build ships Sentry enabled but it can be turned off.
14. Troubleshooting
Subscription gate won't go away after payment
Sign out and sign back in with the same account that paid. The license is account-bound — there is no paste-token step. If you paid from a different Telegram/email account, link them with /link in the bot or contact support with your order ID.
"Unknown Publisher" / "Gatekeeper blocked"
Expected — we haven't paid for a commercial code-signing certificate yet. Windows: More info → Run anyway. macOS: right-click → Open → confirm.
Payment sent but the app still shows the paywall
Check the transaction has ≥1 confirmation (BTC/LTC) or ≥6 confirmations (ETH) on a block explorer. Sign in again so Desktop/Web can sync entitlement. If the bot never confirmed payment: DM @OpCrime1312 with your order ID + tx hash.
Terminal shows "404 Not Found" repeatedly
The server redeployed and forgot your in-memory PTY state. The app self-heals by cloning each dead terminal into a fresh one — just wait a few seconds and the panels come back. Your scrollback is preserved locally; the live process is gone (same as if you closed the terminal).
Web app says "Failed to connect"
Our backend might be mid-deploy (usually resolves in 60–90 seconds). If it persists, check the public API health endpoint or ping @OpCrime1312. For self-hosted users, verify your server URL is correct in the Self-hosted tab of the AuthGate.
Desktop auto-update isn't working
Force-check: Menu → Help → Check for updates…. If nothing happens, uninstall and re-download the latest Windows installer.
Still stuck?
Telegram: @OpCrime1312 or @JollyFraud. Include your order ID (if any), operating system, and a screenshot of the error.
Did we miss something?
The FAQ covers sales / legal / refunds. This page covers usage. If your question is "how do I …", send us a DM and we'll either fix the app, fix this guide, or both.