# Goodmem:java

> Use when the user wants to write Java code that interacts with GoodMem - creating embedders, spaces, memories, retrieval, pagination, streaming, or async workflows with the goodmem-java SDK.

- **Type:** Skill
- **Install:** `agentstack add skill-pair-systems-inc-goodmem-claude-code-plugin-java`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [PAIR-Systems-Inc](https://agentstack.voostack.com/s/pair-systems-inc)
- **Installs:** 0
- **Category:** [Search](https://agentstack.voostack.com/c/search)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [PAIR-Systems-Inc](https://github.com/PAIR-Systems-Inc)
- **Source:** https://github.com/PAIR-Systems-Inc/goodmem-claude-code-plugin/tree/main/skills/java

## Install

```sh
agentstack add skill-pair-systems-inc-goodmem-claude-code-plugin-java
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

You have access to the GoodMem Java SDK. Use it to write Java code that accomplishes the user's request.

See [reference.md](reference.md) for install instructions, common request builders, streaming,
pagination, async usage, typed IDs, and end-to-end snippets.

Key principles:
- Use `Goodmem.builder().baseUrl(...).apiKey(...).build()` and prefer try-with-resources.
- Use `AsyncGoodmem` when the user asks for async code; async methods return `CompletableFuture`.
- Import request/response records from `ai.pairsys.goodmem.client.models`.
- Use request builders for creates and updates, for example `EmbedderCreationRequest.builder()...build()`.
- For SaaS providers, pass the provider API key to create calls, for example `client.embedders.create(request, openaiApiKey)`.
- Use `modelIdentifier(...)` for embedders, LLMs, and rerankers; the SDK auto-infers provider details.
- Preserve typed handles such as `SpaceId`, `MemoryId`, `EmbedderId`, `LlmId`, and `RerankerId`.
- Create spaces with `List.of(new SpaceEmbedderConfig(embedderId, null))`.
- Iterate paginated results directly with `Page` or `AsyncPage`; list option `maxResults` takes an integer page size.
- Use try-with-resources for streaming types such as `RetrieveMemoryStream` and `PingStream`.
- Use the file-upload convenience `client.memories.create(spaceId, Path.of(...))` instead of manual base64 encoding.
- Compare typed enums directly, for example `status == MemoryProcessingStatus.COMPLETED`.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [PAIR-Systems-Inc](https://github.com/PAIR-Systems-Inc)
- **Source:** [PAIR-Systems-Inc/goodmem-claude-code-plugin](https://github.com/PAIR-Systems-Inc/goodmem-claude-code-plugin)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-pair-systems-inc-goodmem-claude-code-plugin-java
- Seller: https://agentstack.voostack.com/s/pair-systems-inc
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
