---
source: CrewKit documentation
url: https://crewkit.io/docs/artifacts.md
title: "Artifacts"
description: "Project memory — upload docs, import from Drive, capture Slack and email, and search everything your project knows."
---


Artifacts are your project's memory: PRDs, meeting transcripts, contracts, design docs, captured Slack messages, and past sessions. Everything becomes semantically searchable, and the most relevant pieces are injected automatically when a session starts — so decisions stop evaporating when the conversation ends.

---

## Upload documents

Go to **Projects** → your project → **Documents** in the dashboard. Upload with the button or drag and drop files onto the page.

Accepted formats: PDF, Markdown, plain text, and Word (`.doc`/`.docx`).

---

## Import from Google Drive

From the same Documents page, connect Google Drive and import files directly. The connection is authorized per organization; imported files become project artifacts like any upload.

---

## Capture from Slack and email

Slack messages and email directed at a project's active [agent identity](/docs/agent-identities) are captured as artifacts. Because inbound content is untrusted, it is **not** injectable context right away: it waits in the **Inbox** until a human confirms it. Approve trusted items to make them part of project memory; delete the rest.

Project email addresses are listed on the project overview, where each one can also be downloaded as a contact card. Only active identity addresses accept and capture inbound email; paused and archived addresses do not. Inbound email receives no reply from the agent; its purpose is to create a reviewable artifact without exposing unconfirmed content to agent context.

---

## Search project memory

The Documents page has a search box that runs hybrid lexical + semantic search across everything the project knows — uploaded docs, Drive imports, captured messages, and indexed past sessions. Ask in plain language; results are ranked by relevance, not just keyword match.

Mid-session, agents can run the same search through the [crewkit MCP server](/docs/mcp) — useful when the answer isn't in the codebase (decisions, requirements, prior discussions).

---

## Automatic context injection

When you run `crewkit code`, the CLI fetches the most relevant artifacts for your project and injects them into the session context. In headless mode (`--prompt`), your prompt drives which artifacts are selected; interactive sessions get general project context. Injected content is capped (roughly 8,000 characters), keeping sessions fast.

```bash
crewkit code                  # Context injected automatically
crewkit code --no-artifacts   # Skip artifact context injection
```

If the API is unreachable, injection degrades silently — your session still launches.

---

## Find prior work

Every analyzed conversation is indexed into project memory too. Before starting non-trivial work, ask "has anyone touched this before?" and find the actual session that did the work — via the Documents search or the MCP `find_prior_work` tool mid-session.

Sensitive and private sessions stay privacy-gated: they are excluded from cross-session discovery.

---

## Next steps

- [MCP server](/docs/mcp)
- [Agent identities](/docs/agent-identities)
- [Blueprints](/docs/blueprints)
