---
name: samehand
description: "samehand — reescreve texto curto na voz MEDIDA de um autor e mostra, palavra a palavra, o que cortou. Use quando a tarefa envolver samehand, samehand.app, reescrever na própria voz ou tirar cara de IA de um texto."
---

# samehand — skill para agentes

**Live:** https://samehand.app  
**Local:** http://127.0.0.1:8769  
**Descoberta:** `GET /api/` · `/llms.txt` · `/llms-full.txt` · `/openapi.json`  
**MCP:** `POST https://samehand.app/mcp`

Conta MM (identidade só): `/api/auth/bootstrap`, `/api/auth/login`, callback, `/api/me`, leitura de perfil em
`/api/account/profile`, foto em `/api/account/avatar` e logout vêm do SDK único da plataforma. São caminhos de
navegador (cookie HttpOnly + CSRF): o botão do cabeçalho leva a `/conta/global`, e reescrever continua sem conta.
Não envie senha, código ou segredo de cliente por MCP.

## O que ele faz, e o que ele recusa fazer

Reescreve um texto curto para soar como **um autor específico**, a partir do arquivo público dele.
Não é "escreva com tom amigável": a voz é medida, e o que sustenta a reescrita são exemplos reais
do autor escolhidos por **distância temática** da entrada — exemplo perto do assunto vaza conteúdo
para a saída.

Ele **não** corrige o inglês não-nativo do autor, não inventa erro que não estava lá, não inverte a
posição do texto e nunca responde ao contexto: contexto é referência, não pergunta.

## Operações

Consulte `GET /api/pricing` (tool `pricing`) para franquias e preços e `GET /api/billing`
(tool `billing`) para x402 e crédito. São leituras públicas; o desafio 402 da operação
informa o valor a pagar.

| Tool | HTTP |
|------|------|
| `api_index` | `GET /api/` |
| `voice_card` | `GET /api/estilo` — as marcas do autor em distribuição, com tamanho da amostra |
| `rewrite_in_voice` | `POST /api/rewrite` — **5/dia grátis por IP; depois $0.02** (x402 ou crédito) |
| — | `GET /api/health` — vivacidade, tamanho do banco de exemplos e modelo em uso |
| `credito` | `POST /api/credito?usd=10` recarrega; `GET /api/credito` mostra saldo. O token vale em todos os produtos da casa |

## Corpo do `POST /api/rewrite`

```json
{
  "texto": "o que reescrever (obrigatório, até 4000 caracteres)",
  "contexto": "a conversa ou o assunto — referência, nunca respondida",
  "registro": "resposta | post",
  "instrucoes": "regras do autor sobre a própria voz, uma por linha",
  "estilos": [{ "id": "compacto", "nome": "Compacto", "prompt": "uma regra por linha" }]
}
```

Cada estilo é **uma variante e uma chamada ao modelo** — até 5. Sem estilos, saem três versões que
diferem só pelo sorteio de exemplos.

## Como ler a resposta

- `variantes[]` — uma por estilo. `texto` é o que se copia; `achados` é o que o lint ainda vê nela.
- `variantes[].diff` — **o corte, palavra a palavra**: `saiu` estava na entrada, `entrou` é da
  reescrita. `util: false` quer dizer que a reescrita ficou distante demais para o corte ensinar algo.
- `entrada.achados` — o que o texto original reprovava. É propriedade da entrada, não da variante.
- `cota` — `{gratis, usado, limite}` da franquia diária deste IP.

Nunca mostre o `diff` como se fosse o texto final: o que se publica é `variantes[].texto`.

## Limites

- 4000 caracteres de entrada, 5 estilos por chamada, 45 palavras por resposta e 60 por post.
- A franquia diária por IP vive no cache da borda: é conveniência, não razão. O razão é o do
  pagamento.
- A voz medida hoje é a de um autor só (o dono). Voz de terceiro depende de importar material,
  que ainda não existe.

## Acervos públicos de dados

`GET /api/` → `docs.data_indexes` descobre quatro acervos de leitura: endereços CNEFE,
metadados PNCP, domínios observados em CT e arquivos de programação XMLTV. As mesmas raízes
estão em `/llms.txt`, `/llms-full.txt`, `/okf/index.md` e `/developers#dados`. Abra o
`formats.json` adequado e siga a hierarquia e `links.proximo` (até 20 itens por página).
Atualização manual: confira fonte e referência. Respeite `Retry-After` em 429/503. Não
encaminhe credenciais do produto a esses hosts. Leia somente o recorte necessário à tarefa.

<!-- GERADO por scripts/monta-ui.mjs — fonte: .agents/skills/<produto>/SKILL.md. Não edite. npm run ui -->
