Metadata-Version: 2.5
Name: eyrie
Version: 0.3.0
Summary: A commanding place above your work — scaffold for planning across sources
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: click>=8.1
Description-Content-Type: text/markdown

# Eyrie

A commanding place above your work — scaffold for planning across sources.

Eyrie creates coordination repos where you (and your agents) can see across
multiple projects, notes, and sources without reaching down to change them.
Read-only `links/` point to the real sources; curated `docs/` build persistent
understanding over time.

## Install

```sh
uvx eyrie init my-workspace
```

Or install permanently:

```sh
uv tool install eyrie
```

## Usage

### Create a new eyrie

```sh
eyrie init my-workspace
```

You'll be asked for a one-sentence description. Eyrie then generates the full
scaffold: `AGENTS.md`, `docs/`, `links/`, git repo with a pre-commit hook, and
agent permission rules for OpenCode and Claude Code.

### Add sources

```sh
eyrie add ~/Projects/resume-cv
eyrie add ~/Documents/ObsidianVaults/Career
```

Type is inferred (`repo` if `.git/` exists, else `folder`), name defaults to the
directory basename, and paths under `$HOME` are stored as `~/...` in `eyrie.toml`.
Each `add` auto-syncs (creates symlinks and appends doc skeletons).

You can also edit `eyrie.toml` directly:

```toml
[[sources]]
name = "resume"
path = "~/Projects/resume-cv"
type = "repo"

[[sources]]
name = "career-vault"
path = "~/Documents/ObsidianVaults/Career"
type = "folder"
```

Every source has a `path`. Sources are content on disk that gets mounted read-only
into `links/`.

### External systems and skills

Eyrie does not install anything. Systems you reach live rather than mount — a
`gcloud` or Todoist CLI, Jira, Confluence — are set up by you or your agent and
documented in `docs/domain/access.md`:

```sh
brew install --cask gcloud-cli
npx skills add https://github.com/onnokh/atlassian-cli --yes
```

Skills land in `.agents/skills/`, which every supported agent reads (Claude Code
via the generated `.claude/skills` symlink). Record what each one is for, and how
to authenticate, in `docs/domain/access.md` — never the credentials themselves.

### Sync

```sh
eyrie sync
```

This materializes symlinks under `links/` and appends skeleton entries to
`docs/domain/repos.md` and `sources.md`.

## How it works

```
my-workspace/
├── AGENTS.md        ← agent instructions (generated once, then yours)
├── CLAUDE.md        ← points to AGENTS.md
├── eyrie.toml       ← sources config
├── docs/            ← persistent knowledge (domain, topics, workflow)
├── links/           ← READ-ONLY symlinks to sources (git-ignored)
├── output/          ← versioned deliverables
├── scripts/         ← automation (uv run scripts/foo.py)
└── scratch/         ← ephemeral work (git-ignored)
```

The core pattern: **plan here, execute there.** Use the eyrie to understand
cross-source work, then make changes in the individual source repos.

## Requirements

- Python >= 3.11
- [uv](https://docs.astral.sh/uv/) (for running and installing)

## License

MIT
