Skip to main content

Psssst! An AI resident engineer for your codebase. (The PyPI name is `psssst` because `ubik` was squatted in the Python 2.6 era — `import ubik` and the `ubik` CLI still work after `pip install psssst`.)

Project description

Ubik

Pssst — wanna solve some entropy?

An AI resident engineer for your codebase. Whispers findings. Proposes fixes. Waits for your tap.

🤫 psssst.dev · pip install psssst

License: Apache 2.0 Status: pre-alpha

Ubik is the product. "Pssst!" is the noise it makes when it's about to tell you something.


What is Ubik?

Ubik lives next to your repository. While you sleep, it:

  1. Reads the codebase, the recent commits, the production logs.
  2. Watches competitors, tech trends, papers, security advisories.
  3. Proposes specific improvements — with evidence, plan, and risk.
  4. Whispers to you on Telegram: "Pssst — Ubik found something."
  5. Ships the fix when you tap ✅ — through Aider, Claude Code, or any agentic executor — onto a feature branch, with tests, as a PR.

You stay in approval mode. Ubik does the digging.


Quickstart

pip install psssst      # the PyPI name; `ubik` was squatted in 2014

# In any repo:
cd my-repo
ubik init               # interactive wizard → ubik.yaml + .env.example
cp .env.example .env    # fill in API keys + Telegram bot token

ubik run --dry-run      # smoke test: audits + persists, no notifications
ubik run                # autonomous daemon for real
# or
ubik mcp                # MCP server (stdio) — for Claude Desktop / Cursor
# or
ubik audit              # one-shot codebase audit, dump report

That's it. Ubik is now resident.

The ubik init wizard ships with provider presets for Z.AI / GLM-5.1 (default — free with the annual plan), Anthropic, OpenAI, and Ollama (local). Every field in the generated ubik.yaml is honored by the loader — no config knob is decorative. Roadmap-only fields (web search, Slack bridge, GitLab verifier, Postgres notebook) are documented in docs/roadmap.md and intentionally absent from the example.


Why "Pssst"?

Most AI tooling shouts. Ubik whispers. The slogan comes from Philip K. Dick's 1969 novel Ubik, where a mysterious product cures reality through cryptic chapter-opening ads. Our product cures codebases the same way: by leaning over and going psst.

"Where's a code reviewer that actually reads the diff? Safe to deploy. Won't push to main without approval. It's UBIK!"


Architecture

Ubik is vendor-agnostic and executor-agnostic by design. Pluggable adapters at four seams:

       ┌──────────────────────────┐
       │     Ubik Orchestrator     │
       │                          │
       │  Researcher → Bridge →    │
       │  Executor   → Verifier   │
       └──────────────────────────┘
              │       │       │       │
              ▼       ▼       ▼       ▼
         LLM      Comms   Coding   Git/PR
       ─────────────────────────────────
        GLM-5.1   Telegram  Claude  GitHub
        Claude    Slack     Agent   GitLab
        GPT       Discord    SDK    ...
        Local     Webhook   Aider
        ...       ...       OpenHands

Pick one of each. Swap whenever. Notebook of past findings is shared across projects so what Ubik learns once, it remembers everywhere.

See docs/architecture.md for the full picture.

2026 stack

Ubik is built on the best-of-breed of mid-2026:

Layer Choice Why
Build / dep mgmt uv + uv_build (Astral) 100× pip, OpenAI-acquired, the new default
Lint + format ruff (Astral) Replaces black + isort + flake8, single binary
Type check ty (Astral) mypy alternative, Rust-fast
LLM dispatch litellm 100+ providers, vendor-agnostic
Agent loop pydantic-ai Type-safe + first-class OpenTelemetry
Coding executor claude-agent-sdk (Python) Multi-agent orchestration, advisor tool, sandbox
Default LLM GLM-5.1 (#1 SWE-Bench Pro) SOTA + free with Z.AI annual plan
MCP server mcp SDK + Server Cards + MCP Apps Linux Foundation governed (AAIF), OAuth 2.1
Observability OpenTelemetry GenAI + Langfuse Industry standard, OSS, multi-project insights
License Apache 2.0 Patent grant + contributor-friendly

See docs/stack.md for the full reasoning.


Use cases

  • Solo founders running multiple repos — one Ubik, many ubik.yamls.
  • Open source maintainers — proactive PR triage, stale-issue digestion.
  • Researchers — bibliometric scans, citation tracking, paper outline review.
  • Consultancies — codebase health audit on a new client engagement.
  • Yourself, in your IDE — install as MCP server, ask in Claude Desktop: "Ubik, what's gone stale in this repo?"

License

Apache 2.0. Free for any use, commercial or otherwise. Patent grant included.


Status

Pre-alpha. Not yet on PyPI / npm. First stable release: see Roadmap.

Built by Ubik. Inspired by Philip K. Dick.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

psssst-0.1.5.tar.gz (372.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

psssst-0.1.5-py3-none-any.whl (88.5 kB view details)

Uploaded Python 3

File details

Details for the file psssst-0.1.5.tar.gz.

File metadata

  • Download URL: psssst-0.1.5.tar.gz
  • Upload date:
  • Size: 372.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for psssst-0.1.5.tar.gz
Algorithm Hash digest
SHA256 2c02eab38efc22ba62cd3d77ba60f09a719685f9dc35c33598de075e4a0adf91
MD5 4a53208dcd32c4362c0c1370a023146e
BLAKE2b-256 e0aefdbf3d421e25ad7ed5c05c6f9707b498dd135096c980b86bffcc99f2e7ce

See more details on using hashes here.

File details

Details for the file psssst-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: psssst-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 88.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for psssst-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9dd8cc87dbb4a740ef9dbf3e04cfd9d2b7b886614670b377bfb7d09902e74765
MD5 13664f071c9f5a41341229bc97ff8609
BLAKE2b-256 7de90a9db08e1c2a4f668cb8a330d1bf9c29816d79fb0afd8408ec6b2c24759a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page