Metadata-Version: 2.4
Name: micro-cc
Version: 0.2.56
Summary: Harness that gives frontier models full system access — shell, filesystem, browser, MCP — running directly on the metal.
Author: George Salapa
License: Copyright (c) 2026 George Salapa. All rights reserved.
        
        This software and associated source code ("Software") are proprietary and
        confidential. No license, express or implied, is granted to any person
        obtaining a copy of the Software.
        
        Permission to install and run the Software via its published package
        (e.g. from PyPI) for personal or internal business use is granted, provided
        that this permission does not extend to copying, modifying, merging,
        publishing, distributing, sublicensing, forking, decompiling, reverse
        engineering, or creating derivative works of the Software, in whole or in
        part, without prior written permission from the copyright holder.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES, OR
        OTHER LIABILITY ARISING FROM THE USE OF THE SOFTWARE.
        
        Interested in collaborating? george@salapa.xyz
        
Project-URL: Homepage, https://github.com/GSequist/micro-cc
Project-URL: Repository, https://github.com/GSequist/micro-cc
Project-URL: License, https://github.com/GSequist/micro-cc/blob/main/LICENSE
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: anthropic>=0.76.0
Requires-Dist: anyio>=4.0
Requires-Dist: beautifulsoup4>=4.14
Requires-Dist: fastapi>=0.135
Requires-Dist: google-search-results>=2.4
Requires-Dist: httpx>=0.28
Requires-Dist: httpx-sse>=0.4
Requires-Dist: lxml>=6.0
Requires-Dist: mammoth>=1.11
Requires-Dist: markdown-it-py>=4.0
Requires-Dist: markdownify>=1.2
Requires-Dist: mcp>=1.26
Requires-Dist: numpy>=2.4
Requires-Dist: openai>=2.16
Requires-Dist: openpyxl>=3.1
Requires-Dist: pathvalidate>=3.3
Requires-Dist: pdfminer.six>=20260107
Requires-Dist: pillow>=12.0
Requires-Dist: playwright>=1.58
Requires-Dist: prompt_toolkit>=3.0
Requires-Dist: puremagic>=1.30
Requires-Dist: PyAutoGUI>=0.9
Requires-Dist: pydantic>=2.12
Requires-Dist: pydantic-settings>=2.13
Requires-Dist: pyperclip>=1.9
Requires-Dist: python-dotenv>=1.2
Requires-Dist: python-pptx>=1.0
Requires-Dist: requests>=2.32
Requires-Dist: rich>=14.0
Requires-Dist: textual>=8.0
Requires-Dist: uvicorn>=0.42
Requires-Dist: watchdog>=6.0
Requires-Dist: xlsxwriter>=3.2
Requires-Dist: youtube-transcript-api>=1.2
Provides-Extra: postgres
Requires-Dist: psycopg[binary]>=3.2; extra == "postgres"
Dynamic: license-file

# micro · cc — cognitive compute

```
                   88
                   ""

88,dPYba,,adPYba,  88  ,adPPYba, 8b,dPPYba,  ,adPPYba,     ,adPPYba,  ,adPPYba,
88P'   "88"    "8a 88 a8"     "" 88P'   "Y8 a8"     "8a   a8"     "" a8"     ""
88      88      88 88 8b         88         8b       d8 · 8b         8b
88      88      88 88 "8a,   ,aa 88         "8a,   ,a8"   "8a,   ,aa "8a,   ,aa
88      88      88 88  `"Ybbd8"' 88          `"YbbdP"'     `"Ybbd8"'  `"Ybbd8"'
```

> Knowledge work is, by extension, a coding problem.

Frontier models with full system access — shell, filesystem, browser, MCP. Verbose, thorough planning paired with unrestricted file operations lets micro·cc take on complex multi-step work autonomously. Point it at any project directory and go.

## Install

```bash
pip install micro-cc
```

Supported platforms: **macOS** and **WSL** (Windows Subsystem for Linux) — both are real POSIX/bash environments, which the `bash_` tool requires. Terminal keybindings (Shift+Enter, word-jump, etc.) are detected and configured automatically on first run, whatever terminal you're in.

**Windows**: install WSL first (`wsl --install` in PowerShell, then reboot), then run `pip install micro-cc` *inside* the WSL shell — not in PowerShell/cmd directly. Native Windows isn't supported: there's no bash, and the desktop-control tool depends on macOS-only APIs anyway, so nothing is lost by going through WSL.

## Usage

```bash
microcc /path/to/your/project
```

First run, type `/login` and pick Anthropic, a LiteLLM proxy (Bedrock, Azure, etc.), or Ollama — it writes `~/.micro-cc/.env` for you, no manual editing needed.

**Controls:**
- `Enter` — submit · `Shift+Enter` — newline · `Escape` — interrupt
- `/login` — configure endpoint · `/model` — switch model · `/clear` — reset conversation · `/keys` — store project-scoped secrets · `/exit` — quit
- Type `/` to see the full command list (setup, skills, MCP, headless, batch, etc.)

## Headless (`-p` mode / cron)

```bash
microcc-headless /path/to/project_dir "Fix the JWT expiry bug — tokens aren't refreshing correctly."
```

The microcc equivalent of `claude -p` — one prompt (argument or piped via stdin), no manifest to write first. `project_dir` scopes the conversation exactly like the interactive TUI does, so pointing repeated cron runs at the same dir continues that history; a fresh dir starts stateless. Runs fully autonomously (no approval gate), so it never blocks waiting on stdin — a clarifying question from the model is auto-cancelled rather than hung on.

It prints the outcome the same way batch does — `STATUS: DONE|NEEDS_INPUT|FAILED — <summary>` parsed into a symbol + the full reply:

```
✓ DONE — Patched JWT expiry check in auth.py

<full reply body, if any, above the status line>
```

Useful flags: `-f/--file` (repeatable, points the prompt at specific files), `--output-format json` (machine-parseable `{status, summary, body, project_dir}`), `--verbose` (streams tool calls/results to stderr — handy in cron logs).

## Batch (multi-task / cron)

```bash
microcc-batch /path/to/base_dir tasks.json
```

For running several *named* tasks in one go, each kept in its own isolated subfolder so context never bleeds between them — reach for this over `microcc-headless` when you want that separation. Each task gets its own subfolder under `base_dir` — `base_dir/{task.name}/` — which is a real `project_dir` with its own scoped `messages.jsonl`. Runs are fully autonomous (no approval gate), so a batch never blocks waiting on stdin. To pick a task back up in the full interactive TUI:

```bash
cd base_dir/{task.name} && microcc .
```

**Manifest format** (`tasks.json`):

```json
{
  "tasks": [
    {
      "name": "fix-auth-bug",
      "prompt": "Fix the JWT expiry bug — tokens aren't refreshing correctly.",
      "files": ["/absolute/path/to/src/auth.py", "/absolute/path/to/src/middleware.py"]
    },
    {
      "name": "add-tests",
      "prompt": "Add unit tests for the pagination helper."
    }
  ]
}
```

`files` is optional and must use **absolute paths** — cron jobs have no reliable cwd.

Tasks run sequentially. Each is instructed to end its final reply with `STATUS: DONE|NEEDS_INPUT|FAILED — <summary>`, which the runner parses into a tree view at the end:

```
/path/to/base_dir
├── ✓ fix-auth-bug         DONE         Patched JWT expiry check in auth.py
├── ? add-tests            NEEDS_INPUT  Which test framework does this repo use?
└── ✓ cleanup-logs         DONE         Removed dead logging branches

2/3 done · 1 need input · 0 failed
cd into: /path/to/base_dir/add-tests  (then `microcc .` to continue)
```

Only tasks that failed or need input get a `cd` hint — no need to open every subfolder to check on a large batch.

## Data

```
~/.micro-cc/
  .env                              API keys
  projects/
    {project}_{hash}/
      messages.jsonl                conversation history
      summary.json                  sliding-window summary
      project_path.txt              maps hash back to directory
```

## Tools

| Tool | Description |
|------|-------------|
| `bash_` | Shell execution in project_dir |
| `read_` | Read files with line numbers, offset/limit |
| `write_` | Create/overwrite files, auto-creates dirs |
| `edit_` | Surgical string replacement (fails if ambiguous) |
| `glob_` | Find files by pattern, sorted by mtime |
| `grep_` | Regex search with context lines |
| `browser_` | Web browsing and page extraction (beta) |
| `computer_use_` | Screen interaction and GUI automation (beta) |

All tools are discoverable — use `search_tools` to find more at runtime.

Relative paths resolve to `project_dir`. Absolute paths work anywhere.

## License

Proprietary — all rights reserved. See [LICENSE](https://github.com/GSequist/micro-cc/blob/main/LICENSE).
