Never in Claude’s way
After each reply a hook hands off to a detached background process and returns at once.
A complete, searchable record of every Claude Code session in your company, with the controls an admin needs and none of the work for employees.
Search finds the messages; Ask Cortex reads them for you. Ask in plain words and get one answer written from your team’s Claude Code sessions, every point linked to the message it came from. Then ask the next question: the chat keeps its context.
Type a question the way you would ask a colleague. Hybrid search blends keyword matching with semantic search, so “redis lock expiry” finds the session that talked about “a second worker grabbing the mutex”.
Projects on the left, sessions inside them, the whole conversation on the right. Prompts and replies, without the tool-call noise.
See what your team is building with Claude the way you plan work: a table, a Kanban board or a calendar. Click any card and the session opens.
Everyone starts on a home page made for them, and every person has a profile that shows their Claude work at a glance, with an activity calendar of the last year.
Messages per day, the hours people work with Claude, and token use per project, person, model and session, with what it would cost at API list prices.
People make their own Claude Code token in String Cortex and paste it into a form that Claude Code opens. From then on their conversations follow every reply, under their own name.
> why does the refund job retry twice?
String Cortex: rahul@acme.example (Acme) is not connected yet. A form will open to enter your Claude Code token.
Connect String Cortex for rahul@acme.example (Acme). In String Cortex, open your avatar → Claude Code token → Generate. Paste the token below. It stays on this laptop and is not sent to Claude.
Claude Code token sct_••••••••••••••••••••••••String Cortex: Connected as Rahul at Acme for rahul@acme.example (Acme). Your token stays on this laptop.
Teams, clients or products each get a workspace. The first time someone works in a new project folder, Claude Code asks which one it belongs to. One click, and it is remembered.
> add retries to the webhook sender
Which String Cortex workspace should payments-api use?
❯ 1. Payments 2. Platform 3. Mobile appSaved: ~/code/payments-api and its subfolders will use Payments.
Sure. The sender lives in webhooks/send.ts; I’ll add a retry with backoff…
String Cortex builds your company’s Claude Code managed settings from a few ticks. Your Claude admin pastes them once, and every laptop gets the plugin within about an hour.
{ "enabledPlugins": { … }, "env": { "STRING_CLAUDE_SYNC_URL": "https://cortex.stringhub.com", "STRING_CLAUDE_SYNC_REQUIRED": "1" }, "permissions": { … } }
Each company lists its Claude organisation ids. Conversations from any other Claude account, like someone’s personal plan on a work laptop, are never stored.
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Acme · Teams
2 attempts from organisation yyyyyyyy-yyyy-… by neha@acme.example, today 09:14.
Add this organisationEmployees always see their own conversations. Access groups add more: every project in the company, hand-picked projects, or every project carrying a tag.
Employees see their own conversations plus whatever their access groups give them; company admins see and manage the whole company. What each role may do is configurable.
| What they can use | EmployeeEveryone using Claude Code | Company admine.g. your engineering lead |
|---|---|---|
| Chats, Search, Projects, StatsRead and search conversations | Own + their access groups | Whole company |
| AccountsClaude users and organisations | Not included | Their company |
| Claude Code tokenConnect their own Claude Code | Their own | Their own |
| Company settingsClaude organisations, Claude Code settings, AI answers | Not included | Their company |
| Sync statusProjects as saved, live log | Not included | Their projects and log |
The plugin is built so nobody ever has to think about it: not the employee, and not your admin.
After each reply a hook hands off to a detached background process and returns at once.
Just the lines added since last time, gzip-compressed, in chunks of up to 4 MB.
Server down or laptop offline? Lines wait locally and go with the next reply of any session.
At-least-once delivery. The server ignores what it already has and asks for anything missing.
Each transcript’s position is kept on the laptop; if that’s lost, the laptop simply asks the server.
Works across all of a person’s projects. Nothing is added to any repository.