AI Employees · Genosyn Docs

Anatomy

Every AI Employee row carries the fields you can configure from the UI plus a few the runner needs at spawn time:

Lifecycle

  1. Create: Set the company mission and vision first, then pick a template (a starter Soul and Skill set) or start blank. Hiring does not schedule Routines. The slug freezes; you can rename freely afterward.
  2. Attach a model: Pick a provider and authentication method. Anthropic takes an API key; OpenAI takes an API key or, on trusted single-tenant Genosyn, eligible ChatGPT subscription access; Custom takes an OpenAI-compatible endpoint. You can skip this and connect one later.
  3. Write the Soul: Answer the short About questions, then review the seeded constitution and rewrite it to fit your team.
  4. Choose Routines: Genosyn selects responsibilities that fit the saved role and uses company mission and vision to rank them and write their instructions. An edited role takes precedence over the starting template. Suggestions remain opt-in until you select them and choose the primary Schedule N Routines and continue, which creates them and advances in one press.
  5. Connect the work: Integration cards distinguish between Connect, Grant needed, Attention, and Ready. A Connection alone does not give the AI Employee access; it still needs an explicit Grant.
  6. Fire: Deleting an employee removes their DB rows, including the encrypted credential row for every model they held. There's no shared key to revoke.

Working directory

Each employee gets their own folder on disk under the company:

data/companies/<co-slug>/employees/<emp-slug>/
└── ...   # files enabled coding tools read and write

Coding access depends on the installation mode. The default bubblewrap mode provides sandboxed bash and materializes repositories; where its Linux namespaces are unavailable, boot falls back to disabled, which exposes no coding tools and materializes no repositories. Separately acknowledged host mode provides path-confined file and search tools rooted in this directory (read_file, write_file,edit_file, list_dir, glob, and grep) but never exposes bash, because a working directory is not a security boundary for an unrestricted same-user shell. The runner captures the agent transcript into a Run log. API-key and custom models use Genosyn's in-process loop; OpenAI subscription models use the official Codex app-server. A Routine does not make its AI Employee unavailable: Members can keep chatting with that employee and start independent Routines in parallel without a per-company application cap. Several conversations with the same AI Employee also reply in parallel; only two turns in one thread are serialized. Concurrent work shares this directory when coding is enabled, so give overlapping Runs distinct output files and avoid simultaneous edits to the same git working tree. Model credentials stay encrypted in the database. They never enter the employee working directory. For an OpenAI subscription login or Run, Genosyn gives the official app-server a locked temporary CODEX_HOME. Managed ChatGPT sessions are materialized there; access tokens enter only the child process environment. Genosyn removes the directory afterward. Trusted single-tenant installs support subscription auth in the bubblewrap default, including standard Docker, alongside isolated coding and repository synchronization — and in the disabled fallback, with no coding tools or repository materialization. Host mode rejects subscription auth.

Org chart

Set reportsTo on an employee to give them a manager. Genosyn renders this as an org chart and surfaces it to the runner — useful when you want a handoff from one employee to another to follow the reporting line.

Surfaces inside the app

An AI Employee is two places: Chat and Settings. The switch between them sits at the top right of the employee's header, next to their name. Everything you configure or inspect about an employee lives under Settings, grouped as Employee (General, Soul, Model, Memory), Work (Skills, Routines, Journal, Handoffs), and Access (Connections, MCP, Browser, Integrations).

Under the composer, next to the model picker, Genosyn shows how full the model's context window is — the share of it the last turn's prompt occupied. The number comes from the provider's own token count for that turn, never a local estimate, and it updates as the employee works. Hover it for the exact figures. Past 80% it turns amber: the employee is close to the point where Genosyn starts dropping the oldest tool results to make room, which is the moment to finish the thread or type /new for a fresh context. If the AI Model has no known context window the badge shows the token count alone and links to the model settings, because there is no ceiling to measure against — see AI Models.

The work timeline

Your Home page keeps a compact bubble for each AI Employee to the right of your greeting. The bubbles form a small horizontal row in the header, leaving the cards below the full width of the page. On a narrow screen, they stay beside the greeting. Scroll the row sideways when the whole team does not fit. Their status distinguishes Working now, Waiting for input, recent work, and a quiet day. Work details stay hidden until you choose an employee.

Choose a bubble to open the employee's work timeline in a popup. It opens on today, with the clock down the left and work arranged through the day, like a calendar's day view. Each entry says what happened and shows its result, and work happening in the same hour stays readable as separate entries. Use Previous day and Next day, or choose a date with Work day, to browse today and the previous six days. Choose Today to return to the current day. Dates and times follow your browser's local time, with the timezone shown above the calendar.

Everything you need to follow up stays close to the work:

Seven kinds of work land on it:

The roster stays visible even when the whole team is quiet, because it is also the quickest way to reach an employee and check in, and an employee's own day says plainly when there is nothing recorded for the selected date. A busy employee cannot crowd another employee's status out of the roster: the circles use a per-employee summary the server calculates before any display limit is applied, and opening one employee's day asks for that employee and date alone. Work still running — and an unresolved Approval still waiting — remains in the current status even when it began before the recent-work window. The day view stays bounded to the selected date and says when there is more recorded work than it can display.