# AgenC Core: getting started

AgenC Core is a powerful and extensible coding agent. Use it through the
interactive TUI, headlessly in scripts and bots, or embedded in your own apps
over the daemon protocol. One local daemon owns sessions, permissions,
provider calls, and command execution.

## Install

macOS / Linux:

```bash
curl -fsSL https://get.agenc.ag/install.sh | sh
```

No curl? The npm launcher installs the same runtime:

```bash
npm install -g @tetsuo-ai/agenc
```

Standalone installs carry a private, verified Node.js runtime; no host Node
required.

## Start an interactive session

```bash
cd your-project
agenc
```

On first launch, `agenc onboard` walks provider setup: sign in with X or
xAI to use Grok on your subscription (no API key required), or paste provider
keys. Inside the TUI the same rail is one command away: `/grok-login`.

In non-browser environments, use a key instead:

```bash
export XAI_API_KEY="xai-..."
agenc
```

Useful first prompts:

```text
Explain this repo.
Create a todo checklist and fix the failing test.
```

## Skills

A skill is reusable expertise you hand the agent: a directory with a
`SKILL.md` file inside it. The frontmatter says when the skill applies, the
markdown body says what to do. Skills are how a session learns your deploy
steps, your review checklist, or a site-specific workflow, without you
re-explaining it every time.

Scaffold one inside a session:

```text
/skills new deploy-web Ship the web app to staging and verify it
```

That writes `.agenc/skills/deploy-web/SKILL.md` in the project. Fill in the
body and the skill is live in the same session:

```markdown
---
name: deploy-web
description: Ship the web app to staging and verify the deploy
when_to_use: The user asks to deploy, ship, or release the web app
allowed-tools: Bash, Read, Grep
---

## Steps

1. Run `npm run build` and stop if it fails.
2. Deploy with `npm run deploy:staging`.
3. Curl the health endpoint and report the status code.
```

Two ways to run it. You call it by name with `/deploy-web`, or the agent
invokes it on its own when the request matches `when_to_use`. Either way the
body is loaded only at invoke time, so a large skill library costs almost no
context: the listing the model sees is capped at about 1% of the context
window and carries the frontmatter only.

Browse and search what is loaded:

```text
/skills
/skills all
/skills find marketplace
```

Skills are discovered from several roots at once, so they compose:

| Scope | Where they live |
| --- | --- |
| Project | `.agenc/skills/` and `.agents/skills/`, walking from the working directory up to your home directory |
| User | `~/.agenc/skills/` and `~/.agents/skills/`, plus existing `~/.claude/skills` and `~/.codex/skills` directories |
| Plugin | Any skill roots an enabled plugin exposes |
| Bundled | Ships with Core: `browser-automation` and `agenc-marketplace-kit-installer` |

The frontmatter can do more than describe the skill. `allowed-tools` limits
which tools the run may touch, `context: fork` runs it in its own context so a
long skill does not pollute the main thread, `model` and `effort` override the
model for that run, `argument-hint` documents the arguments a caller passes,
and `disable-model-invocation` keeps a skill user-only when it should never
fire automatically.

## Run headlessly

```bash
agenc -p "Explain this codebase"
agenc --no-tui "Summarize open TODOs"
```

Headless mode is built for scripts, CI, and bots. The same daemon owns
sessions either way, so runs stay durable and resumable.

## Providers and models

16 built-in providers, with grok-4.5 as the fresh-config default (500k
context). Check readiness and switch:

```bash
agenc providers
agenc config set model grok-4.5
```

Or switch inside the TUI with `/model <name>`.

## Embed with the SDK

`@tetsuo-ai/agenc-sdk` speaks the daemon protocol from your own app:

```ts
import { connect } from "@tetsuo-ai/agenc-sdk";

const client = await connect({ autostart: true });
const session = await client.createSession();
const run = session.prompt("Summarize this repo.");

for await (const event of run) {
  if (event.type === "text") process.stdout.write(event.delta);
}
```

## Next

- Marketplace agent kit: https://agenc.ag/docs/kit
- AgenC Core product page: https://agenc.ag/core
- Open source (MIT): https://github.com/tetsuo-ai/agenc-core
