Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/manusapis/Agix/llms.txt

Use this file to discover all available pages before exploring further.

Agix runs as an Office Add-in task pane in Microsoft Excel and as a sidebar extension in Google Sheets. Both surfaces share the same React UI and provider layer. This page covers what you need before you start, how to sideload the add-in into Excel, and how the Google Sheets extension is installed — followed by details on where API keys are stored and how to move from local development to a production host.

Technical requirements

RequirementMinimum version
Node.js18.0.0
TypeScript5.5 (bundled via devDependencies)
Office.js^1.1.102
npm8+ (ships with Node 18)
{
  "dependencies": {
    "@microsoft/office-js": "^1.1.102",
    "react": "^18.3.1",
    "react-dom": "^18.3.1"
  },
  "devDependencies": {
    "typescript": "^5.5.4",
    "vite": "^5.4.0"
  }
}

Microsoft Excel

System requirements

  • Excel 2016 or later on Windows or Mac (Desktop), or Excel on the web in a modern browser.
  • The development server must be reachable at https://localhost:3000 with a trusted TLS certificate. See the Quickstart for mkcert setup instructions.

Sideloading the manifest

Office Add-ins are loaded by pointing Excel at a manifest.xml file that describes the add-in’s entry points, icons, and required permissions. Agix includes a ready-made manifest in the project root.
1

Start the dev server

The manifest references https://localhost:3000. The server must be running before you sideload, or Excel will fail to render the task pane.
npm run dev
2

Open the Add-ins dialog in Excel

In Excel Desktop:
  1. Click the Insert tab on the ribbon.
  2. Click My Add-ins.
  3. In the dialog that opens, click Manage My Add-ins → Upload My Add-in.
3

Upload manifest.xml

Click Browse, navigate to the root of the cloned repository, and select manifest.xml. Click Upload.Excel registers the add-in and adds an Agix AI ribbon group to the Home tab.
4

Open the task pane

Click Open Agix in the Agix AI ribbon group. The Agix sidebar opens on the right side of the workbook.

manifest.xml and production hosting

During development, every URL in manifest.xml points to https://localhost:3000:
<SourceLocation DefaultValue="https://localhost:3000/taskpane.html" />
<bt:Url id="Commands.Url" DefaultValue="https://localhost:3000/commands.html" />
When you are ready to deploy Agix for your team, run a production build and host the output on a public HTTPS server:
npm run build        # outputs static assets to dist/
Then update every localhost:3000 reference in manifest.xml to your production domain before distributing the manifest to users. The <AppDomains> block must also list the production domain:
<AppDomains>
  <AppDomain>https://your-production-domain.com</AppDomain>
</AppDomains>
The manifest version is currently 0.1.0, matching the package.json release version.

Google Sheets

Agix for Google Sheets runs as a Chrome or Edge browser extension that injects the same sidebar UI into the Sheets interface. The extension uses the same React task pane and provider layer as the Excel add-in — you interact with Agix through an identical chat panel on the right side of your spreadsheet.
  1. Open the Chrome Web Store and search for Agix AI for Google Sheets, or navigate directly to the extension listing.
  2. Click Add to Chrome and confirm the permissions prompt.
  3. Open any Google Sheets document. The Agix AI button appears in the toolbar.
  4. Click the button to open the sidebar, then follow the same API key setup described below.
The Google Sheets extension does not require Node.js, a local dev server, or manifest sideloading. It is a self-contained browser extension.

API key storage

Agix never bundles an API key. You supply your own key at runtime through the sidebar UI. Understanding where that key is stored helps you manage credentials across devices and environments. The storage logic lives in src/utils/settings.ts and follows a two-path strategy:
const STORAGE_KEY = "agix.provider.config";

export const settingsStore = {
  async save(config: AIProviderConfig): Promise<void> {
    if (typeof Office === "undefined" || !Office.context?.document) {
      localStorage.setItem(STORAGE_KEY, JSON.stringify(config));
      return;
    }
    Office.context.document.settings.set(STORAGE_KEY, config);
    await new Promise<void>((resolve) =>
      Office.context.document.settings.saveAsync(() => resolve())
    );
  },

  async load(id: ProviderId): Promise<AIProviderConfig | null> {
    if (typeof Office === "undefined" || !Office.context?.document) {
      const raw = localStorage.getItem(STORAGE_KEY);
      return raw ? (JSON.parse(raw) as AIProviderConfig) : null;
    }
    return (
      (Office.context.document.settings.get(STORAGE_KEY) as AIProviderConfig) ?? null
    );
  },
};
Inside the Office host (Excel Desktop or Excel on the web): the key is written to Office.context.document.settings, which is per-user and per-document roaming storage managed by Office. The key travels with the user’s Office profile and is available on any machine where they open the same document. Outside the Office host (browser-only, Google Sheets extension, or standalone dev): the key falls back to localStorage, scoped to the browser origin https://localhost:3000 (or your production domain).
API keys are entered at runtime and stored in user-scoped settings only. They are never committed to the repository. The DEFAULT_PROVIDERS registry in src/config/providers.config.ts ships with empty apiKey: "" fields for every provider — secrets must be supplied by the user through the sidebar.

What is stored

The settings entry is the full AIProviderConfig object for the active provider:
{
  id: "openai",           // provider identifier
  name: "OpenAI",
  apiKey: "sk-...",       // the only sensitive field
  baseUrl: "https://api.openai.com/v1",
  defaultModel: "gpt-4o-mini",
  enabled: true
}
To rotate or remove a key, open the Agix sidebar, clear the API key field, and save. The settings store will overwrite the previous value.

Build docs developers (and LLMs) love