Skip to content

Getting Started

Gully Burns edited this page Mar 1, 2026 · 6 revisions

Getting Started

Alhazen has three modes of operation. Choose the one that fits your workflow:

Mode Use When Guide
A. Claude Code (local) Development, exploration, one-off analysis This page
B. OpenClaw MacMini Dedicated server (Mac) with openclaw dedicated user, Interaction via Telegram, LiteLLM Deployment
C. OpenClaw VPS Fully remote (Linux), Telegram, Full security hardening Deployment

This page covers Mode A: running Alhazen interactively with Claude Code on your local machine.

Prerequisites

Before you begin, ensure you have:

  1. Claude Code installed and configured
  2. Docker for running TypeDB
  3. uv for Python dependency management

Installation

1. Clone the Repository

git clone https://github.com/gullyburns/skillful-alhazen
cd skillful-alhazen

2. Install Python Dependencies

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install all dependencies
uv sync --all-extras

3. Start TypeDB

make db-start

This starts TypeDB on port 1729. The database schema initializes automatically on first use.

4. Open Claude Code

claude

Claude reads the skill files from .claude/skills/ and is ready to work.

Development Workflow: A → B → C

As your usage matures, you can progress to more persistent deployments:

Stage Setup Best For
A. Local Claude Code This page Skill development, ad hoc analysis
B. OpenClaw on Mac Mini Deployment Persistent foraging, Telegram triage
C. OpenClaw on VPS Deployment (VPS section) Always-on, cloud-hosted

Your First Session

Example 1: Job Hunting

Add and analyze a job posting:

You: I found a job at Anthropic:
     https://boards.greenhouse.io/anthropic/jobs/123456

Claude: I'll ingest and analyze this posting...

[Fetches the job description]
[Extracts company info, requirements, qualifications]
[Compares against your skill profile]
[Creates fit analysis with gap identification]

## Analysis: Research Engineer at Anthropic

**Your Fit: 82%**

| Requirement | Level | You | Match |
|-------------|-------|-----|-------|
| Python | Required | Strong | ✓ |
| ML Systems | Required | Strong | ✓ |
| Distributed Systems | Required | Some | △ |
| Rust | Preferred | None | ✗ |

Key Gap: Distributed systems is required; recommend DDIA + MIT 6.824.

Want me to set a priority level for this position?

Example 2: Rare Disease Investigation

Investigate a rare disease from its MONDO ID:

You: Investigate NGLY1 deficiency for me

Claude: I'll search for the MONDO ID and build a knowledge graph...

[Searches Monarch Initiative for "NGLY1 deficiency"]
[Finds MONDO:0800044]
[Initializes disease entity in TypeDB]
[Ingests HPO phenotypes, causal genes, MONDO hierarchy]
[Queries ClinicalTrials.gov for active trials]

## NGLY1 Deficiency (MONDO:0800044)

**Causal Gene:** NGLY1 (HGNC:17646) — total-loss mechanism
**Phenotypes:** 167 HPO terms; core: alacrima, global dev delay, seizures
**Hierarchy:** Congenital disorder of deglycosylation → rare disease
**Clinical Trials:** 2 active trials

What sensemaking would you like? I can analyze the mechanism,
therapeutic landscape, or differential diagnosis.

Example 3: Build Your Skill Profile (for Job Hunting)

Before analyzing jobs, set up your skill profile for gap analysis:

You: My skills are:
     - Python: strong (5 years production)
     - Machine Learning: strong (built models at CZI)
     - Kubernetes: some (deployed but not configured)
     - Rust: learning (started last month)

Claude: [Creates skill profile with levels]

Added 4 skills to your profile. I'll use these for fit analysis.

Dashboard

The project includes a Next.js dashboard for visualizing your job search:

make dashboard-dev   # starts on http://localhost:3000

Views:

  • Pipeline Board (/jobhunt) — Kanban view by application status
  • Position Detail (/jobhunt/position/{id}) — Requirements, notes, fit score
  • Skills Matrix — Gap analysis across positions

Environment Variables

Variable Default Description
TYPEDB_HOST localhost TypeDB server hostname
TYPEDB_PORT 1729 TypeDB server port
TYPEDB_DATABASE alhazen_notebook Database name

Next Steps

  • Jobhunt: See Skills: Jobhunt for the automated forager, full sensemaking workflow, and OpenClaw cron setup
  • Rare Disease: See Skills: Rare Disease for the full 5-phase curation workflow
  • Deploy persistently: Follow Deployment to set up OpenClaw for overnight foraging
  • Architecture: Read Design Concepts to understand the curation philosophy and TypeDB role

Clone this wiki locally