Website profiles · Technology insights · Alternatives

ellipsis.dev

Managed Claude Code agents in the cloud. Define agents as config files in your repo – Ellipsis runs them to build features, fix bugs, and investigate production issues.

Paid content
Visit website
Profile views 7 Outbound visits 1 Normal
Ellipsis Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
Paid contentObserved
Registered
2023
Hosting
Amazon CloudFrontInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is Ellipsis?

Ellipsis is a managed cloud platform for running coding agents that you define yourself as YAML config files inside your repository. Rather than a single fixed assistant, it is infrastructure: you write an agent (its prompt, trigger, repositories, environment hooks, and budget), and Ellipsis handles the execution, permissions, logging, and spending limits. It installs via GitHub.

What you actually configure

Each agent is a file committed alongside your code. The page shows three illustrative examples:

  • standup-automator — runs on a cron schedule, summarizes merged PRs, pending reviews, and failing CI, then posts to Slack.
  • triage-issues — labels new issues and finds duplicates.
  • check-api-changes — reacts to a pull request push and checks changed API routes for missing test coverage.

Triggers shown include cron schedules and pull-request events. Agents can also be driven through an API (POST /v1/agents, start a session, message a session), so they fit into existing tooling rather than only a web UI.

Model and harness flexibility

The harness and model are configuration, not architecture. The page demonstrates changing a single line to move from Claude Code to Codex, or from an Anthropic model to an OpenAI one, without rebuilding the agent. That matters if you want to compare models on the same task, or if your organization standardizes on one provider later.

Who this suits

Reader Fit
Platform or DevEx engineer Strong — agents live in the repo, reviewable like code, with budgets and logging centralized.
Team wanting routine automation (standups, triage, PR checks) Strong — cron and PR triggers cover common chores.
Individual developer wanting an in-editor assistant Weak — this is cloud infrastructure for agents, not an IDE plugin.
Team unwilling to write YAML or grant repo access Weak — configuration and GitHub installation are the entry path.

Trade-offs to weigh

Defining agents as files gives you version history, code review, and reproducibility. The cost is that non-engineers on your team cannot spin up an agent through a form; someone has to own the YAML. Centralized budgets and permissions are a genuine advantage over self-hosted runners, but they also mean your agent activity flows through a third party, so check how repository access and logs are scoped before pointing it at sensitive repos.

A practical next step

Pick one recurring chore your team already does manually — the weekly dependency bump, the flaky-test triage, the release notes draft — and write it as a single agent file with a narrow repository scope and a small session budget. Run it for two weeks and judge it on whether it reduces review load, not on how clever the output looks. If it does, expand the trigger set; if not, you have lost an afternoon rather than a migration.

How do I define an agent using a YAML config file in my repository?

Define an agent by adding an agent.yaml file to your repository that declares the agent's name, trigger, session (harness and model), prompt, and environment. Ellipsis reads that file and runs the agent against your repos, handling infrastructure, permissions, logging, and budgets.

The core fields

Field What it controls
name Identifier for the agent (e.g. triage-issues)
trigger When it runs — a cron schedule, or a repository event such as a pull request push
session Which coding harness and model to use (e.g. claude_code with a model, or codex with another)
prompt The instruction the agent executes
environment Repositories it can access, plus setup hooks
budget Session-level spend or usage limit

A concrete example

For a scheduled digest, the pattern looks like this: a cron trigger with a schedule such as "30 8 * * 1-5", a session block naming the harness and model, and a prompt describing the work — for instance, summarizing yesterday's merged PRs, pending reviews, and failing CI, then posting to a Slack channel. For a pull-request-driven check, you'd swap the trigger for a pull_request type with on: [pushed] and a repositories list, then write a prompt like checking changed API routes for missing test coverage. An environment block can include after_checkout hooks — shell commands that run after the repo is checked out — which is where you'd install dependencies or run setup scripts before the agent starts.

Practical notes

Switching harness or model is a one-line change inside the session block, so you can move between Claude Code and Codex, or between model providers, without rewriting the rest of the agent. Keep the trigger narrow at first: a cron job on a small repo is the cheapest way to confirm your YAML parses and the prompt produces useful output before you attach it to pull requests. Put anything sensitive behind environment hooks rather than in the prompt, and set a budget from the start so a runaway loop can't spend indefinitely.

Next step

Start with one agent, one repository, and a prompt you could hand to a new teammate. Once the output is reliably useful, add triggers and repositories incrementally. The full YAML reference and API endpoints for creating agents and sessions are documented on Ellipsis.

Can I switch between Claude Code and Codex or different AI models without rebuilding my agent?

Yes. Ellipsis is built so the harness and the model are configuration choices rather than architecture. An agent is defined as a YAML file in your repository, and the session block is where you name the harness and model. Swapping Claude Code for Codex, or an Anthropic model for an OpenAI one, is a one-line change in that block; the trigger, prompt, repositories, hooks and budget stay as they are.

What stays fixed and what changes

Part of the agent Where it lives Changes when you switch harness or model?
Trigger (cron, pull request, API) trigger block No
Prompt and instructions prompt No
Repositories and setup hooks environment No
Harness (Claude Code, Codex) session Yes
Model (Anthropic, OpenAI) session Yes
Budget and session limits budget Usually reviewed, not rewritten

The practical consequence is that you can keep one agent definition and test the same prompt against two harnesses or models, then commit whichever behaves better. It also means a model deprecation or a cost change is a config edit rather than a migration project.

A concrete scenario

Say you have a triage-issues agent that labels new issues and finds duplicates. You start it on Claude Code with an Anthropic model. If you want to compare output quality or latency on an OpenAI model, you edit the session block, open a pull request, and let both versions run against the same trigger. Because the prompt and repository scope are unchanged, the comparison is actually about the model, not about a rewritten agent.

Two caveats worth planning for. First, prompts are not perfectly portable: instruction-following style, tool-calling behaviour and output formatting differ between harnesses, so expect to tune the prompt after a switch rather than assume identical results. Second, anything downstream that parses the agent's output — a Slack digest, a PR comment format, a label scheme — should be checked after the swap.

How to decide

Switch harness or model when you have a measurable reason: cost per run, latency, quality on your specific task, or a compliance requirement about where inference happens. Keep the old configuration in version control so you can revert in one commit.

If you are evaluating this for a team, the natural next step is to take one low-risk agent — a standup digest or a coverage check on changed API routes — duplicate its YAML, point the copy at the other harness or model, and run both for a week before changing anything in production. For the full configuration surface, see the documentation linked from Ellipsis.

What types of tasks can I automate with Ellipsis agents, such as code review or production issue investigation?

Ellipsis is built around running coding agents you define in YAML inside your repository, so the automatable work is broad: anything an agent can do with repo access and a prompt. The platform handles infrastructure, permissions, logging and budgets, which means the practical limit is usually what you can describe clearly, not what the tooling supports.

Task categories the page calls out

  • Feature generation — agents that build features from a prompt.
  • Background tasks — scheduled or event-driven jobs rather than interactive sessions.
  • Code review — reviewing changes, for example checking changed API routes for missing test coverage.
  • Production issue investigation — investigating incidents, with an on-call assistant shown as an example agent.

How triggers shape what you can automate

The YAML examples show three trigger styles, and each maps to a different kind of work:

Trigger Example agent Typical use
Cron schedule standup-automator Recurring digests, e.g. summarizing merged PRs, pending reviews and failing CI, then posting to Slack
Pull request event check-api-changes Reacting to pushed changes, e.g. flagging missing test coverage on modified routes
Agent/API session triage-issues On-demand runs, e.g. labeling new issues and finding duplicates

There is also a REST API for creating agents, starting sessions and messaging a session, so you can drive agents from your own tooling instead of only from repository events.

Practical scenarios

A team lead might schedule a weekday digest that collects merged PRs, waiting reviews and CI failures, then posts it to an engineering channel and tags owners. A platform team might attach a review agent to pull request pushes so coverage gaps surface before merge. An on-call engineer could run an assistant agent against a production issue to gather context. Because each agent declares its repositories, setup hooks, compute and budget, you can keep a narrow blast radius per agent rather than granting one broad automation.

Trade-offs to weigh

The model and harness are swappable with a one-line change — the page shows moving from Claude Code to Codex, or Anthropic to OpenAI, without rebuilding the agent. That flexibility matters if you want to compare models per task, but it also means you own prompt quality and trigger design; the platform supplies the plumbing, not the judgment about what is worth automating. Budgets are configured per session, so cost control is part of the agent definition rather than an afterthought.

A useful next step: pick one repetitive chore your team already does manually — a standup summary, a review checklist, an issue triage pass — write it as a single YAML agent with one trigger, and run it in a low-risk repository before expanding. If you want a managed alternative for the same category of work, compare with GitHub Actions for event-driven jobs and Anthropic for model-level capabilities.

How does Ellipsis handle permissions, logging, and budgets for managed agents?

Ellipsis treats permissions, logging and budgets as platform responsibilities rather than something each agent author builds: you declare an agent in a YAML config file in your repo, and the service supplies the execution environment around it. The page describes this as "Agents as a Service," with the infrastructure, permissions, logging and budgets handled for you.

Permissions

Access is scoped through the agent's environment block, where you name the repositories the agent may touch (for example repositories: - name: api-repo). Nothing in the supplied material specifies how granular those permissions get beyond repository selection, so treat repository scoping as the documented control and confirm finer-grained rules in the documentation before relying on them.

Logging and observability

Because agents run as managed cloud sessions, the platform owns the run record. The page exposes a session-level API — create an agent, start a session, send a message to a session — which implies you can inspect and interact with runs programmatically rather than reading raw container output. It also states logging is handled for you, but does not describe retention, format or export, so that is a question for the vendor if audit trails matter to you.

Budgets

Budgets are declared per agent in YAML, shown as a budget: block with a session value (the example uses session: 2). That caps spend at the individual session level, which suits scheduled or trigger-driven work where a runaway loop is the main cost risk.

What this means in practice

A concrete scenario: a platform team wants a weekday standup digest. They write a cron-triggered agent that summarizes merged PRs and failing CI, scopes it to the engineering repos, and sets a small session budget so a bad prompt cannot burn through a month's allowance overnight.

Two trade-offs to weigh:

Control Declared where Practical effect
Repository access environment.repositories Limits blast radius to named repos
Spend cap budget.session Bounds cost per run, not per month
Run visibility Session API + managed logging Interactive and scriptable, but details undocumented here

Decision criterion: if your main worry is an agent touching the wrong repo or overspending on a single run, the config-level controls fit. If you need per-user authorization, long-term log retention or org-wide spend ceilings, verify those exist before adopting.

Next step: open the full YAML reference and documentation linked from Ellipsis and check the exact permission and budget fields, since the homepage examples only sketch them.

What is the pricing structure for Ellipsis?

Ellipsis does not publish a simple per-seat or flat-rate price list on its main page. The site points to a dedicated Pricing page, and the platform copy emphasizes that it handles "budgets" as part of the managed service. That combination suggests pricing is tied to usage or to a plan you discuss with the vendor rather than a single sticker price.

What the page actually tells you

  • Agents are defined as YAML config files in your repository, and Ellipsis runs them in managed cloud infrastructure.
  • The platform handles infrastructure, permissions, logging, and budgets.
  • Budgets appear as a per-agent setting in the YAML, for example a session budget inside an agent definition. That is a spending control, not a public price.
  • There is a separate enterprise path and a "Schedule a demo" call to action, which usually means custom or negotiated terms for larger teams.

How to read that structure

Signal What it implies
Dedicated pricing page Some pricing is published, but not summarized on the homepage
"Budgets" in agent config You can cap agent spend per session or per agent
Enterprise section and demo booking Larger deployments likely get custom quotes
Y Combinator backing and GitHub install Self-serve entry point exists, but full cost may depend on usage

Practical next step

If you are evaluating Ellipsis for a team, treat the budget field as your main cost-control lever and confirm the commercial model before rollout. Ask two questions: whether billing is per agent, per session, or per token consumed, and whether the budget cap is a hard stop or just an alert. For a small trial, define one narrow agent, set a low session budget, and run it against a single repository so you can see actual consumption before committing more broadly.

Related questions

More questions →
How to Define an Ellipsis Agent with YAML Config Files

You define an Ellipsis agent by committing a YAML file (for example agent.yaml, standup-automator.yaml, or triage-issues.yaml) into your repository. The file declares the agent's name, description, trigger, session harness and model, prompt, environment, repositories, hooks, and budget. Ellipsis reads that config and runs the agent in its managed cloud infrastructure, so you never provision compute or wire up permissions yourself. This works if you have the Ellipsis app installed on GitHub and are comfortable editing repo files; the examples below follow the structure shown in Ellipsis's own documentation.

The core shape of an agent file

Every agent file starts with an ellipsis block and then describes what the agent is and when it runs. The fields you'll use most:

Field Purpose
kind Declares this as an agent
name Identifier for the agent
description Human-readable summary of what it does
trigger When the agent fires (cron schedule or repo event)
session Which harness and model to run
prompt The instruction the agent executes
environment Repositories, hooks, and compute the agent gets
budget Session limits to cap usage

Step 1: Create the file and name the agent

Add a YAML file to your repo. The ellipsis key is the root, and kind: agent tells Ellipsis this is an agent definition rather than something else.

ellipsis:
  kind: agent
  name: triage-issues
  prompt: Label new issues and find duplicates.
  environment:
    repositories:
      - name: web-repo

The name is how you and the platform refer to the agent; prompt is the actual task. The environment.repositories list scopes which repos the agent can touch.

Step 2: Choose a trigger

Triggers decide when the agent runs. Two forms appear in the docs:

Cron (scheduled): run on a fixed schedule.

trigger:
  type: cron
  schedule: "30 8 * * 1-5"

This fires at 08:30 on weekdays — the pattern used by the standup-automator example, which posts a daily digest of merged PRs, pending reviews, and failing CI to Slack.

React (event-driven): run in response to repository activity such as a pushed pull request.

trigger:
  type: react
  pull_request:
    on: [pushed]
  repositories: [api-repo]

The check-api-changes example uses this to inspect changed API routes for missing test coverage whenever a PR is pushed.

Step 3: Pick a harness and model

The session block selects the coding harness and the model. Switching between them is a one-line change — you don't rebuild the agent.

session:
  claude_code:
    model: claude-opus-5-5

To move to a different harness and model, swap the block:

session:
  codex:
    model: gpt-6-sol

The rest of the file (name, prompt, environment) stays the same. This is the mechanism behind Ellipsis's "any agent, any model" claim — the config, not the code, decides what runs.

Step 4: Configure the environment and hooks

The environment block controls what the agent has access to and any setup it needs before running. repositories lists the repos; hooks run shell commands at defined points, such as after checkout.

environment:
  repositories:
    - name: api-repo
  hooks:
    after_checkout: |
      cd api-repo

Use hooks for setup steps your agent needs before it starts its task — installing dependencies, checking out a branch, or preparing a working directory.

Step 5: Set a budget

The budget block caps how much a session can consume, so a runaway agent doesn't keep running.

budget:
  session: 2

Set this deliberately for scheduled or event-driven agents that could otherwise fire repeatedly.

A complete example

Putting the pieces together, a scheduled digest agent looks like this:

ellipsis:
  name: standup-automator
  description: Posts a daily standup digest to Slack
  trigger:
    type: cron
    schedule: "30 8 * * 1-5"
  session:
    claude_code:
      model: claude-opus-4-8
  prompt: |
    Each weekday, summarize yesterday's merged PRs, the reviews still
    waiting, and any failing CI, then post the digest to #engineering
    and @ the right owners.
  budget:
    session: 2

How to verify it works

After committing the file, confirm the agent is registered and triggered as expected. The docs reference an API surface for this — POST /v1/agents to create an agent, POST /v1/agents/{id}/sessions to start a session, and POST /v1/sessions/{id}/messages to message a running session. Use these to check that your YAML parsed into an agent and to start a test session before relying on the trigger.

Common sticking points

  • Trigger type mismatch. A cron trigger needs a valid schedule; a react trigger needs the event (for example pull_request.on) and the repos to watch. Mixing fields from both will fail.
  • Repo scope. If the agent can't see a repository, check that it's listed under environment.repositories — the trigger's repositories and the environment's list serve different purposes.
  • Hooks failing silently. A broken after_checkout command stops the agent before its prompt runs. Test the command locally first.
  • Missing budget. Scheduled agents without a budget.session cap can accumulate sessions; set one for anything that fires on a timer.

Once the file is committed and the agent is registered, Ellipsis handles the infrastructure, permissions, logging, and budgets — your job is keeping the YAML accurate as the agent's task changes.

What Does a Postal Code API Return? Fields, Formats, and Common Use Cases

A postal code API returns structured location data for a given ZIP Code or Canadian postal code. A typical response includes the code itself, city, state or province, county, latitude/longitude, and — where available — ZIP+4 detail. More complete services add time zone, area codes, boundary geometry, and demographic fields. You send a code (or an address), and the API sends back a machine-readable record you can store, validate, or display.

This article explains what those responses contain, how requests are usually shaped, and where postal code data fits into real applications.

First, clear up the word "code"

The keyword "code" is overloaded, and that causes real confusion for developers:

  • Postal code — the ZIP Code (U.S.) or postal code (Canada) that identifies a delivery area.
  • API key — the credential you use to authenticate your requests. It is not postal data.
  • Source code — the program you write to call the API.

When someone searches for "postal code API code," they usually want example request/response code for a postal code service. The rest of this article treats it that way.

What a postal code API actually returns

Response fields vary by provider and endpoint, but the core set is fairly consistent. A single-code lookup commonly returns:

Field Example Notes
Postal code 90210 The code you queried
City Beverly Hills May be one of several acceptable place names
State / Province CA Two-letter abbreviation
County Los Angeles Useful for tax, territory, and reporting logic
Latitude / Longitude 34.0901, -118.4065 Usually the centroid of the area
ZIP+4 90210-1234 Present only when a specific delivery segment is known
Time zone America/Los_Angeles Helps with scheduling and display
Area codes 310, 424 Regional phone context

Richer datasets add 90+ fields: boundaries, population, income, elevation, and more. You rarely need all of them — request only what your application uses.

A representative JSON response

{
  "postal_code": "90210",
  "city": "Beverly Hills",
  "state": "CA",
  "county": "Los Angeles",
  "latitude": 34.0901,
  "longitude": -118.4065,
  "timezone": "America/Los_Angeles",
  "area_codes": ["310", "424"]
}

XML responses carry the same information in tag form. Choose based on what your stack parses most easily; JSON is the common default.

Common request patterns

Most postal code APIs support four patterns. Knowing which one you need prevents wasted calls.

1. Lookup by code

You have a code and want its details. This is the simplest and fastest call.

GET /lookup?code=90210

2. Reverse lookup by address

You have a street address and want to confirm or complete the code. This is the pattern behind checkout address validation.

GET /validate?street=...&city=...&state=...

3. Radius search

You have a center point and want all codes within a distance. Useful for store locators and delivery zones.

GET /radius?code=90210&miles=10

4. Batch validation

You have a file of addresses and want them cleaned in bulk. Batch endpoints trade latency for throughput and usually have their own limits.

Handling missing and ambiguous matches

Real data is messy. Plan for these cases:

  • No match — the code doesn't exist or the address is malformed. Return a clear error rather than a silent empty object.
  • Multiple matches — a city name may map to several codes, or a code may span several acceptable city names. Decide whether to pick the primary or return a list.
  • Partial match — the street is valid but the ZIP+4 isn't. Fall back to the 5-digit code.
  • Stale data — codes are added, retired, and reassigned. Refresh your dataset on a regular schedule.

A practical rule: validate at the point of entry, store the normalized result, and never re-derive it later from raw user input.

Practical use cases

  • Checkout address validation — catch typos before shipping, reduce failed deliveries.
  • Shipping zone lookup — map a code to a zone, carrier route, or rate table.
  • Data enrichment — append county, coordinates, or demographics to existing records.
  • Store and service locators — radius search to find nearby branches or coverage areas.
  • Territory and tax logic — county and boundary data drive jurisdiction rules.

Licensing and data-source considerations

Postal code data originates with national authorities — USPS in the United States and Canada Post in Canada. Providers license and repackage it, which is why accuracy, update frequency, and field coverage differ between services. Before committing:

  • Confirm the data source and how often it refreshes.
  • Check whether ZIP+4 and boundary data are included or sold separately.
  • Review usage limits and whether batch processing is allowed.
  • Read the license terms for redistribution and storage.

Pricing and plan details change, so check the provider's current documentation rather than relying on secondhand figures.

Getting started

  1. Decide which request pattern you need (lookup, reverse, radius, or batch).
  2. Pick the fields you'll actually store.
  3. Write a small test call and inspect the raw response.
  4. Add error handling for no-match and ambiguous cases.
  5. Cache results where the same codes repeat.

A postal code API is ultimately a translation layer: you give it a code or an address, and it gives back structured location facts. Understand the fields, match them to your use case, and handle the messy edges — that's most of the work.

What Is Ellipsis and What Does Its "Agents as a Service" Platform Do?

Ellipsis is a managed cloud platform for running coding agents. You define an agent as a config file in your repository, and Ellipsis runs it in the cloud to build features, fix bugs, review code, and investigate production issues. It fits teams that want automated coding work tied to their own repos but don't want to build and operate the agent infrastructure themselves.

The core idea: agents as config files

Instead of clicking through a UI to set up an assistant, you commit a YAML file to your repo. Ellipsis reads that file and runs the agent according to it. The platform's own framing is "Agents as a Service": you bring the agent definition, Ellipsis handles the infrastructure, permissions, logging, and budgets.

A minimal agent definition from the documentation looks like this:

ellipsis:
  name: standup-automator
  description: Posts a daily standup digest to Slack
  trigger:
    type: cron
    schedule: "30 8 * * 1-5"
  session:
    claude_code:
      model: claude-opus-4-8
      prompt: |
        Each weekday, summarize yesterday's merged PRs, the reviews still
        waiting, and any failing CI, then post the digest to #engineering
        and @ the right owners.
  budget:
    session: 2

The parts you control are visible in the file: the trigger (here a cron schedule), the session harness and model, the prompt, and a session budget. Because the definition lives in the repo, it's versioned alongside the code it acts on.

What the agents actually do

The platform lists three broad use cases:

  • Feature generation — agents that build features from a prompt or trigger.
  • Background tasks — scheduled or event-driven jobs, like the standup digest above.
  • Code review — agents that react to pull request activity.

The documentation's examples show the range. A migration-guard agent and an oncall-assistant agent appear alongside the standup automator. Another example, check-api-changes, triggers on a pull request push and checks changed API routes for missing test coverage:

ellipsis:
  kind: agent
  name: check-api-changes
  trigger:
    type: react
    pull_request:
      on: [pushed]
    repositories: [api-repo]
  session:
    claude_code:
      model: claude-opus-5-5
      prompt: |
        Check the changed API routes for
        missing test coverage.
  environment:
    repositories:
      - name: api-repo
    hooks:
      after_checkout: |
        cd api-...

Note the hooks section: you can run setup commands after checkout, so the agent's environment is prepared the way your project needs.

Any agent, any model

A distinguishing feature is that the harness and model are swappable. The docs describe changing one line to move from Claude Code to Codex, or from Anthropic to OpenAI, without rebuilding the agent. The example diff replaces claude_code with codex and claude-opus-5-5 with gpt-6-sol while keeping the same prompt and environment.

This matters if you want to compare models on the same task, or if your organization standardizes on a different provider later. The agent logic — trigger, prompt, repositories, hooks — stays put.

How you get started

Two entry points are documented:

  • Install on GitHub — connect the platform to your repositories.
  • API — the docs list endpoints including POST /v1/agents (create an agent), POST /v1/agents/{id}/sessions (start a session), and POST /v1/sessions/{id}/messages (message a session).

There is also a full YAML reference and a documentation site, plus a "Schedule a demo" option. The site shows a Pricing page and a sign-in flow, but the provided material doesn't state prices or whether any tier is free — check the pricing page directly before assuming cost.

What Ellipsis handles for you

The platform's stated responsibilities are the operational layer around the agent:

  • Infrastructure — the compute the agent runs on.
  • Permissions — access to your repositories and services.
  • Logging — a record of what agents did.
  • Budgets — per-session limits, as shown by the budget: session: 2 field.

That division is the practical difference from a plain AI coding assistant in your editor. An editor assistant helps a human who is present and driving. Ellipsis runs agents on triggers — schedules, pull request events — without someone watching each step, which is why permissions, logging, and budgets are part of the product rather than afterthoughts.

When this fits and when it doesn't

Ellipsis is a reasonable fit if you want recurring or event-driven coding work (digests, review checks, issue triage) automated against your own repos, and you'd rather write a YAML file than maintain agent runners. It's less obviously a fit if you only want in-editor suggestions while you code, or if you need to confirm exact pricing and limits first — those details aren't in the material here, so verify them on the pricing page and in the documentation before committing.

Website Overview

The available information shows a mix of normal operation and configuration gaps. Depending on how the website is used, these gaps may affect secure access or the consistency of its public presentation.

Domain and Registration

Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The domain has about 2 years of registration history; its current configuration provides more context than age alone. The registrar is GoDaddy.com, LLC, a widely used domain service provider. The domain uses the common .dev extension, which is not an independent safety signal.

DNS and Email

The lowest TTL is 60 seconds, supporting rapid record changes at the cost of more frequent lookups. Nameservers are provided by Amazon Route 53, indicating managed DNS hosting. MX records point to the Google Workspace email service. No CNAME was found; the observed records resolve directly to addresses. SPF and DMARC are configured. DKIM status is unknown.

TLS and Certificates

The certificate uses an RSA 2048-bit public key, offering broad client compatibility. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued within the Amazon cloud or CDN ecosystem. The certificate is valid for about 197 days in total, with 92 days remaining.

HTTP and Browser Security

X-Powered-By exposes backend information: Next.js. The checked browser-security headers were not detected, leaving fewer explicit browser-side safeguards. The x-cache, via response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers. No CORS permission header was found, so browsers normally restrict cross-origin script access.

Technology Stack Analysis

The public page identifies Next.js, Google Analytics, Amazon CloudFront without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

The meta description has 168 characters and may be shortened in search results. Twitter Card metadata is configured. JSON-LD includes Organization data, helping describe the organization as an entity. The title has 31 characters, within a common display range. The observed directives allow indexing and link following.

Hosting and Email

DNSAmazon Route 53
HostingAmazon CloudFront
EmailGoogle Workspace
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagUnited States Inferred 3.170.19.22

Registration details

RDAP / WHOIS

RegistrarGoDaddy.com, LLC
Registered2023-11-26
Expires2027-11-26
Domain statusclient delete prohibited、client renew prohibited、client transfer prohibited、client update prohibited
Nameserversns-1355.awsdns-41.org、ns-1803.awsdns-33.co.uk、ns-445.awsdns-55.com、ns-556.awsdns-05.net
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Awww.ellipsis.dev3.170.19.2260—
Awww.ellipsis.dev3.170.19.2660—
Awww.ellipsis.dev3.170.19.2760—
Awww.ellipsis.dev3.170.19.4460—
AAAAwww.ellipsis.dev2600:9000:286d:2a00:c:1760:6140:93a160—
AAAAwww.ellipsis.dev2600:9000:286d:400:c:1760:6140:93a160—
AAAAwww.ellipsis.dev2600:9000:286d:7400:c:1760:6140:93a160—
AAAAwww.ellipsis.dev2600:9000:286d:8a00:c:1760:6140:93a160—
AAAAwww.ellipsis.dev2600:9000:286d:da00:c:1760:6140:93a160—
AAAAwww.ellipsis.dev2600:9000:286d:e000:c:1760:6140:93a160—
AAAAwww.ellipsis.dev2600:9000:286d:e00:c:1760:6140:93a160—
AAAAwww.ellipsis.dev2600:9000:286d:fc00:c:1760:6140:93a160—
MXellipsis.devaspmx.l.google.com36001
MXellipsis.devalt1.aspmx.l.google.com36005
MXellipsis.devalt2.aspmx.l.google.com36005
MXellipsis.devalt3.aspmx.l.google.com360010
MXellipsis.devalt4.aspmx.l.google.com360010
NSellipsis.devns-1355.awsdns-41.org172800—
NSellipsis.devns-1803.awsdns-33.co.uk172800—
NSellipsis.devns-445.awsdns-55.com172800—
NSellipsis.devns-556.awsdns-05.net172800—
TXTellipsis.devgoogle-site-verification=aciCsBum83epAAv5NPef2lXllsn8LcUwL6_Mj3imHBw300—
TXTellipsis.devv=spf1 include:_spf.google.com ~all300—
DMARC_dmarc.ellipsis.devv=DMARC1; p=none; rua=mailto:[email protected]; fo=1;60—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectwww.ellipsis.dev
IssuerAmazon
Valid until2027-01-10T23:59 · Remaining when checked: 92 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controlpublic, s-maxage=60, stale-while-revalidate=86400

Identified technologies

Next.jsGoogle AnalyticsAmazon CloudFront

Pages, Search and Sharing

Meta descriptionManaged Claude Code agents in the cloud. Define agents as config files in your repo – Ellipsis runs them to build features, fix bugs, and investigate production issues.
Canonical URLhttps://www.ellipsis.dev
LanguageEnglish (default)
Twitter Cardsummary_large_image
All bots 1 allowed · 0 disallowed
  • Allow/
bingbot 1 allowed · 0 disallowed
  • Allow/
claudebot 1 allowed · 0 disallowed
  • Allow/
claude-user 1 allowed · 0 disallowed
  • Allow/
claude-searchbot 1 allowed · 0 disallowed
  • Allow/
gptbot 1 allowed · 0 disallowed
  • Allow/
google-extended 1 allowed · 0 disallowed
  • Allow/
perplexitybot 1 allowed · 0 disallowed
  • Allow/

User reviews (0)

  • No reviews yet.