# DevTools / DX skeptic Quickstart

> Does the package actually import? Yes, in v0.4.0-rc.5. Here's the smallest possible test you can run in 60 seconds to verify the DX claim before reading anything else.

## You're here because...

You're a senior DX-minded developer and the funnel evaluation said the previous Attestix install required `sys.path.insert` to a cloned repo because `pip install attestix` dropped flat top-level packages (`services/`, `auth/`, `storage/`, ...) into `site-packages`. That was the cheapest, loudest failure across the whole ICP review. v0.4.0-rc.5 fixes it. This page exists so you can prove that, end-to-end, in under a minute, without reading any other doc.

## 60-second install

```bash
python -m venv /tmp/attestix-smoketest && \
  . /tmp/attestix-smoketest/bin/activate && \
  pip install --pre attestix
```

Windows PowerShell:

```powershell
python -m venv $env:TEMP\attestix-smoketest
& $env:TEMP\attestix-smoketest\Scripts\Activate.ps1
pip install --pre attestix
```

## First 30 lines that actually do something

```python
# smoketest.py  -  runs from any directory, no sys.path hack.
from attestix.services.identity_service import IdentityService

svc = IdentityService()
agent = svc.create_identity(
    display_name="smoketest",
    source_protocol="manual",
    capabilities=["test"],
    issuer_name="VibeTensor",
)
verification = svc.verify_identity(agent["agent_id"])
assert verification["valid"], verification
print("OK", agent["agent_id"], agent["issuer"]["did"])
```

Run it:

```bash
python smoketest.py
# OK attestix:abc... did:key:z6Mk...
```

Then prove there are no legacy imports anywhere in your dependency graph:

```bash
python -W error::DeprecationWarning -c \
  "from attestix.services.identity_service import IdentityService; print('canonical ok')"
```

If you see `canonical ok` and zero stderr, the import surface is clean. If you see a `DeprecationWarning` it means something in your tree is still hitting the legacy flat shim (`from services...`, `from auth...`, etc.). See the [namespace migration guide](/docs/guides/migration-v0.4.0-namespace).

## What you just got

- Proof the package imports from a clean venv with no path hacks.
- A signed Ed25519 identity row in `identities.json` (cwd-relative). Delete the file to reset.
- A canonical `attestix.*` import path that maps 1:1 to every module name, the same names you'd discover via `python -c "import attestix; help(attestix)"`.

## Honest things you should know before sending this to your team

- v0.4.0-rc.5 is a release candidate. The legacy flat top-level packages (`services/`, `auth/`, `storage/`, ...) are still installed as deprecation shims and **will be removed in v0.5.0**.
- Single maintainer, ~15 GitHub stars, no third-party security audit. The package is functional but not yet enterprise-hardened. See the [enterprise architect quickstart](/docs/quickstart/enterprise-architect) for the explicit gap list.
- The signing key lives in `.signing_key.json` in the working directory and is plaintext by default. Set `ATTESTIX_KEY_PASSPHRASE` to enable AES-256-GCM encryption at rest.

## Next step (5 minutes)

If the smoke test passed and you want to see the actual product surface, clone the repo and run the bundled end-to-end example (9-step compliance workflow, ~3 seconds):

```bash
git clone https://github.com/VibeTensor/attestix.git
python attestix/examples/quickstart.py
```

Or jump straight to the [Integration Guide](/docs/guides/integration-guide) for LangChain / OpenAI Agents / CrewAI wiring.
